개발중/AirFlow7 Airflow DAG에서 모듈 임포트가 안 될 때: 상대경로 vs 절대경로 해결 Airflow DAG를 만들면서 `PythonOperator`에서 내가 만든 파이썬 함수를 import하려고 했다. 근데 생각대로 되지 않았기에 기록을 남기려 한다. ㅠㅠ 예를 들어 이런 구조로 작업 중이었다. dags/ └── repo/ └── client-test/ └── soobin/ ├── tutorial.py ├── update_pending_records.py 처음에는 `tutorial.py`에서 상대경로로 import를 시도했었다.시도 1from .update_pending_records import update_pending_records 시도 2from ape.update_pending_records import update_pending_records 하지만 .. 개발중/AirFlow 2025. 4. 7. [Airflow] 아주 간단한 DAG 실행시키기 목적say_hello1 > say_hello2 > say_hello3 함수를 차례대로 실행시켜보자. say_hello1.pydef say_hello1(): print("Hello from say_hello1!") say_hello2.pydef say_hello2(): print("Hello from say_hello2!") say_hello1.pydef say_hello3(): print("Hello from say_hello3!") hello_airflow_test.pyfrom airflow import DAGfrom airflow.operators.python import PythonOperatorfrom datetime import datetimefrom say_hello1 imp.. 개발중/AirFlow 2025. 4. 3. [Airflow] Airflow 병렬 처리의 함정: Worker 분산 없이 처리하면? Airflow에서 병렬 처리를 구현할 때 많은 사람들이 성능이 크게 향상될 것으로 기대하지만, Worker 분산 처리가 설정되어 있지 않은 경우에는 오히려 순차 처리보다 더 느려질 수 있는 상황이 발생합니다. 이번 포스팅에서는 Airflow의 병렬 처리와 순차 처리의 테스트 결과를 비교하고, 그 이유를 살펴보겠습니다. 테스트 결과 비교Task 순차 처리전체 데이터 수300,000태스크별 데이터 수300,000전체 소요 시간1시간 56분 Task 병렬 처리전체 데이터 수300,000태스크별 데이터 수75,000전체 소요 시간2시간 1분 테스트 결과를 보면, 병렬 처리의 전체 소요 시간이 순차 처리보다 오히려 더 길어졌음을 알 수 있습니다. 병렬 처리를 했음에도 불구하고 성능이 기대만큼 향상되지 않은 이유는.. 개발중/AirFlow 2024. 10. 10. [AirFlow] 특정 Role 만 특정 Dag 권한주고 싶다. 난 Admin Role 만 읽고 수정 권한을 주고 싶다,from airflow import DAGfrom airflow.operators.dummy_operator import DummyOperatorfrom datetime import datetimewith DAG( 'TEST_1', default_args={'start_date': datetime(2023, 10, 7)}, schedule_interval='@daily', catchup=False, access_control={ 'Admin': {'can_read', 'can_edit'}, # Admin 역할에만 읽기 및 수정 권한 부여 },) as dag: start = DummyOperator(.. 개발중/AirFlow 2024. 10. 8. [AirFlow] airflow 사용자 생성 / REST API airflow users create \ --username admin \ --firstname Admin \ --lastname User \ --role Admin \ --email admin@example.com \ --password admin 개발중/AirFlow 2024. 10. 8. [Airflow] example_datasets.py 에러 ERRORBroken DAG: [/opt/airflow/airflow_env_38/lib/python3.8/site-packages/airflow/example_dags/example_datasets.py] Traceback (most recent call last): File "/opt/airflow/airflow_env_38/lib/python3.8/site-packages/airflow/example_dags/example_datasets.py", line 60, in from airflow.timetables.datasets import DatasetOrTimeSchedule File "/opt/airflow/airflow_env_38/lib/python3.8/site-packages/airfl.. 개발중/AirFlow 2024. 10. 8. [AirFlow] ContentType Mysql 누락 MySQL Content Type 을 선택하고 싶은데 주어진 값에 "MySQL" 은 없습니다. MySQL을 사용하려면, MySQL과 연동하는 Airflow Provider 패키지를 설치해야 합니다. 해당 패키지가 설치되지 않으면 MySQL 연결 타입이 Airflow의 UI에서 누락될 수 있다고 합니다. Mysql 옵션을 다운로드 하자.pip install apache-airflow-providers-mysql 근데 이런 에러가 난다면× Getting requirements to build wheel did not run successfully. │ exit code: 1 ╰─> [27 lines of output] /bin/sh: 1: pkg-config: not found .. 개발중/AirFlow 2024. 9. 30. 이전 1 다음