Airflow-ஐ எவ்வாறு பயன்படுத்துவது: நம்பகமான தரவு குழாய்களை உருவாக்க ஒரு நடைமுறை, இறுதி முதல் இறுதி வழிகாட்டி
நீங்கள் தரவை நகர்த்தினாலோ அல்லது ML வேலைகளை ஒருங்கிணைத்தாலோ, “Airflow-இல் போடுங்கள்” என்ற ஒரே கோரிக்கையை நீங்கள் அடிக்கடி கேட்டிருப்பீர்கள். சிக்கலான பணிப்பாய்வுகளுக்கு உங்களுக்குத் தெரிவுநிலை, நம்பகத்தன்மை மற்றும் கட்டுப்பாடு தேவைப்படும்போது Apache Airflow சிறப்பாகச் செயல்படுகிறது. இந்த நடைமுறை வழிகாட்டியில், Airflow-ஐ எவ்வாறு பயன்படுத்துவது என்பதைப் படிப்படியாகப் பார்ப்போம்—முக்கிய கருத்துகள் முதல் உற்பத்திக்குத் தயாரான முறைகள் வரை—எனவே நீங்கள் நம்பகமான குழாய்களை அனுப்பலாம்.
நாங்கள் அதைச் செயல்படுத்தக்கூடியதாக வைத்திருப்போம்: DAGகள் மற்றும் பணிகளுக்கான மன மாதிரியைப் பெறுவீர்கள், TaskFlow API, வரிசைப்படுத்தல் விருப்பங்கள், சோதனை உத்திகள் மற்றும் சிறந்த நடைமுறைகளுடன் கூடிய நேரடி உதாரணங்களைப் பெறுவீர்கள். முடிவில், நீங்கள் “நான் பயிற்சியை இயக்க முடியும்” என்பதிலிருந்து “நான் இதை உற்பத்தியில் இயக்க முடியும்” என்பதற்குச் செல்வீர்கள்.
குறிப்பு: ஆழமான பகுப்பாய்வு மற்றும் குறிப்புக்கு, அதிகாரப்பூர்வ ஆவணங்கள் சிறந்தவை மற்றும் தொடர்ந்து புதுப்பிக்கப்படுகின்றன.
Apache Airflow என்றால் என்ன?
Airflow ஒரு ஆர்கெஸ்ட்ரேட்டர் - தரவு செயலி அல்ல. இது நீங்கள் வேறொரு இடத்தில் இயக்கும் வேலையை திட்டமிடுகிறது, வரிசைப்படுத்துகிறது மற்றும் கண்காணிக்கிறது (தரவுத்தளங்கள், கிடங்குகள், Spark வேலைகள், APIகள், கொள்கலன்கள்). நீங்கள் பணிப்பாய்வுகளை DAGகளாக (டைரக்டட் அசைக்கிளிக் கிராஃப்கள்) வரையறுக்கிறீர்கள், அவை பணிகள் மற்றும் அவற்றின் சார்புகளை குறியாக்கம் செய்யும் Python கோப்புகள். Airflow பின்னர் உங்கள் அட்டவணை, அளவுருக்கள் மற்றும் சூழலுக்கு ஏற்ப அந்த பணிகளைச் செயல்படுத்துகிறது.
- DAG: பணிப்பாய்வு வரையறை (சார்புகளுடன் கூடிய பணிகளின் வரைபடம்).
- பணி: வேலையின் ஒரு அலகு (Python செயல்பாடு, SQL Execution, Bash கட்டளை, வெளிப்புற வேலை தூண்டுதல் போன்றவை).
- ஆபரேட்டர்: ஒரு வகையான பணிக்கான டெம்ப்ளேட் (எ.கா.,
PythonOperator, BashOperator, KubernetesPodOperator).
- திட்டமிடுபவர்: எதை எப்போது இயக்க வேண்டும் என்பதைத் தீர்மானிக்கிறது.
- செயல்படுத்துபவர்: பணிகளை இயக்குகிறது (உள்ளூரில், Celery, Kubernetes போன்றவை).
- UI: ரன்கள், பதிவுகள், மறுமுயற்சிகள் மற்றும் வம்சாவளியைக் கட்டுப்படுத்துவதற்கான உங்கள் கட்டுப்பாட்டு மையம்.
Airflow-ஐ நிறுவியதும் அதிகாரப்பூர்வ பயிற்சிகளுடன் தொடங்கவும்; அவை உங்களுக்கு பெரிய படத்தை விரைவாகக் கொடுக்கும்.
Airflow-ஐ சரியான வழியில் நிறுவுதல் மற்றும் இயக்குதல்
Airflow நெகிழ்வானது. உங்கள் நிலைக்குப் பொருந்தும் பாதையைத் தேர்ந்தெடுக்கவும்:
- உள்ளூர் மேம்பாடு (விரைவான தொடக்கம்):
- திட்டம் வழங்கிய விரைவான தொடக்க Docker Compose ஐப் பயன்படுத்தவும். இது வலை சேவையகம், திட்டமிடுபவர், தரவுத்தளம் மற்றும் பலவற்றை இயல்பான இயல்புநிலைகளுடன் சுழற்றுகிறது.
- DAGகளைக் கற்றுக்கொள்வதற்கும் மீண்டும் செய்வதற்கும் சிறந்தது.
- Celery Executor அல்லது Kubernetes Executor உடன் நிர்வகிக்கப்படும் Postgres.
- S3/GCS இல் பதிவுகளைச் சேமித்து, உங்கள் படம் அல்லது
requirements.txt உடன் சார்புகளை தொகுக்கவும்.
- மீள்தன்மைக்கான Kubernetes Executor அல்லது ஆட்டோஸ்கேலிங் தொழிலாளர்களுடன் Celery Executor.
- வெளிப்புற ரகசியங்கள் (Vault), வலுவான கண்காணிப்பு (பதிவுகள் + அளவீடுகள்) மற்றும் மேம்படுத்தல்களுக்கான நீலம்/பச்சை வரிசைப்படுத்தல்கள்.
உதவிக்குறிப்பு: உங்கள் Airflow குறியீடு தளத்தை பதிப்பு கட்டுப்பாடு, கொள்கலனாக்கம் செய்து, பதவி உயர்வு செய்வதற்கு முன் சோதிக்கவும். “சிறந்த நடைமுறைகள்” பக்கம் உற்பத்திக்குத் தயாரான முறைகளை கோடிட்டுக் காட்டுகிறது.
தினமும் நீங்கள் பயன்படுத்தும் முக்கிய கருத்துகள்
DAGகள்: உங்கள் பணிப்பாய்வு குறியீடாக
ஒரு DAG என்பது ஒரு Python கோப்பு, அது பின்வருவனவற்றை வரையறுக்கிறது:
- DAG metadata: id, அட்டவணை, தொடக்க தேதி, குறிச்சொற்கள்.
- இயல்புநிலை வாதங்கள்: மறுமுயற்சிகள், உரிமையாளர்கள், SLAs.
- பணிகள் மற்றும் அவற்றின் சார்புகள்.
ஒரு DAG ஐ “என்ன” மற்றும் “எப்போது” என்றும், பணிகளை “எப்படி” என்றும் நினைத்துப் பாருங்கள்.
பணிகள் மற்றும் ஆபரேட்டர்கள்
ஆபரேட்டர்கள் பொதுவான பணிகளுக்கான ஆயத்தமானவை. உதாரணங்கள்:
- Python குறியீடுக்கான PythonOperator / TaskFlow
@task
- ஷெல் கட்டளைகளுக்கான BashOperator
- APIகளுக்கான SimpleHttpOperator
- கொள்கலனாக்கப்பட்ட வேலைகளுக்கான KubernetesPodOperator
- கிடங்கு வேலைக்கான SQL வழங்குநர்கள் (எ.கா., Snowflake, BigQuery, Postgres)
TaskFlow API: நவீன, பைத்தோனிக் வழி
TaskFlow API ஆனது பணிகளை @task உடன் Python செயல்பாடுகளாக எழுதவும், 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களை தீர்மானகரமானதாகவும், ஐடெம்போட்டென்ட் ஆகவும் வைத்திருங்கள்.
- கணக்கீட்டிலிருந்து (Spark, dbt, கிடங்குகள்) ஆர்கெஸ்ட்ரேஷனை (Airflow) பிரிக்கவும்.
- தெளிவு மற்றும் 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 இலிருந்து தரவை வெளியே வைக்கவும்; அதற்கு பதிலாக குறிப்புகளை அனுப்பவும்.
- ஸ்லாட்டுகளை சேமிக்க ஒத்திவைக்கக்கூடிய சென்சார்கள்/ஆபரேட்டர்களைப் பயன்படுத்தவும்.
- சூழல்கள் மூலம் கொள்கலனாக்கம், சோதனை மற்றும் பதவி உயர்வு.
- அதிகாரப்பூர்வ பயிற்சிகள் மற்றும் சிறந்த நடைமுறைகளை உங்கள் வட நட்சத்திரமாக நம்புங்கள்.
அடிக்கடி கேட்கப்படும் கேள்விகள்
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 ரன்களை ஒருங்கிணைக்க முடியும், ஆனால் தரவு-உந்துதல் ஆர்கெஸ்ட்ரேஷனுக்கு தரவுத்தொகுப்புகள் சுத்தமானவை.