רכיבי Dataflow

רכיבי Dataflow מאפשרים לשלוח משימות של Apache Beam ל-Dataflow לצורך ביצוע. ב-Dataflow, משאב Job מייצג משימת Dataflow.

‫ Google Cloud SDK כולל את האופרטורים הבאים ליצירת משאבי Job ולמעקב אחר ההפעלה שלהם:

בנוסף, ה-SDK‏ Google Cloud כולל את הרכיב WaitGcpResourcesOp, שבו אפשר להשתמש כדי לצמצם את העלויות בזמן הפעלת משימות Dataflow.

DataflowFlexTemplateJobOp

האופרטור DataflowFlexTemplateJobOp מאפשר ליצור רכיב של Vertex AI Pipelines כדי להפעיל Dataflow Flex Template.

ב-Dataflow, משאב LaunchFlexTemplateParameter מייצג תבנית Flex להפעלה. הרכיב הזה יוצר משאב LaunchFlexTemplateParameter ואז שולח בקשה ל-Dataflow ליצור משימה על ידי הפעלת התבנית. אם התבנית מופעלת בהצלחה, Dataflow מחזיר משאב Job.

רכיב Dataflow Flex Template מסתיים את הפעולה שלו כשמתקבל Job resource מ-Dataflow. הפלט של הרכיב הוא job_id בתור proto gcp_resources מסוג serialized. אפשר להעביר את הפרמטר הזה לרכיב WaitGcpResourcesOp כדי להמתין עד שמשימת Dataflow תושלם.

DataflowPythonJobOp

האופרטור DataflowPythonJobOp מאפשר ליצור רכיב של Vertex AI Pipelines שמכין נתונים על ידי שליחת משימת Apache Beam מבוססת-Python ל-Dataflow לביצוע.

קוד ה-Python של משימת Apache Beam מורץ באמצעות Dataflow Runner. כשמריצים את צינור הנתונים באמצעות שירות Dataflow, הרץ מעלה את הקוד הניתן להפעלה למיקום שצוין בפרמטר python_module_path ואת התלות לקטגוריה של Cloud Storage (שצוינה בפרמטר temp_location), ואז יוצר משימת Dataflow שמבצעת את צינור הנתונים של Apache Beam במשאבים מנוהלים ב- Google Cloud.

מידע נוסף על Dataflow Runner זמין במאמר בנושא שימוש ב-Dataflow Runner.

רכיב Python של Dataflow מקבל רשימה של ארגומנטים שמועברים באמצעות Beam Runner לקוד Apache Beam. הארגומנטים האלה מוגדרים על ידי args. לדוגמה, אפשר להשתמש בארגומנטים האלה כדי להגדיר את apache_beam.options.pipeline_options ולציין רשת, תת-רשת, מפתח הצפנה בניהול הלקוח (CMEK) ואפשרויות אחרות כשמריצים משימות Dataflow.

WaitGcpResourcesOp

לעתים קרובות, השלמת העבודות ב-Dataflow נמשכת זמן רב. העלויות של קונטיינר busy-wait (הקונטיינר שמפעיל את עבודת Dataflow וממתין לתוצאה) יכולות להיות גבוהות.

אחרי ששולחים את עבודת Dataflow באמצעות Beam runner, רכיב DataflowPythonJobOp מסתיים מיד ומחזיר פרמטר פלט job_id כ-serialized gcp_resources proto. אפשר להעביר את הפרמטר הזה לרכיב WaitGcpResourcesOp כדי להמתין לסיום של משימת Dataflow.

    dataflow_python_op = DataflowPythonJobOp(
        project=project_id,
        location=location,
        python_module_path=python_file_path,
        temp_location = staging_dir,
        requirements_file_path = requirements_file_path,
        args = ['--output', OUTPUT_FILE],
    )
  
    dataflow_wait_op =  WaitGcpResourcesOp(
        gcp_resources = dataflow_python_op.outputs["gcp_resources"]
    )

‫Vertex AI Pipelines מבצע אופטימיזציה של WaitGcpResourcesOp כדי להפעיל אותו בצורה חסרת שרתים, ללא עלות.

אם הרכיבים DataflowPythonJobOp ו-DataflowFlexTemplateJobOp לא עונים על הדרישות שלכם, אתם יכולים גם ליצור רכיב משלכם שמפיק את הפרמטר gcp_resources ומעביר אותו לרכיב WaitGcpResourcesOp.

מידע נוסף על יצירת פרמטר פלט gcp_resources זמין במאמר כתיבת רכיב להצגת קישור למסוף Google Cloud .

הפניית API

מדריכים

היסטוריית גרסאות ונתוני גרסה

מידע נוסף על היסטוריית הגרסאות והשינויים ב- Google Cloud Pipeline Components SDK זמין בהערות לגבי הגרסה של Pipeline Components SDK.Google Cloud

אנשי קשר לתמיכה טכנית

אם יש לכם שאלות, אפשר לפנות אל kubeflow-pipelines-components@google.com.