묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실리콘밸리 데이터 리더가 알려주는 Airflow 기초
데이터 가져올때 1달치만 가져오는 상태
지금은 정책이 바뀌었는지 기존코드 로는 1달치만 가져오네요. extract 에서data = yf.download(symbol, period="max")기간설정 해주었더니 상장날부터 가져옵니다.비전공자분들 참고하세요
-
미해결실리콘밸리 데이터 리더가 알려주는 Airflow 기초
31번 실습시 에러 발생
첫번쨰 dag 실행시 링크로 가쟈오는 csv 파일이 xml 파일로 읽어드리면서 에러로 띄우네요??도커에서 csv 파일을 읽을떄 에러메세지를 xml로 리턴하는거같은데 우선 csv 파일자체를 넣어서 하드코딩했습니다.혹시 도커로 사용시 외부 파일받아올때 보안적인 부분에서 해제해야되는경우가있나요?
-
미해결실리콘밸리 데이터 리더가 알려주는 Airflow 기초
pdf 링크 오류
안녕하세요 선생님 현재 강의의 6페이지에 (파이썬으로 간단한 ETL 작성해보기)파이썬으로 구글 코랩에서 작성하는 데이터 파이프라인 이라는 문구에 링크를 걸어두신 거 같은데요, PDF 다운로드 후 링크가 지속적으로 안열립니다.웹페이지가 아니라 직접 파일 다운로드 해서 열어도 안되는데 어떻게 해야 되나요?
-
미해결실리콘밸리 데이터 리더가 알려주는 Airflow 기초
Window11 Home 버전 도커 설치 방법 - Docker Desktop - Unexpected WSL error
아래와 같은 내용을 모르고 Win11 Home 버전에서 도커 설치에 여러가지 시행 착오를 겪고 Windows 11 Home 버전에서도 Hyper-V를 활성화해서 도커 설치에 성공한 방법을 공유드립니다. Windows 10 Pro, Enterprise 및 Education 64비트 버전에서만 사용할 수 있고 Home 버전에서는 사용할 수 없습니다.특히 Docker Desktop for Windows 설치를 위해서는 반드시 Hyper-V를 지원하는 OS가 필요하지만 Home 버전에서는 Hyper-V 기능을 사용할 수 없는 탓에 Docker Toolbox(Virtual Box)를 이용한 가상화를 통해서만 Docker를 설치할 수 있습니다. 참고 사이트https://forbes.tistory.com/542#google_vignette 1. 도커 에러 -> WSL2 설치 -> 도커 실행 X 2. Ubuntu 실행 에러Installing, this may take a few minutes... WslRegisterDistribution failed with error: 0x800701bc Error: 0x800701bc WSL 2? ?? ?? ?? ????? ?????. ??? ??? https://aka.ms/wsl2kernel? ??????. Press any key to continue...-> Windows 기능 켜기-> 도커 실행 XLinux용 Windows 하위 시스템Windows - 하이퍼바이저 플랫폼(Hyper-V)가상 머신 플랫폼참고 사이트https://mi2mic.tistory.com/228 3. Hyper-V 활성화 참고 사이트https://geekorea.com/how-to-enable-hyper-v-windows11-home/ 4. 도커 설치 완료
-
미해결실리콘밸리 데이터 리더가 알려주는 Airflow 기초
이전 강의에서도 그랬지만 소리가 너무 작아요
강의의 절대 소리가 작아서, 휴대폰(갤럭시 S24) 기준으로 최대 볼륨으로 올려도 만족스러울만큼 크지가 않습니다. 또한 다른 애플리케이션에서 나오는 소리와 차이가 커서 볼륨을 계속 변경해줘야 해요. 이미 찍은 강의에서 이를 개선해주실 수 있을진 모르겠지만, 불편하다는 점 인지해주시면 감사하겠습니다.
-
미해결실리콘밸리 데이터 리더가 알려주는 Airflow 기초
nps.csv 파일 위치
안녕하세요. 'Snowflake 환경 익히기' 강의에서 nps.csv 파일 다운로드 하라고 돼 있는데, pdf 파일만 내려받아집니다.비슷한 질문이 있어서 커리큘럼에 있는 자료 내려받기를 해도 마찬가지 입니다. 확인 부탁드립니다.감사합니다.
-
미해결실리콘밸리 데이터 리더가 알려주는 Airflow 기초
강의가 잘못 올라온것이 있네요. => 48강
48. Postgres 테이블 읽어오기 강의가 49. Postgres 테이블 읽어오기 실습 강의와 같습니다.즉 48 에서는 이론강의 부분인데 실습부분 입니다. 48강의 이론 부분으로 변경이 필요합니다.
-
미해결실리콘밸리 데이터 리더가 알려주는 Airflow 기초
Airflow 웹 UI에서 파일 디렉토리 구조 확인이 가능한가요?
안녕하세요.「앞서 Airflow 예제를 개선해보자 (v3) - 실습 편」 강의 수강 중 궁금한 점이 있어 문의드립니다.DAG 실행 시 생성되는 tmp 파일이 제대로 생성되었는지 확인하고 싶어, CLI 환경이 아닌 웹 UI상에서 확인할 수 있는 방법이 있는지 알아보던 중 궁금한 점이 생겼습니다./opt/airflow 디렉토리 구조는 CLI 환경에서만 확인 가능한 것인지, 웹 UI상에서는 해당 경로의 파일 구조를 직접 확인할 수 없는 것인지 궁금합니다.추가로 확인이 가능한 부분이 있다면 현업에서는 어떻게 주로 확인하는지도 궁금합니다!
-
미해결실리콘밸리 데이터 리더가 알려주는 Airflow 기초
본문과 같은 메시지가 뜨면서, 어느 순간부터 계속 안되는데, 어떤 이유일까요 ㅠㅠ
[2025-04-07T14:51:04.313+0000] {taskinstance.py:3310} ERROR - Task failed with exceptionTraceback (most recent call last): File "/opt/airflow/dags/yfinance_to_snowflake_fullrefresh.py", line 56, in load raise e File "/opt/airflow/dags/yfinance_to_snowflake_fullrefresh.py", line 41, in load cur.execute(f"USE SCHEMA {schema};") File "/home/airflow/.local/lib/python3.12/site-packages/snowflake/connector/cursor.py", line 1087, in execute Error.errorhandler_wrapper(self.connection, self, error_class, errvalue) File "/home/airflow/.local/lib/python3.12/site-packages/snowflake/connector/errors.py", line 284, in errorhandler_wrapper handed_over = Error.hand_to_other_handler( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/snowflake/connector/errors.py", line 339, in hand_to_other_handler cursor.errorhandler(connection, cursor, error_class, error_value) File "/home/airflow/.local/lib/python3.12/site-packages/snowflake/connector/errors.py", line 215, in default_errorhandler raise error_class(snowflake.connector.errors.ProgrammingError: 002043 (02000): 01bb881b-0000-c602-0000-cde100062082: SQL compilation error:Object does not exist, or operation cannot be performed. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/airflow/.local/lib/python3.12/site-packages/airflow/models/taskinstance.py", line 767, in executetask result = executecallable(context=context, **execute_callable_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/models/taskinstance.py", line 733, in executecallable return ExecutionCallableRunner( ^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/operator_helpers.py", line 252, in run return self.func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/models/baseoperator.py", line 406, in wrapper return func(self, args, *kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/decorators/base.py", line 266, in execute return_value = super().execute(context) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/models/baseoperator.py", line 406, in wrapper return func(self, args, *kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/operators/python.py", line 238, in execute return_value = self.execute_callable() ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/operators/python.py", line 256, in execute_callable return runner.run(*self.op_args, **self.op_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/operator_helpers.py", line 252, in run return self.func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/airflow/dags/yfinance_to_snowflake_fullrefresh.py", line 62, in load cur.execute(f"REMOVE {table_stage}/{file_name}") File "/home/airflow/.local/lib/python3.12/site-packages/snowflake/connector/cursor.py", line 1087, in execute Error.errorhandler_wrapper(self.connection, self, error_class, errvalue) File "/home/airflow/.local/lib/python3.12/site-packages/snowflake/connector/errors.py", line 284, in errorhandler_wrapper handed_over = Error.hand_to_other_handler( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/snowflake/connector/errors.py", line 339, in hand_to_other_handler cursor.errorhandler(connection, cursor, error_class, error_value) File "/home/airflow/.local/lib/python3.12/site-packages/snowflake/connector/errors.py", line 215, in default_errorhandler raise error_class(snowflake.connector.errors.ProgrammingError: 090105 (22000): 01bb881b-0000-c619-0000-cde10006306e: Cannot perform STAGE RM. This session does not have a current database. Call 'USE DATABASE', or use a qualified name.Snowflake 세션에서 데이터베이스 또는 스키마가 제대로 설정되지 않아 발생한 문제로 보인다는데;;; 뭔가 실행에 이상이 있는건지;;;;
-
미해결실리콘밸리 데이터 리더가 알려주는 Airflow 기초
yfinance 주식 읽어 오기 처음 중, no module named helpers 에러
airflow dags list를 하면 yfinance_to_snowflake_fullrefresh.py 에서 no module named helpers 에러가 떴습니다. pip3 install helpers 를 통해 설치를 했는데도, 동일한 에러가 발생하고 있습니다. (python은 homebrew 통해 설치했고, homebrew 설치 시에 패키지 전역 설치가 안된다는 문제가 있었는데, 이는 해결해서 helpers Install은 완료 했습니다.)
-
미해결실리콘밸리 데이터 리더가 알려주는 Airflow 기초
Data Drift 발생시 머신러닝 모델이 동작하지 않는 것의 의미
1. Data Drift 발생 시에 머신러닝 모델이 동작하지 않게 될 것이라는 것은 서비스는 돌아가지만, 머신러닝의 모델이 원래 기대했던 성능을 내지 못할 것을 의미하는 것일까요?예를 들어 추천 모델을 돌리고 있다면, 추천이 제대로 되지 않고 엉뚱한 것을 추천한다는 것을 의미하는 것인가요? 2. 주기적으로 데이터의 분포를 점검하는 필요가 있다면 어느 정도 주기여야 할까요? 3. 데이터의 분포가 어느 정도로 변하게 되면 이상 신호로 받아 들이게 되는 것인가요? 평균의 변화가 아닌 분산의 변화만으로도 이상 신호로 보아야 하는 것인지요? (뭔가 더 복잡하면 데이터의 성격에 따라 이러한 분포의 변화에 대해 반응해야 하는 수준이 다 다를 것으로도 느껴지기도 합니다.)
-
미해결실리콘밸리 데이터 리더가 알려주는 Airflow 기초
docker 에러
명령어:docker compose -f docker-compose.yaml up에러 메세지:ERROR! Maximum number of retries (20) reached.사용 환경windows 11 Home어떤 부분 때문에 계속 오류가 발생하는걸까요?
-
미해결실리콘밸리 데이터 리더가 알려주는 Airflow 기초
Airflow UI DAGs 리스트들
CountryCapital_v3.py 실습과정을 진행중에 갑자기 airflow UI 에서 DAGs 리스트들이 나오지 않는 현상을 겪고 있습니다. airflow dags list 명령어에 대한 결과이고, 도커에서 airflow 도 잘 띄우고 있습니다. 이전까지는 잘 되었는데 다음 사진과 같이 dag들이 갑자기 나오지 않고 있습니다.
-
미해결실리콘밸리 데이터 리더가 알려주는 Airflow 기초
nps.csv 파일 위치 및 실습 질문
섹션 3에 있는 Snowflake 환경 익히기 실습에서 nps.csv 파일은 어디에 있나요?환경 익히기 실습에서 진행하는 google colab 파일과 깃헙에 있는 country_capital_to snowflake.py 파일의 차이를 알고 싶습니다. 최종적으로 우리가 airflow를 사용하기 위해 스노우플레이크 내에 만들어져 있어야하는 스키마, 테이블 및 적재되어야하는 csv파일 정리해서 알려주시면 감사드리겠습니다.
-
미해결실리콘밸리 데이터 리더가 알려주는 Airflow 기초
Airflow Variables 설정
Airflow Variables 설정시 스노우플레이크와 연결을 위한 snowflake_userid, snowflake_password, snowflake_account 설정은 이해를 합니다. 그런데 첫번째인 Country_capital_url 왜 설정하는지 이해가 안갑니다.
-
미해결실리콘밸리 데이터 리더가 알려주는 Airflow 기초
섹션 8 PostgresToSnowflake DAG 실행 중 발생한 오류
안녕하세요 선생님,강의를 정말 재밌게 수강하고 있습니다. 섹션 8 PostgresToSnowflake DAG를 실행해서 Snowflake에 user_session_channel 테이블과 session_timestamp 테이블에 CSV 파일 로드할 때 오류가 있는것 같아요. 간단하게 해결할 수 있는 문제인데 DAG 파이썬 파일에서 os import 구문이 빠져있는거 같아요 import os이거 넣어서 간단하게 해결했습니다!좋은 강의 만들어주셔서 감사하고 곧 추가될 강의도 기다리고 있겠습니다!
-
미해결실리콘밸리 데이터 리더가 알려주는 Airflow 기초
섹션 8 yfinance 강의 수강 중 발생한 오류
안녕하세요, 데이터 엔지니어에 관심을 가지고 이제 막 공부를 시작한 학생입니다.섹션 8 yfinance 첫 번째 강의를 수강하던 도중에 에러가 생겨서 문의 남깁니다.작성되어 있는 코드 중에extract(symbol) >> load(file_path, symbol, schema, table)이 부분에서 문제가 생겼었습니다.그래서 file_path = extract(symbol) extract(symbol) >> load(file_path, schema, table)이렇게 수정해서 오류를 해결했는데, airflow web ui에서 다른 오류가 발생했길래 또 찾아보니 load함수에서 문제가 생긴 것 같습니다. file_path를 load함수에서도 다시 만들어줘서 snowflake에 데이터를 적재할 때 올바른 파일 경로를 찾지 못해서 생기는 오류가 발생하는거 같아요.def load(file_path, schema, table): cur = util.return_snowflake_conn("snowflake_conn") try: cur.execute(f"USE SCHEMA {schema};") cur.execute( f"""CREATE TABLE IF NOT EXISTS {table} ( date date, open float, close float, high float, low float, volume int, symbol varchar )""" ) cur.execute("BEGIN;") delete_sql = f"DELETE FROM {table}" logging.info(delete_sql) cur.execute(delete_sql) # 바로 받은 file_path 사용 (더 이상 경로 재생성 X) util.populate_table_via_stage(cur, table, file_path) cur.execute("COMMIT;") except Exception as e: cur.execute("ROLLBACK;") raise e finally: file_name = os.path.basename(file_path) table_stage = f"@%{table}" cur.execute(f"REMOVE {table_stage}/{file_name}") cur.close()요렇게 변경해주니까 데모 영상에 나온 것과 같이 똑같이 스노우플레이크에 잘 적재되었습니다.!제가 제대로 해결한게 맞을까요??
-
미해결실리콘밸리 데이터 리더가 알려주는 Airflow 기초
ETL 작성 이유
이 과정은 google colab을 사용하여 ETL 프로세스를 만들어 스노우플레이크에 적재하는 방식을 보여줍니다. 두 개의 컬럼을 갖고 있는 country_capital.csv 파일을 텍스트로 풀어 쓰고 콤마로 나눠 country와 capital 로 나누는 과정을 설명해주는데, 이 과정을 진행하는 이유가 단순 궁금합니다.스노우플레이크 GUI 환경에서 add data 하여 스테이지-테이블 순으로 적재를 하면 되는데 코드화 하여 적재하는 구분하여 적재하는 이유가 단순히 궁금합니다. 혹시, 나중에 처리하여 올리기 힘든 데이터의 경우 이렇게 전처리 과정을 미리 거쳐 올리는 방법을 알려주시는건가요?