Airflow ಅನ್ನು ಹೇಗೆ ಬಳಸುವುದು: ವಿಶ್ವಾಸಾರ್ಹ ಡೇಟಾ ಪೈಪ್ಲೈನ್ಗಳನ್ನು ನಿರ್ಮಿಸಲು ಒಂದು ಪ್ರಾಯೋಗಿಕ, ಸಂಪೂರ್ಣ ಮಾರ್ಗದರ್ಶಿ
ನೀವು ಡೇಟಾವನ್ನು ವರ್ಗಾಯಿಸಿದರೆ ಅಥವಾ ML ಕಾರ್ಯಗಳನ್ನು ಸಂಘಟಿಸಿದರೆ, ನೀವು ಹೆಚ್ಚಾಗಿ ಒಂದೇ ರೀತಿಯ ವಿಷಯವನ್ನು ಕೇಳಿರಬಹುದು: "ಅದನ್ನು Airflow ನಲ್ಲಿ ಹಾಕಿ." ಸತ್ಯವೇನೆಂದರೆ, ಸಂಕೀರ್ಣ ಕಾರ್ಯವಿಧಾನಗಳ ಮೇಲೆ ನಿಮಗೆ ಗೋಚರತೆ, ವಿಶ್ವಾಸಾರ್ಹತೆ ಮತ್ತು ನಿಯಂತ್ರಣ ಅಗತ್ಯವಿದ್ದಾಗ Apache Airflow ಅದ್ಭುತವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಈ ಪ್ರಾಯೋಗಿಕ ಮಾರ್ಗದರ್ಶಿಯಲ್ಲಿ, Airflow ಅನ್ನು ಹೇಗೆ ಬಳಸುವುದು ಎಂಬುದರ ಕುರಿತು ಹಂತ-ಹಂತವಾಗಿ ನೋಡೋಣ—ಮೂಲ ಪರಿಕಲ್ಪನೆಗಳಿಂದ ಹಿಡಿದು ಉತ್ಪಾದನೆಗೆ ಸಿದ್ಧವಾದ ಮಾದರಿಗಳವರೆಗೆ—ಆದ್ದರಿಂದ ನೀವು ನಂಬುವಂತಹ ಪೈಪ್ಲೈನ್ಗಳನ್ನು ನೀವು ತಲುಪಿಸಬಹುದು.
ನಾವು ಅದನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವಂತೆ ಮಾಡುತ್ತೇವೆ: ನೀವು DAG ಗಳು ಮತ್ತು ಕಾರ್ಯಗಳಿಗಾಗಿ ಒಂದು ಮಾನಸಿಕ ಮಾದರಿಯನ್ನು, TaskFlow API ನೊಂದಿಗೆ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಉದಾಹರಣೆಗಳನ್ನು, ನಿಯೋಜನೆ ಆಯ್ಕೆಗಳನ್ನು, ಪರೀಕ್ಷಾ ತಂತ್ರಗಳನ್ನು ಮತ್ತು ಉತ್ತಮ ಅಭ್ಯಾಸಗಳನ್ನು ಪಡೆಯುತ್ತೀರಿ. ಕೊನೆಯಲ್ಲಿ, ನೀವು "ನಾನು ಟ್ಯುಟೋರಿಯಲ್ ಅನ್ನು ರನ್ ಮಾಡಬಹುದು" ಎಂಬುದರಿಂದ "ನಾನು ಇದನ್ನು ಉತ್ಪಾದನೆಯಲ್ಲಿ ರನ್ ಮಾಡಬಹುದು" ಎಂಬುದಕ್ಕೆ ಬದಲಾಗುತ್ತೀರಿ.
ಗಮನಿಸಿ: ಆಳವಾದ ಅಧ್ಯಯನಗಳು ಮತ್ತು ಉಲ್ಲೇಖಕ್ಕಾಗಿ, ಅಧಿಕೃತ ದಾಖಲೆಗಳು ಅತ್ಯುತ್ತಮವಾಗಿವೆ ಮತ್ತು ನಿಯಮಿತವಾಗಿ ನವೀಕರಿಸಲ್ಪಡುತ್ತವೆ.
Apache Airflow ಎಂದರೇನು, ನಿಜವಾಗಿಯೂ?
Airflow ಒಂದು ಆರ್ಕೆಸ್ಟ್ರೇಟರ್—ಡೇಟಾ ಪ್ರೊಸೆಸರ್ ಅಲ್ಲ. ಇದು ನೀವು ಬೇರೆಡೆ ರನ್ ಮಾಡುವ ಕೆಲಸವನ್ನು (ಡೇಟಾಬೇಸ್ಗಳು, ವೇರ್ಹೌಸ್ಗಳು, Spark ಕಾರ್ಯಗಳು, API ಗಳು, ಕಂಟೈನರ್ಗಳು) ವೇಳಾಪಟ್ಟಿ ಮಾಡುತ್ತದೆ, ಕ್ರಮಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುತ್ತದೆ. ನೀವು ಕಾರ್ಯವಿಧಾನಗಳನ್ನು DAG ಗಳಾಗಿ (ಡೈರೆಕ್ಟೆಡ್ ಅಸಿಕ್ಲಿಕ್ ಗ್ರಾಫ್ಗಳು) ವ್ಯಾಖ್ಯಾನಿಸುತ್ತೀರಿ, ಅವು ಕೇವಲ ಪೈಥಾನ್ ಫೈಲ್ಗಳಾಗಿದ್ದು ಅದು ಕಾರ್ಯಗಳು ಮತ್ತು ಅವುಗಳ ಅವಲಂಬನೆಗಳನ್ನು ಎನ್ಕೋಡ್ ಮಾಡುತ್ತದೆ. Airflow ನಂತರ ನಿಮ್ಮ ವೇಳಾಪಟ್ಟಿ, ನಿಯತಾಂಕಗಳು ಮತ್ತು ಪರಿಸರದ ಪ್ರಕಾರ ಆ ಕಾರ್ಯಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ.
- DAG: ಕಾರ್ಯವಿಧಾನದ ವ್ಯಾಖ್ಯಾನ (ಅವಲಂಬನೆಗಳೊಂದಿಗೆ ಕಾರ್ಯಗಳ ಗ್ರಾಫ್).
- Task: ಕೆಲಸದ ಒಂದು ಘಟಕ (ಪೈಥಾನ್ ಫಂಕ್ಷನ್, SQL ಎಕ್ಸಿಕ್ಯೂಶನ್, Bash ಕಮಾಂಡ್, ಬಾಹ್ಯ ಕೆಲಸದ ಟ್ರಿಗ್ಗರ್, ಇತ್ಯಾದಿ).
- Operator: ಒಂದು ರೀತಿಯ ಕಾರ್ಯಕ್ಕಾಗಿ ಟೆಂಪ್ಲೇಟ್ (ಉದಾಹರಣೆಗೆ,
PythonOperator, BashOperator, KubernetesPodOperator).
- Scheduler: ಏನನ್ನು ಯಾವಾಗ ರನ್ ಮಾಡಬೇಕೆಂದು ನಿರ್ಧರಿಸುತ್ತದೆ.
- Executor: ಕಾರ್ಯಗಳನ್ನು ರನ್ ಮಾಡುತ್ತದೆ (ಸ್ಥಳೀಯವಾಗಿ, Celery, Kubernetes, ಇತ್ಯಾದಿಗಳೊಂದಿಗೆ).
- UI: ರನ್ಗಳು, ಲಾಗ್ಗಳು, ಮರುಪ್ರಯತ್ನಗಳು ಮತ್ತು ವಂಶಾವಳಿಗಾಗಿ ನಿಮ್ಮ ನಿಯಂತ್ರಣ ಕೇಂದ್ರ.
ನೀವು Airflow ಅನ್ನು ಸ್ಥಾಪಿಸಿದ ನಂತರ ಅಧಿಕೃತ ಟ್ಯುಟೋರಿಯಲ್ಗಳೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸಿ; ಅವು ನಿಮಗೆ ದೊಡ್ಡ ಚಿತ್ರವನ್ನು ತ್ವರಿತವಾಗಿ ನೀಡುತ್ತವೆ.
Airflow ಅನ್ನು ಸರಿಯಾದ ರೀತಿಯಲ್ಲಿ ಸ್ಥಾಪಿಸುವುದು ಮತ್ತು ರನ್ ಮಾಡುವುದು
Airflow ಹೊಂದಿಕೊಳ್ಳುವಂತಿದೆ. ನಿಮ್ಮ ಹಂತಕ್ಕೆ ಹೊಂದಿಕೆಯಾಗುವ ಮಾರ್ಗವನ್ನು ಆರಿಸಿ:
- ಸ್ಥಳೀಯ ಅಭಿವೃದ್ಧಿ (ತ್ವರಿತ ಪ್ರಾರಂಭ):
- ಯೋಜನೆಯಿಂದ ಒದಗಿಸಲಾದ ತ್ವರಿತ-ಪ್ರಾರಂಭದ Docker Compose ಅನ್ನು ಬಳಸಿ. ಇದು ವೆಬ್ಸರ್ವರ್, ಶೆಡ್ಯೂಲರ್, ಡೇಟಾಬೇಸ್ ಮತ್ತು ಹೆಚ್ಚಿನದನ್ನು ಸಮಂಜಸವಾದ ಡೀಫಾಲ್ಟ್ಗಳೊಂದಿಗೆ ಸ್ಪಿನ್ ಮಾಡುತ್ತದೆ.
- DAG ಗಳನ್ನು ಕಲಿಯಲು ಮತ್ತು ಪುನರಾವರ್ತಿಸಲು ಉತ್ತಮವಾಗಿದೆ.
- ನಿರ್ವಹಿಸಿದ Postgres ನೊಂದಿಗೆ Celery Executor ಅಥವಾ Kubernetes Executor.
- S3/GCS ನಲ್ಲಿ ಲಾಗ್ಗಳನ್ನು ಸಂಗ್ರಹಿಸಿ ಮತ್ತು ನಿಮ್ಮ ಇಮೇಜ್ ಅಥವಾ
requirements.txt ನೊಂದಿಗೆ ಅವಲಂಬನೆಗಳನ್ನು ಪ್ಯಾಕೇಜ್ ಮಾಡಿ.
- ಎಲಾಸ್ಟಿಸಿಟಿಗಾಗಿ Kubernetes Executor ಅಥವಾ ಆಟೋಸ್ಕೇಲಿಂಗ್ ವರ್ಕರ್ಗಳೊಂದಿಗೆ Celery Executor.
- ಬಾಹ್ಯ ರಹಸ್ಯಗಳು (Vault), ದೃಢವಾದ ವೀಕ್ಷಣೆ (ಲಾಗ್ಗಳು + ಮೆಟ್ರಿಕ್ಗಳು) ಮತ್ತು ಅಪ್ಗ್ರೇಡ್ಗಳಿಗಾಗಿ ನೀಲಿ/ಹಸಿರು ನಿಯೋಜನೆಗಳು.
ಸಲಹೆ: ನಿಮ್ಮ Airflow ಕೋಡ್ಬೇಸ್ ಅನ್ನು ಆವೃತ್ತಿ ನಿಯಂತ್ರಣದಲ್ಲಿ ಇರಿಸಿ, ಕಂಟೈನರೈಸ್ ಮಾಡಿ ಮತ್ತು ಪ್ರಚಾರ ಮಾಡುವ ಮೊದಲು ಪರೀಕ್ಷಿಸಿ. "ಉತ್ತಮ ಅಭ್ಯಾಸಗಳು" ಪುಟವು ಉತ್ಪಾದನೆಗೆ ಸಿದ್ಧವಾದ ಮಾದರಿಗಳನ್ನು ವಿವರಿಸುತ್ತದೆ.
ನೀವು ಪ್ರತಿದಿನ ಬಳಸುವ ಪ್ರಮುಖ ಪರಿಕಲ್ಪನೆಗಳು
DAG ಗಳು: ಕೋಡ್ನಂತೆ ನಿಮ್ಮ ಕಾರ್ಯವಿಧಾನ
DAG ಎನ್ನುವುದು ಪೈಥಾನ್ ಫೈಲ್ ಆಗಿದ್ದು ಅದು ಈ ಕೆಳಗಿನವುಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ:
- DAG ಮೆಟಾಡೇಟಾ: ಐಡಿ, ವೇಳಾಪಟ್ಟಿ, ಪ್ರಾರಂಭ ದಿನಾಂಕ, ಟ್ಯಾಗ್ಗಳು.
- ಡೀಫಾಲ್ಟ್ ಆರ್ಗ್ಸ್: ಮರುಪ್ರಯತ್ನಗಳು, ಮಾಲೀಕರು, SLA ಗಳು.
- ಕಾರ್ಯಗಳು ಮತ್ತು ಅವುಗಳ ಅವಲಂಬನೆಗಳು.
DAG ಅನ್ನು "ಏನು" ಮತ್ತು "ಯಾವಾಗ" ಎಂದು ಮತ್ತು ಕಾರ್ಯಗಳನ್ನು "ಹೇಗೆ" ಎಂದು ಯೋಚಿಸಿ.
ಕಾರ್ಯಗಳು ಮತ್ತು ಆಪರೇಟರ್ಗಳು
ಆಪರೇಟರ್ಗಳು ಸಾಮಾನ್ಯ ಕಾರ್ಯಗಳಿಗಾಗಿ ಪ್ರಿಫ್ಯಾಬ್ಗಳಾಗಿವೆ. ಉದಾಹರಣೆಗಳು:
- ಪೈಥಾನ್ ಕೋಡ್ಗಾಗಿ PythonOperator / TaskFlow
@task
- ಶೆಲ್ ಕಮಾಂಡ್ಗಳಿಗಾಗಿ BashOperator
- API ಗಳಿಗಾಗಿ SimpleHttpOperator
- ಕಂಟೈನರೈಸ್ಡ್ ಕಾರ್ಯಗಳಿಗಾಗಿ KubernetesPodOperator
- ವೇರ್ಹೌಸ್ ಕೆಲಸಕ್ಕಾಗಿ SQL ಪೂರೈಕೆದಾರರು (ಉದಾಹರಣೆಗೆ, Snowflake, BigQuery, Postgres)
TaskFlow API: ಆಧುನಿಕ, ಪೈಥಾನಿಕ್ ವಿಧಾನ
TaskFlow API ನಿಮಗೆ @task ನೊಂದಿಗೆ ಪೈಥಾನ್ ಫಂಕ್ಷನ್ಗಳಂತೆ ಕಾರ್ಯಗಳನ್ನು ಬರೆಯಲು, XCom ಮೂಲಕ ಹಾದುಹೋಗುವ ಮೌಲ್ಯಗಳನ್ನು ಹಿಂತಿರುಗಿಸಲು ಮತ್ತು ಅವುಗಳನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಸಂಯೋಜಿಸಲು ಅನುಮತಿಸುತ್ತದೆ. ಇದು ಬಾಯ್ಲರ್ಪ್ಲೇಟ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ಓದುವಿಕೆಯನ್ನು ಸುಧಾರಿಸುತ್ತದೆ—ಹೆಚ್ಚು ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ.
ನಿಮ್ಮ ಮೊದಲ Airflow DAG (TaskFlow ಆವೃತ್ತಿ)
ಪ್ರಮುಖ ಆಲೋಚನೆಗಳನ್ನು ವಿವರಿಸಲು ಕೆಳಗಿನವು ಕನಿಷ್ಠ ETL-ಶೈಲಿಯ ಉದಾಹರಣೆಯಾಗಿದೆ: ವೇಳಾಪಟ್ಟಿ, TaskFlow, ಅವಲಂಬನೆಗಳು ಮತ್ತು XCom ಡೇಟಾ ವರ್ಗಾವಣೆ.
from datetime import datetime
from airflow import DAG
from airflow.decorators import task
with DAG(
dag_id="weather_etl_example",
start_date=datetime(2024, 1, 1),
schedule="0 * * * *", # hourly
catchup=False,
tags=.
ವೇಳಾಪಟ್ಟಿ, ಕ್ಯಾಚಪ್ ಮತ್ತು ಬ್ಯಾಕ್ಫಿಲ್ಗಳು
schedule: Cron ಅಥವಾ ಪ್ರಿಸೆಟ್ಗಳು (@daily, @hourly).
start_date + catchup: catchup=True ಆಗಿದ್ದರೆ, Airflow ಪ್ರಾರಂಭ ದಿನಾಂಕದಿಂದ ರನ್ಗಳನ್ನು ಬ್ಯಾಕ್ಫಿಲ್ ಮಾಡುತ್ತದೆ. ಸ್ಟ್ರೀಮಿಂಗ್-ಶೈಲಿಯ ಪೈಪ್ಲೈನ್ಗಳಿಗಾಗಿ, catchup=False ಅನ್ನು ಹೊಂದಿಸಿ.
- ಮ್ಯಾನುಯಲ್ ಬ್ಯಾಕ್ಫಿಲ್ಗಳು: ಐತಿಹಾಸಿಕ ಮಧ್ಯಂತರಗಳನ್ನು ಮರು ರನ್ ಮಾಡಲು UI ಅಥವಾ CLI ಅನ್ನು ಬಳಸಿ.
ಪ್ರಾಯೋಗಿಕ ನಿಯಮ: ನಿರ್ಣಾಯಕ ಬ್ಯಾಚ್ ಕಾರ್ಯಗಳಿಗಾಗಿ ಕ್ಯಾಚಪ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ; ನೈಜ-ಸಮಯದ ಅಥವಾ API ದರ-ಸೀಮಿತ ಪೈಪ್ಲೈನ್ಗಳಿಗಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ.
ಕಾರ್ಯಗಳ ನಡುವೆ ಡೇಟಾವನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ವರ್ಗಾಯಿಸುವುದು (XCom)
- ಸಣ್ಣ ವಸ್ತುಗಳು: TaskFlow ನೊಂದಿಗೆ ಮೌಲ್ಯಗಳನ್ನು ಹಿಂತಿರುಗಿಸುವುದು ಉತ್ತಮ.
- ದೊಡ್ಡ ಪೇಲೋಡ್ಗಳು: XCom ನಲ್ಲಿ ಕೀಲಿಯೊಂದಿಗೆ ಆಬ್ಜೆಕ್ಟ್ ಸ್ಟೋರೇಜ್ನಲ್ಲಿ (S3/GCS) ಸಂಗ್ರಹಿಸಿ.
- XCom ನಲ್ಲಿ ಸೂಕ್ಷ್ಮ ಡೇಟಾವನ್ನು ತಪ್ಪಿಸಿ; ರಹಸ್ಯಗಳ ಬ್ಯಾಕೆಂಡ್ಗಳನ್ನು (ಉದಾಹರಣೆಗೆ, Vault) ಮತ್ತು ಪರಿಸರ ವೇರಿಯೇಬಲ್ಗಳನ್ನು ಬಳಸಿ.
ಡೈನಾಮಿಕ್ ಟಾಸ್ಕ್ ಮ್ಯಾಪಿಂಗ್ ಮತ್ತು ಫ್ಯಾನ್-ಔಟ್ ವರ್ಕ್ಲೋಡ್ಗಳು
Airflow ಇನ್ಪುಟ್ಗಳ ಆಧಾರದ ಮೇಲೆ ರನ್ಟೈಮ್ನಲ್ಲಿ ಕಾರ್ಯಗಳನ್ನು ಡೈನಾಮಿಕ್ ಆಗಿ ಉತ್ಪಾದಿಸಬಹುದು—ವಿಭಾಗಿಸಲಾದ ಡೇಟಾಸೆಟ್ಗಳು ಅಥವಾ ಬಹು-ಬಾಡಿಗೆದಾರರ ಕಾರ್ಯಗಳಿಗೆ ಸೂಕ್ತವಾಗಿದೆ.
- DAG ಗಳನ್ನು ನಿರ್ಣಾಯಕ ಮತ್ತು ಐಡೆಂಪೋಟೆಂಟ್ ಆಗಿ ಇರಿಸಿ.
- ಆರ್ಕೆಸ್ಟ್ರೇಶನ್ (Airflow) ಅನ್ನು ಕಂಪ್ಯೂಟೇಶನ್ನಿಂದ (Spark, dbt, ವೇರ್ಹೌಸ್ಗಳು) ಬೇರ್ಪಡಿಸಿ.
- ಸ್ಪಷ್ಟತೆ ಮತ್ತು XCom ನೈರ್ಮಲ್ಯಕ್ಕಾಗಿ TaskFlow API ಅನ್ನು ಬಳಸಿ.
- DAG ಗಳನ್ನು ಪ್ಯಾರಾಮೀಟರೈಸ್ ಮಾಡಿ; ವೇರಿಯೇಬಲ್ಗಳನ್ನು ವಿವೇಚನೆಯಿಂದ ಬಳಸಿ.
- ನಿಮ್ಮ ಪೈಪ್ಲೈನ್ಗಳನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಿ, ಎಚ್ಚರಿಸಿ ಮತ್ತು ದಾಖಲಿಸಿ.
ಡೇಟಾ ವೇರ್ಹೌಸ್ಗಳು ಮತ್ತು ML ನೊಂದಿಗೆ ಹೇಗೆ ಕೆಲಸ ಮಾಡುವುದು
- ಡೇಟಾ ವೇರ್ಹೌಸ್ಗಳು: SQL ಕಾರ್ಯಗಳಿಗಾಗಿ ಪೂರೈಕೆದಾರರ ಆಪರೇಟರ್ಗಳನ್ನು ಬಳಸಿ (ಉದಾಹರಣೆಗೆ, SnowflakeOperator, BigQueryInsertJobOperator). SQL ಅನ್ನು ಫೈಲ್ಗಳಲ್ಲಿ ಅಥವಾ ಆವೃತ್ತಿಯ ಮಾಡ್ಯೂಲ್ಗಳಲ್ಲಿ ಸಂಗ್ರಹಿಸಿ.
- dbt: Bash/KubernetesPodOperator ಅಥವಾ ಪೂರೈಕೆದಾರರಲ್ಲಿ ಮೀಸಲಾದ dbt ಆಪರೇಟರ್ಗಳ ಮೂಲಕ dbt ಅನ್ನು ಟ್ರಿಗ್ಗರ್ ಮಾಡಿ.
- ML: ವೈಶಿಷ್ಟ್ಯ ಉತ್ಪಾದನೆ, ತರಬೇತಿ ಮತ್ತು ಬ್ಯಾಚ್ ತೀರ್ಮಾನವನ್ನು ಪ್ರತ್ಯೇಕ ಕಾರ್ಯಗಳಾಗಿ ಸಂಘಟಿಸಿ; ಸಂಗ್ರಹಣೆಯಲ್ಲಿ ಕಲಾಕೃತಿಗಳನ್ನು ಸಂಗ್ರಹಿಸಿ ಮತ್ತು ಮೆಟ್ರಿಕ್ಗಳನ್ನು ಲಾಗ್ ಮಾಡಿ.
ಸುಧಾರಿತ ವೇಳಾಪಟ್ಟಿ: ಡೇಟಾಸೆಟ್ಗಳು ಮತ್ತು ಕ್ರಾಸ್-DAG ಅವಲಂಬನೆಗಳು
- ಡೇಟಾಸೆಟ್ಗಳು ಒಂದು DAG ಅನ್ನು ತಾರ್ಕಿಕ ಡೇಟಾಸೆಟ್ ಅನ್ನು ಉತ್ಪಾದಿಸಲು ಅನುಮತಿಸುತ್ತದೆ, ಅದು ನವೀಕರಿಸಿದಾಗ ಇನ್ನೊಂದು DAG ಅನ್ನು ಟ್ರಿಗ್ಗರ್ ಮಾಡುತ್ತದೆ—ತಾತ್ಕಾಲಿಕ ಟ್ರಿಗ್ಗರ್ಗಳಿಗಿಂತ ಸ್ವಚ್ಛವಾಗಿದೆ.
- ಹಳೆಯ ಮಾದರಿಗಳಿಗಾಗಿ, ExternalTaskSensor ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಆದರೆ ಡೇಟಾಸೆಟ್ಗಳು ಹೆಚ್ಚು ಘೋಷಣಾತ್ಮಕವಾಗಿವೆ.
ಭದ್ರತೆ ಮತ್ತು ಅನುಸರಣೆ
- UI ನಲ್ಲಿ ರೋಲ್-ಆಧಾರಿತ ಪ್ರವೇಶ ನಿಯಂತ್ರಣವನ್ನು (RBAC) ಬಳಸಿ.
- ತಂಡ ಅಥವಾ ಟ್ರಸ್ಟ್ ಬೌಂಡರಿಯ ಪ್ರಕಾರ ಪರಿಸರಗಳನ್ನು ಪ್ರತ್ಯೇಕಿಸಿ.
- ಲಾಗ್ಗಳು ಮತ್ತು ಸಂಪರ್ಕ ಬದಲಾವಣೆ ಇತಿಹಾಸದ ಮೂಲಕ ಆಡಿಟ್ ಟ್ರೇಲ್ಗಳನ್ನು ಇರಿಸಿ.
ಅಪ್ಗ್ರೇಡ್ಗಳು ಮತ್ತು ಆವೃತ್ತಿ
- ಉತ್ಪಾದನಾ-ರೀತಿಯ ವರ್ಕ್ಲೋಡ್ಗಳೊಂದಿಗೆ ಸ್ಟೇಜಿಂಗ್ನಲ್ಲಿ ಅಪ್ಗ್ರೇಡ್ಗಳನ್ನು ಪರೀಕ್ಷಿಸಿ.
- ಪೂರೈಕೆದಾರರನ್ನು ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಪಿನ್ ಮಾಡಿ ಮತ್ತು ಅಪ್ಗ್ರೇಡ್ ಮಾಡಿ.
- ಎಕ್ಸಿಕ್ಯೂಟರ್-ನಿರ್ದಿಷ್ಟ ಬದಲಾವಣೆಗಳು ಮತ್ತು ಬಳಕೆಯಲ್ಲಿಲ್ಲದವುಗಳಿಗಾಗಿ ಬಿಡುಗಡೆ ಟಿಪ್ಪಣಿಗಳನ್ನು ಓದಿ.
ನಿಮ್ಮ ಮೊದಲ ಉತ್ಪಾದನಾ DAG ಗಾಗಿ ತ್ವರಿತ ಪರಿಶೀಲನಾಪಟ್ಟಿ
- ಸ್ಪಷ್ಟ ಮಾಲೀಕತ್ವ (
owner ಟ್ಯಾಗ್) ಮತ್ತು ಎಚ್ಚರಿಕೆಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾಗಿದೆ.
- ಸಮಂಜಸವಾದ ಬ್ಯಾಕ್ಆಫ್ಗಳೊಂದಿಗೆ
retries ಅನ್ನು ಹೊಂದಿಸಲಾಗಿದೆ.
- ಐಡೆಂಪೋಟೆಂಟ್ ಕಾರ್ಯಗಳು ಮತ್ತು ಸ್ಪಷ್ಟ ಅವಲಂಬನೆಗಳು.
- ಸಣ್ಣ XCom ಪೇಲೋಡ್ಗಳು; ಸಂಗ್ರಹಣೆಯಲ್ಲಿ ದೊಡ್ಡ ಡೇಟಾ.
- ಬಾಳಿಕೆ ಬರುವ ಸಂಗ್ರಹಣೆಗೆ ರವಾನೆಯಾದ ಲಾಗ್ಗಳು; ರಫ್ತು ಮಾಡಿದ ಮೆಟ್ರಿಕ್ಗಳು.
- ರೋಲ್ಔಟ್ ಯೋಜನೆ (ಕೆನರಿ ಅಥವಾ ನೀಲಿ/ಹಸಿರು) ಮತ್ತು ರೋಲ್ಬ್ಯಾಕ್ ಹಂತಗಳು.
ಉದಾಹರಣೆ: ಒಂದು ವಾಸ್ತವಿಕ ವೇರ್ಹೌಸ್ ಲೋಡ್ DAG
ಈ ಮಾದರಿಯು ದೈನಂದಿನ ಫೈಲ್ಗಳನ್ನು ಹೊರತೆಗೆಯುತ್ತದೆ, ಅವುಗಳನ್ನು ಮೌಲ್ಯೀಕರಿಸುತ್ತದೆ ಮತ್ತು ಅವುಗಳನ್ನು ವೇರ್ಹೌಸ್ ಟೇಬಲ್ಗೆ ಲೋಡ್ ಮಾಡುತ್ತದೆ, ಪ್ರತಿ ವಿಭಾಗಕ್ಕೆ ಡೈನಾಮಿಕ್ ಮ್ಯಾಪಿಂಗ್ ಮತ್ತು ಡಿಫೆರಬಲ್ ಸೆನ್ಸರ್ಗಳೊಂದಿಗೆ.
from datetime import datetime
from airflow import DAG
from airflow.decorators import task
from airflow.sensors.filesystem import FileSensor
- ಉತ್ಪಾದನೆಗೆ ಪ್ರಚಾರ ಮಾಡುವ ಮೊದಲು ಉತ್ತಮ ಅಭ್ಯಾಸಗಳನ್ನು ಪರಿಶೀಲಿಸಿ.
- ನಿಮ್ಮ ಸಿಸ್ಟಮ್ಗಳಿಗಾಗಿ ಪೂರೈಕೆದಾರರ ದಾಖಲೆಗಳನ್ನು ಅನ್ವೇಷಿಸಿ (ವೇರ್ಹೌಸ್ಗಳು, ಕ್ಲೌಡ್ಗಳು, ML ಪರಿಕರಗಳು).
ಮೂಲಕ: AI ಸೈಡ್ಕಿಕ್ನೊಂದಿಗೆ ಲೇಖನವನ್ನು ವೇಗಗೊಳಿಸಿ
ಗಮನಿಸಬೇಕಾದ ಅಂಶ: ನೀವು ಬಹಳಷ್ಟು DAG ಗಳನ್ನು ಡ್ರಾಫ್ಟ್ ಮಾಡಿದರೆ, ಕೋಡ್ ಅನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವ AI ಸಹಾಯಕ ಬಾಯ್ಲರ್ಪ್ಲೇಟ್ ಅನ್ನು ವೇಗಗೊಳಿಸುತ್ತದೆ, TaskFlow ಸ್ಟಬ್ಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ ಮತ್ತು ಅವಲಂಬನೆ ಪರಿಹಾರಗಳನ್ನು ಸಹ ಸೂಚಿಸುತ್ತದೆ. ನಿಮ್ಮ ಸಂಪಾದಕ ಮತ್ತು ಬ್ರೌಸರ್ನೊಂದಿಗೆ ಹಗುರವಾದ ಸಹಾಯಕರನ್ನು ನೀವು ಬಯಸಿದರೆ, ಅಭಿವೃದ್ಧಿಯ ಸಮಯದಲ್ಲಿ ತ್ವರಿತ ಕೋಡ್ ಪುನಃ ಬರೆಯುವಿಕೆ ಮತ್ತು ವಿವರಣೆಗಳಿಗಾಗಿ Sider.AI ಉಪಯುಕ್ತವಾಗಬಹುದು. ಪ್ರಮುಖ ಅಂಶಗಳು
- ಕಂಪ್ಯೂಟ್ ಮಾಡಲು ಅಲ್ಲ, ಆರ್ಕೆಸ್ಟ್ರೇಟ್ ಮಾಡಲು Airflow ಬಳಸಿ.
- ಸ್ವಚ್ಛವಾದ, ಪರೀಕ್ಷಿಸಬಹುದಾದ DAG ಗಳಿಗಾಗಿ TaskFlow API ಅನ್ನು ಬಳಸಿ.
- XCom ನಿಂದ ಡೇಟಾವನ್ನು ಹೊರಗಿಡಿ; ಬದಲಿಗೆ ಉಲ್ಲೇಖಗಳನ್ನು ರವಾನಿಸಿ.
- ಸ್ಲಾಟ್ಗಳನ್ನು ಉಳಿಸಲು ಡಿಫೆರಬಲ್ ಸೆನ್ಸರ್ಗಳು/ಆಪರೇಟರ್ಗಳನ್ನು ಬಳಸಿ.
- ಕಂಟೈನರೈಸ್ ಮಾಡಿ, ಪರೀಕ್ಷಿಸಿ ಮತ್ತು ಪರಿಸರಗಳ ಮೂಲಕ ಪ್ರಚಾರ ಮಾಡಿ.
- ನಿಮ್ಮ ಉತ್ತರ ನಕ್ಷತ್ರವಾಗಿ ಅಧಿಕೃತ ಟ್ಯುಟೋರಿಯಲ್ಗಳು ಮತ್ತು ಉತ್ತಮ ಅಭ್ಯಾಸಗಳನ್ನು ಅವಲಂಬಿಸಿ.
FAQ
Q1: Airflow ಅನ್ನು ಹೇಗೆ ಬಳಸುವುದು ಎಂದು ಕಲಿಯಲು ಸುಲಭವಾದ ಮಾರ್ಗ ಯಾವುದು?
DAG ಗಳು, ಕಾರ್ಯಗಳು, ವೇಳಾಪಟ್ಟಿ ಮತ್ತು UI ಅನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಅಧಿಕೃತ ಟ್ಯುಟೋರಿಯಲ್ನೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸಿ. ನಂತರ ಸಣ್ಣ TaskFlow-ಆಧಾರಿತ ಪೈಪ್ಲೈನ್ ಅನ್ನು ನಿರ್ಮಿಸಿ ಮತ್ತು ಉತ್ಪಾದನೆಗೆ ಸಿದ್ಧವಾಗಲು ಉತ್ತಮ ಅಭ್ಯಾಸಗಳ ಮಾರ್ಗದರ್ಶಿಯೊಂದಿಗೆ ಪುನರಾವರ್ತಿಸಿ.
Q2: Airflow ನಲ್ಲಿ TaskFlow API ಅಥವಾ ಕ್ಲಾಸಿಕ್ ಆಪರೇಟರ್ಗಳನ್ನು ನಾನು ಬಳಸಬೇಕೇ?
ಹೆಚ್ಚಿನ ಪೈಥಾನಿಕ್ ಪೈಪ್ಲೈನ್ಗಳಿಗಾಗಿ TaskFlow API ಅನ್ನು ಬಳಸಿ ಏಕೆಂದರೆ ಅದು ಸ್ವಚ್ಛವಾಗಿರುತ್ತದೆ ಮತ್ತು XCom ರಿಟರ್ನ್ಗಳನ್ನು ಸ್ವಾಭಾವಿಕವಾಗಿ ನಿರ್ವಹಿಸುತ್ತದೆ. Bash, SQL ಅಥವಾ ಕಂಟೈನರ್ ಕಾರ್ಯಗಳಂತಹ ಪೈಥಾನ್ ಅಲ್ಲದ ಕಾರ್ಯಗಳಿಗೆ ಕ್ಲಾಸಿಕ್ ಆಪರೇಟರ್ಗಳು ಉತ್ತಮವಾಗಿವೆ.
Q3: Airflow ಕಾರ್ಯಗಳ ನಡುವೆ ನಾನು ದೊಡ್ಡ ಡೇಟಾವನ್ನು ಹೇಗೆ ರವಾನಿಸುವುದು?
XCom ನಲ್ಲಿ ದೊಡ್ಡ ಪೇಲೋಡ್ಗಳನ್ನು ಹಾಕುವುದನ್ನು ತಪ್ಪಿಸಿ. ಕಾರ್ಯಗಳನ್ನು ವೇಗವಾಗಿ ಮತ್ತು ವಿಶ್ವಾಸಾರ್ಹವಾಗಿಡಲು S3/GCS ಅಥವಾ ಡೇಟಾಬೇಸ್ನಲ್ಲಿ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸಿ ಮತ್ತು XCom ಮೂಲಕ ಉಲ್ಲೇಖಗಳು ಅಥವಾ URI ಗಳನ್ನು ಮಾತ್ರ ರವಾನಿಸಿ.
Q4: ಉತ್ಪಾದನೆಯಲ್ಲಿ Airflow ಗಾಗಿ ನಾನು ಯಾವ ಎಕ್ಸಿಕ್ಯೂಟರ್ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಬೇಕು?
ಎಲಾಸ್ಟಿಸಿಟಿ ಮತ್ತು ಐಸೋಲೇಶನ್ಗಾಗಿ, Kubernetes Executor ಪ್ರಬಲ ಡೀಫಾಲ್ಟ್ ಆಗಿದೆ. ಸರಳ ಸೆಟಪ್ಗಳಿಗಾಗಿ, Celery Executor ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ—ಆಟೋಸ್ಕೇಲಿಂಗ್, ದೃಢವಾದ ಲಾಗಿಂಗ್ ಮತ್ತು ಬಾಹ್ಯ ರಹಸ್ಯಗಳನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.
Q5: ನಾನು ಬಹು Airflow DAG ಗಳಾದ್ಯಂತ ಅವಲಂಬನೆಗಳನ್ನು ಹೇಗೆ ನಿರ್ವಹಿಸುವುದು?
ಒಂದು ಪೈಪ್ಲೈನ್ ಇನ್ನೊಂದಕ್ಕೆ ಡೇಟಾವನ್ನು ಉತ್ಪಾದಿಸಿದಾಗ ಘೋಷಣಾತ್ಮಕ ಕ್ರಾಸ್-DAG ಟ್ರಿಗ್ಗರ್ಗಳಿಗಾಗಿ ಡೇಟಾಸೆಟ್ಗಳನ್ನು ಬಳಸಿ. ಪರ್ಯಾಯವಾಗಿ, ExternalTaskSensor ರನ್ಗಳನ್ನು ಸಂಯೋಜಿಸಬಹುದು, ಆದರೆ ಡೇಟಾ-ಚಾಲಿತ ಆರ್ಕೆಸ್ಟ್ರೇಶನ್ಗಾಗಿ ಡೇಟಾಸೆಟ್ಗಳು ಸ್ವಚ್ಛವಾಗಿರುತ್ತವೆ.