जेफिरनेट लोगो

Apache Airflow संस्करण 2.8.1 के लिए Amazon MWAA समर्थन का परिचय | अमेज़न वेब सेवाएँ

दिनांक:

Apache Airflow के लिए Amazon प्रबंधित वर्कफ़्लो (अमेज़ॅन MWAA) के लिए एक प्रबंधित ऑर्केस्ट्रेशन सेवा है अपाचे एयरफ्लो इससे क्लाउड में एंड-टू-एंड डेटा पाइपलाइनों को स्थापित करना और संचालित करना आसान हो जाता है।

संगठन अपने व्यावसायिक वर्कफ़्लो को बढ़ाने के लिए Amazon MWAA का उपयोग करते हैं। उदाहरण के लिए, C2i जीनोमिक्स अरबों रिकॉर्ड में कैंसर जीनोमिक्स डेटा को संसाधित करने वाले एल्गोरिदम के सत्यापन को व्यवस्थित करने के लिए अपने डेटा प्लेटफ़ॉर्म में अमेज़ॅन MWAA का उपयोग करता है। चिकोटीएक लाइव स्ट्रीमिंग प्लेटफ़ॉर्म, 140 मिलियन से अधिक सक्रिय उपयोगकर्ताओं के लिए अपने अनुशंसा मॉडल के प्रशिक्षण और तैनाती का प्रबंधन और आयोजन करता है। वे बड़े पैमाने पर अमेज़ॅन MWAA का उपयोग करते हैं, जबकि सुरक्षा में उल्लेखनीय सुधार करते हैं और बुनियादी ढांचे के प्रबंधन ओवरहेड को कम करते हैं।

आज, हम Amazon MWAA पर Apache Airflow संस्करण 2.8.1 वातावरण की उपलब्धता की घोषणा कर रहे हैं। इस पोस्ट में, हम आपको अमेज़ॅन MWAA में अब उपलब्ध एयरफ्लो की कुछ नई सुविधाओं और क्षमताओं के बारे में बताते हैं, और आप अपने अमेज़ॅन MWAA वातावरण को संस्करण 2.8.1 में कैसे सेट या अपग्रेड कर सकते हैं।

वस्तु भंडारण

डेटा पाइपलाइनों के पैमाने के रूप में, इंजीनियरों को अद्वितीय एपीआई, प्रमाणीकरण विधियों और डेटा तक पहुंचने के लिए परंपराओं के साथ कई प्रणालियों में भंडारण का प्रबंधन करने के लिए संघर्ष करना पड़ता है, जिसके लिए कस्टम तर्क और भंडारण-विशिष्ट ऑपरेटरों की आवश्यकता होती है। एयरफ्लो अब एक एकीकृत ऑब्जेक्ट स्टोरेज एब्स्ट्रैक्शन परत प्रदान करता है जो इन विवरणों को संभालता है, जिससे इंजीनियरों को अपनी डेटा पाइपलाइनों पर ध्यान केंद्रित करने में मदद मिलती है। एयरफ्लो ऑब्जेक्ट भंडारण का उपयोग करता है fsspec विभिन्न ऑब्जेक्ट स्टोरेज सिस्टम में लगातार डेटा एक्सेस कोड को सक्षम करने के लिए, जिससे बुनियादी ढांचे की जटिलता को सुव्यवस्थित किया जा सके।

सुविधा के कुछ प्रमुख लाभ निम्नलिखित हैं:

  • पोर्टेबल वर्कफ़्लोज़ - आप अपने डायरेक्टेड एसाइक्लिक ग्राफ़ (डीएजी) में न्यूनतम बदलाव के साथ भंडारण सेवाओं को बदल सकते हैं
  • कुशल डेटा स्थानांतरण - आप मेमोरी में लोड करने के बजाय डेटा स्ट्रीम कर सकते हैं
  • रखरखाव कम कर दिया - आपको अलग-अलग ऑपरेटरों की आवश्यकता नहीं है, जिससे आपकी पाइपलाइनों का रखरखाव आसान हो जाता है
  • परिचित प्रोग्रामिंग अनुभव - आप पायथन मॉड्यूल का उपयोग कर सकते हैं, जैसे शटिल, फ़ाइल संचालन के लिए

ऑब्जेक्ट स्टोरेज का उपयोग करने के लिए अमेज़न सरल भंडारण सेवा (अमेज़ॅन S3), आपको इसकी आवश्यकता है अतिरिक्त पैकेज स्थापित करें अमेज़न प्रदाता के साथ s3fs (apache-airflow-providers-amazon[s3fs]==x.x.x).

नीचे दिए गए नमूना कोड में, आप देख सकते हैं कि डेटा को सीधे कैसे स्थानांतरित किया जाए गूगल क्लाउड स्टोरेज अमेज़न S3 के लिए. क्योंकि एयरफ्लो का ऑब्जेक्ट स्टोरेज उपयोग करता है shutil.copyfileobj, ऑब्जेक्ट का डेटा टुकड़ों में पढ़ा जाता है gcs_data_source और स्ट्रीम किया गया amazon_s3_data_target.

gcs_data_source = ObjectStoragePath("gcs://source-bucket/prefix/", conn_id="google_cloud_default")

amazon_s3_data_target = ObjectStoragePath("s3://target-bucket/prefix/", conn_id="aws_default ")

with DAG(
    dag_id="copy_from_gcs_to_amazon_s3",
    start_date=datetime(2024, 2, 26),
    schedule="0 0 * * *",
    catchup=False,    
    tags=["2.8", "ObjectStorage"],
) as dag:

    def list_objects(path: ObjectStoragePath) -> list[ObjectStoragePath]:
        objects = [f for f in path.iterdir() if f.is_file()]
        return objects

    def copy_object(path: ObjectStoragePath, object: ObjectStoragePath):    
        object.copy(dst=path)

    objects_list = list_objects(path=gcs_data_source)
    copy_object.partial(path=amazon_s3_data_target).expand(object=objects_list)

एयरफ्लो ऑब्जेक्ट स्टोरेज के बारे में अधिक जानकारी के लिए देखें ऑब्जेक्ट स्टोरेज.

एक्सकॉम यूआई

एक्सकॉम (क्रॉस-कम्यूनिकेशन) कार्यों के बीच डेटा को पारित करने, उनके बीच संचार और समन्वय की सुविधा प्रदान करता है। पहले, डेवलपर्स को किसी कार्य से संबंधित XComs को देखने के लिए एक अलग दृश्य पर स्विच करना पड़ता था। एयरफ्लो 2.8 के साथ, एक्सकॉम कुंजी-मान सीधे एयरफ्लो ग्रिड दृश्य के भीतर एक टैब पर प्रस्तुत किए जाते हैं, जैसा कि निम्नलिखित स्क्रीनशॉट में दिखाया गया है।

नई एक्सकॉम टैब निम्नलिखित लाभ प्रदान करता है:

  • बेहतर XCom दृश्यता - यूआई में एक समर्पित टैब डीएजी या कार्य से जुड़े सभी एक्सकॉम को देखने का एक सुविधाजनक और उपयोगकर्ता-अनुकूल तरीका प्रदान करता है।
  • बेहतर डिबगिंग - XCom मानों को सीधे UI में देखने में सक्षम होना DAGs को डीबग करने में सहायक है। आप पायथन कोड का उपयोग करके मैन्युअल रूप से खींचने और निरीक्षण करने की आवश्यकता के बिना अपस्ट्रीम कार्यों के आउटपुट को तुरंत देख सकते हैं।

कार्य संदर्भ लकड़हारा

एयरफ्लो में डेटा पाइपलाइनों के सुचारू संचालन के लिए कार्य जीवनचक्र का प्रबंधन महत्वपूर्ण है। हालाँकि, कुछ चुनौतियाँ बनी हुई हैं, विशेषकर उन परिदृश्यों में जहाँ कार्य अप्रत्याशित रूप से रुक गए हैं। यह विभिन्न कारणों से हो सकता है, जिसमें शेड्यूलर टाइमआउट भी शामिल है। ज़ोंबी कार्य (ऐसे कार्य जो दिल की धड़कन भेजे बिना चालू स्थिति में रहते हैं), या ऐसे उदाहरण जहां कार्यकर्ता की स्मृति समाप्त हो जाती है।

परंपरागत रूप से, ऐसी विफलताएं, विशेष रूप से शेड्यूलर या निष्पादक जैसे कोर एयरफ्लो घटकों द्वारा ट्रिगर की गईं, कार्य लॉग में दर्ज नहीं की गईं। इस सीमा के कारण उपयोगकर्ताओं को एयरफ्लो यूआई के बाहर समस्या निवारण की आवश्यकता होती है, जिससे समस्याओं का पता लगाने और उन्हें हल करने की प्रक्रिया जटिल हो जाती है।

एयरफ्लो 2.8 ने एक महत्वपूर्ण सुधार पेश किया जो इस समस्या का समाधान करता है। शेड्यूलर और निष्पादक सहित एयरफ्लो घटक अब नए का उपयोग कर सकते हैं टास्ककॉन्टेक्स्टलॉगर त्रुटि संदेशों को सीधे कार्य लॉग में अग्रेषित करने के लिए। यह सुविधा आपको किसी कार्य से संबंधित सभी प्रासंगिक त्रुटि संदेशों को एक ही स्थान पर देखने की अनुमति देती है। यह यह पता लगाने की प्रक्रिया को सरल बनाता है कि कोई कार्य क्यों विफल हुआ, एक ही लॉग दृश्य में क्या गलत हुआ इसका पूरा परिप्रेक्ष्य पेश करता है।

निम्नलिखित स्क्रीनशॉट दिखाता है कि कार्य का पता कैसे लगाया जाता है zombie, और शेड्यूलर लॉग को कार्य लॉग के भाग के रूप में शामिल किया जा रहा है।

आपको पर्यावरण कॉन्फ़िगरेशन पैरामीटर सेट करने की आवश्यकता है enable_task_context_logger सेवा मेरे True, सुविधा को सक्षम करने के लिए। एक बार यह सक्षम हो जाने पर, एयरफ्लो शेड्यूलर, निष्पादक, या कॉलबैक रन संदर्भ से लॉग को कार्य लॉग में भेज सकता है, और उन्हें एयरफ्लो यूआई में उपलब्ध करा सकता है।

डेटासेट के लिए श्रोता हुक

डेटासेट डीएजी के बीच डेटा-जागरूक शेड्यूलिंग और निर्भरता बनाने के लिए डेटा स्रोतों के तार्किक समूह के रूप में एयरफ्लो 2.4 में पेश किया गया था। उदाहरण के लिए, जब कोई निर्माता DAG किसी डेटासेट को अपडेट करता है तो आप उपभोक्ता DAG को चलाने के लिए शेड्यूल कर सकते हैं। श्रोताओं एयरफ्लो उपयोगकर्ताओं को पर्यावरण में होने वाली कुछ घटनाओं के लिए सदस्यता बनाने में सक्षम बनाता है। एयरफ़्लो 2.8 में, श्रोताओं को दो डेटासेट इवेंट के लिए जोड़ा जाता है: on_dataset_created और on_डेटासेट_बदला हुआ, प्रभावी रूप से एयरफ़्लो उपयोगकर्ताओं को डेटासेट प्रबंधन संचालन पर प्रतिक्रिया करने के लिए कस्टम कोड लिखने की अनुमति देता है। उदाहरण के लिए, आप किसी बाहरी सिस्टम को ट्रिगर कर सकते हैं, या एक अधिसूचना भेज सकते हैं।

डेटासेट के लिए श्रोता हुक का उपयोग करना सीधा है। श्रोता बनाने के लिए निम्नलिखित चरणों को पूरा करें on_dataset_changed:

  1. श्रोता बनाएं (dataset_listener.py):
    from airflow import Dataset
    from airflow.listeners import hookimpl
    
    @hookimpl
    def on_dataset_changed(dataset: Dataset):
        """Following custom code is executed when a dataset is changed."""
        print("Invoking external endpoint")
    
        """Validating a specific dataset"""
        if dataset.uri == "s3://bucket-prefix/object-key.ext":
            print ("Execute specific/different action for this dataset")

  2. अपने एयरफ्लो वातावरण में श्रोता को पंजीकृत करने के लिए एक प्लगइन बनाएं (dataset_listener_plugin.py):
    from airflow.plugins_manager import AirflowPlugin
    from plugins import listener_code
    
    class DatasetListenerPlugin(AirflowPlugin):
        name = "dataset_listener_plugin"
        listeners = [dataset_listener]

Amazon MWAA में प्लगइन्स इंस्टॉल करने के तरीके के बारे में अधिक जानकारी के लिए देखें कस्टम प्लगइन्स इंस्टॉल करना.

Amazon MWAA में एक नया एयरफ्लो 2.8.1 वातावरण स्थापित करें

आप पहल कर सकते हैं व्यवस्था का उपयोग करके अपने खाते और पसंदीदा क्षेत्र में एडब्ल्यूएस प्रबंधन कंसोल, एपीआई, या AWS कमांड लाइन इंटरफ़ेस (एडब्ल्यूएस सीएलआई)। यदि आप बुनियादी ढांचे को कोड (IaC) के रूप में अपना रहे हैं, तो आप इसका उपयोग करके सेटअप को स्वचालित कर सकते हैं एडब्ल्यूएस CloudFormation, AWS क्लाउड डेवलपमेंट किट (एडब्ल्यूएस सीडीके), या टेराफॉर्म स्क्रिप्ट।

अमेज़ॅन MWAA में एयरफ्लो संस्करण 2.8.1 वातावरण के सफल निर्माण पर, कुछ पैकेज स्वचालित रूप से शेड्यूलर और वर्कर नोड्स पर इंस्टॉल हो जाते हैं। स्थापित पैकेजों और उनके संस्करणों की पूरी सूची के लिए, देखें Apache Airflow प्रदाता पैकेज Amazon MWAA परिवेश पर स्थापित किए गए हैं. आप आवश्यकता फ़ाइल का उपयोग करके अतिरिक्त पैकेज स्थापित कर सकते हैं।

एयरफ़्लो के पुराने संस्करणों से संस्करण 2.8.1 में अपग्रेड करें

आप इन-प्लेस संस्करण अपग्रेड का उपयोग करके अपने पुराने एयरफ्लो संस्करण 2.x-आधारित वातावरण को संस्करण 2.8.1 में अपग्रेड करके इन नवीनतम क्षमताओं का लाभ उठा सकते हैं। इन-प्लेस संस्करण अपग्रेड के बारे में अधिक जानने के लिए, देखें अपाचे एयरफ़्लो संस्करण को अपग्रेड करना or अमेज़ॅन MWAA के साथ इन-प्लेस संस्करण अपग्रेड पेश किया जा रहा है.

निष्कर्ष

इस पोस्ट में, हमने एयरफ्लो संस्करण 2.8 में पेश की गई कुछ महत्वपूर्ण विशेषताओं पर चर्चा की, जैसे ऑब्जेक्ट स्टोरेज, ग्रिड व्यू में जोड़ा गया नया एक्सकॉम टैब, कार्य संदर्भ लॉगिंग, डेटासेट के लिए श्रोता हुक, और आप उनका उपयोग कैसे शुरू कर सकते हैं। हमने Amazon MWAA में कार्यान्वयन दिखाने के लिए कुछ नमूना कोड भी प्रदान किया है। परिवर्तनों की पूरी सूची के लिए, देखें एयरफ़्लो के रिलीज़ नोट्स.

Amazon MWAA पर अतिरिक्त विवरण और कोड उदाहरणों के लिए, पर जाएँ अमेज़न MWAA उपयोगकर्ता गाइड और Amazon MWAA उदाहरण GitHub रेपो.

अपाचे, अपाचे एयरफ्लो और एयरफ्लो या तो पंजीकृत ट्रेडमार्क या ट्रेडमार्क हैं अपाचे सॉफ्टवेयर फाउंडेशन संयुक्त राज्य अमेरिका और/या अन्य देशों में।


लेखक के बारे में

मानसी भूतड़ा नीदरलैंड में स्थित एक आईएसवी सॉल्यूशंस आर्किटेक्ट है। वह ग्राहकों को AWS में अच्छी तरह से डिज़ाइन किए गए समाधानों को डिज़ाइन करने और लागू करने में मदद करती है जो उनकी व्यावसायिक समस्याओं का समाधान करते हैं। उन्हें डेटा एनालिटिक्स और नेटवर्किंग का शौक है। काम के अलावा, उसे भोजन के साथ प्रयोग करना, पिकलबॉल खेलना और मज़ेदार बोर्ड गेम खेलना पसंद है।

हर्नान गार्सिया नीदरलैंड स्थित AWS में एक वरिष्ठ समाधान वास्तुकार हैं। वह वित्तीय सेवा उद्योग में काम करता है, उद्यमों को उनके क्लाउड अपनाने में सहायता करता है। उन्हें सर्वर रहित प्रौद्योगिकियों, सुरक्षा और अनुपालन का शौक है। उन्हें परिवार और दोस्तों के साथ समय बिताना और विभिन्न व्यंजनों के नए व्यंजन आज़माना पसंद है।

स्पॉट_आईएमजी

नवीनतम खुफिया

स्पॉट_आईएमजी