רכיבי Dataflow

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

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

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

DataflowFlexTemplateJobOp

האופרטור DataflowFlexTemplateJobOp מאפשר ליצור רכיב של Gemini Enterprise Agent Platform Pipelines כדי להפעיל תבנית Flex של Dataflow.

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

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

DataflowPythonJobOp

האופרטור DataflowPythonJobOp מאפשר ליצור רכיב של Gemini Enterprise Agent Platform 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.

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

WaitGcpResourcesOp

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

אחרי ששולחים את משימת Dataflow באמצעות מריץ המשימות של Beam, הרכיב DataflowPythonJobOp מסתיים מיד ומחזיר פרמטר פלט של job_id בתור פרוטוקול gcp_resources שעבר סריאליזציה. אפשר להעביר את הפרמטר הזה לרכיב 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"]
    )

‫Gemini Enterprise Agent Platform Pipelines מבצע אופטימיזציה של WaitGcpResourcesOp כדי להריץ אותו בלי שרת (serverless) וללא עלות.

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

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

מאמרי העזרה של ה-API

מדריכים

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

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

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

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