שימוש בסוכן הנדסת נתונים כדי ליצור ולשנות צינורות עיבוד נתונים

במאמר הזה מוסבר איך להשתמש ב-Data Engineering Agent ב-BigQuery וב-Dataform כדי ליצור ולשנות צינורות נתונים.

הסוכן Data Engineering מאפשר לכם ליצור, לשנות ולנהל צינורות עיבוד נתונים כדי לטעון ולעבד נתונים ב-BigQuery. בעזרת הסוכן למהנדסי נתונים, אתם יכולים להשתמש בהנחיות בשפה טבעית כדי ליצור צינורות עיבוד נתונים ממקורות נתונים שונים, או להתאים צינורות עיבוד נתונים קיימים לצרכים שלכם בתחום הנדסת הנתונים.

הסוכן יוצר ומארגן קוד של צינור נתונים ישירות במאגרי Dataform. הסוכן פועל בסביבת העבודה של Dataform, ולכן צינורות Dataform זמינים לו באופן אוטומטי.

דוגמאות נוספות להנחיות שאפשר להשתמש בהן עם הסוכן Data Engineering Agent זמינות במאמר דוגמאות להנחיות.

אפשר גם להשתמש ב-Data Engineering Agent API, שמבוסס על פרוטוקול A2A, כדי ליצור אינטראקציה עם הסוכן.

מגבלות

הסוכן Data Engineering Agent מוגבל באופן הבא:

  • הסוכן Data Engineering Agent לא תומך בפקודות בשפה טבעית לסוגי הקבצים הבאים:
    • קובצי Notebook
    • תהליך הכנת נתונים
  • הסוכן Data Engineering Agent לא יכול להפעיל צינורות עיבוד נתונים. צריך לבדוק את צינורות הנתונים ולהפעיל או לתזמן אותם.
  • הסוכן Data Engineering Agent לא יכול לחפש קישורים או כתובות URL שסופקו בהוראות או בהנחיות ישירות.
  • כשמייבאים קבצים בקובץ הוראות לסוכן, תחביר הייבוא @ תומך רק בנתיבים שמתחילים ב-./, ב-/ או באות.
  • התכונה תצוגה מקדימה של נתונים נתמכת רק בטבלאות, בהצהרות או בשאילתות עם ההגדרה hasOutput של הדגל true.
  • השימוש ב-Data Engineering Agent כפוף למגבלות הכלליות של טכנולוגיית AI.
  • כשיוצרים צינורות על טבלאות חיצוניות של Apache Iceberg שמנוהלות על ידי קטלוג זמן הריצה של Lakehouse (לשעבר BigLake metastore), חלות כל המגבלות של קטלוג זמן הריצה של Lakehouse. חשוב לציין שהסוכן לא יכול ליצור מוטציות כתיבה (כמו INSERT,‏ UPDATE,‏ DELETE או MERGE) או הצהרות DDL (כמו CREATE TABLE או DROP TABLE) בטבלאות Iceberg. מידע נוסף זמין במאמר מושגים של נקודת קצה של קטלוג REST של Apache Iceberg.

לפני שמתחילים

לפני שמשתמשים ב-Data Engineering Agent, צריך לבצע את השלבים שבקטע הזה.

הפעלת Gemini ב-BigQuery

מוודאים ש-Gemini ב-BigQuery מופעל בפרויקטGoogle Cloud . מידע נוסף זמין במאמר בנושא הגדרת Gemini ב-BigQuery.

הפעלת ממשקי ה-API הנדרשים

console

מפעילים את ממשקי ה-API הבאים במסוף Google Cloud בפרויקט Google Cloudשבו משתמשים עם Conversational Analytics API.

הפעלת Gemini Data Analytics API

הפעלת Gemini for Google Cloud API

הפעלת BigQuery API

gcloud

כדי להפעיל את Gemini Data Analytics API, את Gemini for Google Cloud API ואת BigQuery API, משתמשים ב-Google Cloud CLI ומריצים את הפקודות הבאות של gcloud services enable:

gcloud services enable geminidataanalytics.googleapis.com --project=PROJECT_ID
gcloud services enable cloudaicompanion.googleapis.com --project=PROJECT_ID
gcloud services enable bigquery.googleapis.com --project=PROJECT_ID

מחליפים את PROJECT_ID במזהה הפרויקט ב- Google Cloud .

התפקידים הנדרשים

כדי לקבל את ההרשאה שדרושה לשימוש ב-Data Engineering Agent, צריך לבקש מהאדמין להקצות לכם בפרויקט את תפקידי ה-IAM הבאים:

להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

התפקיד המוגדר מראש הזה כולל את ההרשאה geminidataanalytics.locations.useDataEngineeringAgent, שנדרשת כדי להשתמש בסוכן Data Engineering.

יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים אחרים שמוגדרים מראש.

לפרטים על התפקידים הנדרשים לשאילתות בטבלאות Apache Iceberg, ראו התפקידים הנדרשים לתמיכה ב-Lakehouse Apache Iceberg.

דרישות מוקדמות לשילוב של Knowledge Catalog

כדי לקבל את ההרשאה שנדרשת לשילוב של Data Engineering Agent עם Knowledge Catalog, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM‏ Dataplex Catalog Editor (roles/dataplex.catalogEditor) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

התפקיד המוגדר מראש הזה כולל את ההרשאה geminidataanalytics.locations.useDataEngineeringAgent, שנדרשת כדי לשלב את Data Engineering Agent עם Knowledge Catalog.

יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים אחרים שמוגדרים מראש.

אם משתמשים בחשבון שירות בהתאמה אישית כדי להריץ צינורות, צריך להקצות את התפקיד Dataplex Catalog Editor ‏(roles/dataplex.catalogEditor) בפרויקט או בקבוצת הרשומות @bigquery. בנוסף, צריך להפעיל את Dataplex API.

הצפנת נתונים באמצעות מפתחות של Cloud Key Management Service

אתם יכולים להצפין נתונים ברמת מערך הנתונים או הפרויקט באמצעות מפתחות ברירת המחדל של Cloud Key Management Service שמנוהלים על ידי הלקוח ב-BigQuery. מידע נוסף זמין במאמרים בנושא הגדרת מפתח ברירת מחדל למערך נתונים והגדרת מפתח ברירת מחדל לפרויקט.

אתם יכולים להצפין את קוד צינור העברת הנתונים ברמת הפרויקט על ידי הגדרת מפתח ברירת מחדל של Dataform Cloud Key Management Service.

הגדרת היקפי אבטחה ב-VPC Service Controls

אם אתם משתמשים ב-VPC Service Controls, אתם צריכים להגדיר את גבולות הגזרה כדי להגן על Dataform, על BigQuery ועל Conversational Analytics API. מידע נוסף זמין במאמרים בנושא Dataform,‏ BigQuery ו-Conversational Analytics API.

יצירת צינור נתונים באמצעות הסוכן Data Engineering

כדי להשתמש בסוכן הנדסת הנתונים ב-BigQuery, בוחרים באחת מהאפשרויות הבאות:

צינורות נתונים של BigQuery

כדי להשתמש בסוכן הנדסת הנתונים בממשק של צינורות הנתונים של BigQuery:

  1. עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. בעורך השאילתות, לוחצים על arrow_drop_down יצירת חדש > Pipeline.

  3. בוחרים אפשרות להרשאות הפעלה ולוחצים על שנתחיל?. הסוכן לא משתמש בפרטי הכניסה האלה, אבל הם נדרשים להפעלת צינור עיבוד הנתונים שנוצר.

  4. לוחצים על התנסות בממשק של הסוכן לצינור עיבוד נתונים.

  5. בשדה Ask agent (שאלת הסוכן), מזינים הנחיה בשפה טבעית כדי ליצור צינור לעיבוד נתונים. לדוגמה:

      Create dimension tables for a taxi trips star schema from
      new_york_taxi_trips.tlc_green_trips_2022. Generate surrogate keys and all
      the descriptive attributes.
    

    אחרי שמזינים הנחיה, לוחצים על שליחה.

  6. סוכן הנדסת הנתונים יוצר צינור נתונים על סמך ההנחיה שלכם.

הסוכן להנדסת נתונים יוצר טיוטה מוצעת של צינור נתונים. אפשר ללחוץ על צומת של צינור כדי לבדוק את שאילתת ה-SQLX שנוצרה. כדי להחיל את צינור הנתונים שהסוכן הציע, לוחצים על החלה.

צינור נתונים עם לחצן 'החלה' מודגש, שמציין שינויים שהוצעו על ידי סוכן הנדסת הנתונים.

Dataform

כדי להשתמש בסוכן הנדסת הנתונים ב-Dataform:

  1. עוברים אל Dataform.

    מעבר אל Dataform

  2. בוחרים מאגר.

  3. בוחרים סביבת עבודה לפיתוח או יוצרים סביבת עבודה חדשה.

  4. בסביבת העבודה, לוחצים על יש לך שאלה לסוכן?.

  5. בפרומפט Ask agent שמופיע, מזינים פרומפט בשפה טבעית כדי ליצור צינור נתונים – לדוגמה:

      Create dimension tables for a taxi trips star schema from
      new_york_taxi_trips.tlc_green_trips_2022. Generate surrogate keys and all
      the descriptive attributes.
    

    אחרי שמזינים הנחיה, לוחצים על שליחה.

אחרי ששולחים את ההנחיה, סוכן הנדסת הנתונים יוצר צינור נתונים ומשנה קובצי SQLX של Dataform על סמך ההנחיה. הסוכן מחיל את השינויים האלה ישירות על הקבצים בסביבת העבודה.

עריכה של צינור נתונים

כדי לערוך את צינור הנתונים, לוחצים על Ask agent (שליחת שאלה לסוכן) ומזינים הנחיה שמציעה שינוי בצינור הנתונים.

ממשק של צינור נתונים עם הכפתור 'שליחת בקשה לסוכן' מודגש.

בודקים את השינויים שהוצעו על ידי סוכן הנדסת הנתונים ולוחצים על החלת השינויים כדי להחיל אותם.

אפשר גם לערוך שאילתת SQLX באופן ידני. לשם כך, בוחרים בצומת של צינור הנתונים ואז לוחצים על פתיחה.

בדיקת צינור נתונים

כדי לבדוק צומת בצינור נתונים שנוצר על ידי Data Engineering Agent, אפשר ללחוץ עליו.

  • בכרטיסייה Configuration מוצגת שאילתת ה-SQLX שנוצרה ומשויכת לצומת.
  • בכרטיסייה תצוגה מקדימה של הנתונים מוצגות טבלאות הקלט והפלט של הקובץ. כדי לראות תצוגה מקדימה של שינוי הנתונים דרך הצומת הזה, לוחצים על Run task כדי להריץ את המשימה עם או בלי תלות.

פתרון בעיות בצינורות נתונים

אם נתקלים בשגיאות במהלך יצירת צינור הנתונים, צריך לוודא שכל הדרישות המוקדמות להפעלת הסוכן Data Engineering Agent הושלמו. מידע נוסף מופיע במאמר לפני שמתחילים.

הרצת חקירה באמצעות Gemini Cloud Assist

כדי לפתור בעיות נוספות בצינור עיבוד הנתונים, אפשר להשתמש ב-Data Engineering Agent כדי להריץ ניתוח של שורש הבעיה ולקבל המלצות לפתרון בעיות.

התכונה הזו משתמשת בחקירות של Gemini Cloud Assist ‏(Preview) והיא זמינה רק למשתמשים עם חוזה תמיכה Premium. מידע נוסף על הפעלת Gemini Cloud Assist investigations זמין במאמר פתרון בעיות ב-Gemini Cloud Assist investigations.

כדי לפתור בעיות בצינור עיבוד הנתונים, אפשר להיעזר ב-Data Engineering Agent. לשם כך, פועלים לפי השלבים הבאים:

  1. בצינור או בסביבת הפיתוח, לוחצים על הכרטיסייה Executions (הרצות).
  2. ברשימת ההרצות, מחפשים את ההרצה של הפייפליין שנכשלה. אפשר לזהות ריצות שנכשלו בעמודה סטטוס.

    רשימה של הפעלות צינור, עם הפעלה שנכשלה שמודגשת בעמודה 'סטטוס'.

  3. מעבירים את העכבר מעל הסמל ולוחצים על חקירה. הסוכן Data Engineering מריץ ניתוח של שורש הבעיה (RCA) בהפעלת צינור עיבוד הנתונים כדי לזהות שגיאות.

    ממשק צינור הנתונים שבו מוצג סמל של 'בדיקה' של הפעלה שנכשלה, עם הנחיה לסוכן הנדסת הנתונים לאבחן שגיאות.

  4. אחרי שהניתוח מסתיים, סוכן הנדסת הנתונים יוצר דוח בקטע תצפיות והשערות. הדוח כולל את המידע הבא:

    • תצפיות ונקודות נתונים שחולצו מיומני ההפעלה של צינור הנתונים.
    • הסיבות האפשריות לבעיה.
    • קבוצה של פעולות או המלצות לפתרון הבעיה שזוהתה.

בעזרת דוח פתרון הבעיות של סוכן הנדסת הנתונים, אפשר ליישם את ההמלצות באופן ידני. אפשר גם להנחות את Data Engineering Agent (הסוכן להנדסת נתונים) להחיל את התיקון בשבילכם. לשם כך, מבצעים את השלבים הבאים:

  1. מעתיקים את ההצעות בדוח לפתרון בעיות.
  2. חזרה לסוכן הנדסת הנתונים:
    1. אם אתם משתמשים בצינורות נתונים של BigQuery, עוברים לדף של צינורות הנתונים ולוחצים על Ask agent (שאלת סוכן).
    2. אם אתם משתמשים ב-Dataform, לוחצים על Ask agent (שאלת נציג).
  3. מדביקים את ההצעות בפרומפט, ואז נותנים לסוכן הנדסת הנתונים הוראה לבצע את התיקונים ישירות בצינור הנתונים.
  4. לוחצים על שליחה.

יצירת פרומפט בסיס לסוכן

הנחיות לסוכן הן הוראות בשפה טבעית לסוכן הנדסת הנתונים, שמאפשרות לכם לאחסן הוראות קבועות כדי שהסוכן יפעל לפי קבוצה של כללים מותאמים אישית ומוגדרים מראש. כדאי להשתמש בהוראות לנציג אם רוצים שהתוצאות של הנציג יהיו עקביות בכל הארגון – למשל, אם רוצים להשתמש במוסכמות שמות או לאכוף מדריך סגנון.

אפשר ליצור קובץ הקשר GEMINI.MD כקובץ הוראות לסוכן הנדסת הנתונים. אתם יכולים ליצור קובצי הוראות לסוכנים לשימוש בסביבת העבודה המקומית, או להשתמש באותם קובצי הוראות בכמה צינורות נתונים עם מאגר חיצוני.

כדי ליצור הנחיות לסוכן:

  1. בקטע שליחת שאלה לסוכן, לוחצים על הוראות לצינור.
  2. בחלונית Instructions for pipeline, לוחצים על Create instructions file.
  3. בקובץ GEMINI.MD שמופיע, מזינים את ההוראות בשפה טבעית.

    בדוגמה הבאה מוצג קובץ הוראות לסוכן עם כמה כללים:

      1. All event-specific tables MUST be prefixed with `cs_event_`.
      2. The primary key for any player activity table is a composite key of `player_id` and `event_timestamp_micros`.
      3. Filter out any player actions where `mana_spent` is greater than `max_mana_pool`. This is considered a data anomaly.
    
  4. לוחצים על Save.

מידע על הדרך הטובה ביותר לבנות את קובצי ההוראות של הסוכן זמין במאמר שיטות מומלצות לעבודה עם קובצי הוראות לסוכן.

טעינת פרומפט הבסיס לסוכן ממאגר חיצוני

כדי להשתמש מחדש בסדרת הוראות לסוכנים בכמה צינורות נתונים, צריך לקשר מאגר חיצוני:

  1. בקטע שליחת שאלה לסוכן, לוחצים על הוראות לצינור.
  2. בקטע External repository (מאגר חיצוני), בוחרים באפשרות Use instructions from external repository (שימוש בהוראות ממאגר חיצוני).
  3. בשדות שמוצגים, מציינים מאגר שמכיל הוראות לנציג שרוצים להשתמש בהן בצינור הנתונים.
  4. לוחצים על Save.

פרומפטים לדוגמה

בקטעים הבאים מופיעות דוגמאות להנחיות שאפשר להשתמש בהן עם סוכן הנדסת הנתונים כדי לפתח את צינור הנתונים.

צבירה של נתונים קיימים בטבלה חדשה

בעזרת ההנחיה הזו, סוכן הנדסת הנתונים משתמש בסכימה ובדוגמאות כדי להסיק את קיבוץ הנתונים לפי מפתח. בדרך כלל הסוכן מגדיר טבלה חדשה עם תיאורים של הטבלה והעמודות.

  Create a daily sales report from the
  bigquery-public-data.thelook_ecommerce.order_items table into a
  reporting.daily_sales_aggregation table.

יצירת עמודה נגזרת חדשה והוספת בדיקות של איכות הנתונים לטבלה החדשה

בדוגמה הזו מוצג איך להוסיף טבלה ועמודה, ולציין בדיקות איכות לטבלה בו-זמנית:

  Create a new table named staging.products from
  bigquery-public-data.thelook_ecommerce.products and add a calculated column
  named gross_profit, which is the retail_price minus the cost.


  Also, add the following assertions: ID must not be null and must be unique.
  The retail_price must be greater than or equal to the cost. The department
  column can only contain 'Men' or 'Women'.

יצירת פונקציות UDF כחלק מהגדרת המודל

הסוכן Data Engineering יכול גם להגדיר את ה-DDL כדי ליצור פונקציות מוגדרות על ידי המשתמש (UDF). הסוכן לא ייצור את הפונקציה UDF בפועל, אבל תוכלו ליצור אותה על ידי הפעלת צינור הנתונים. אפשר להשתמש בפונקציות UDF האלה בהגדרות של מודלים בצינור עיבוד הנתונים.

  Create a user-defined function (UDF) named get_age_group that takes an integer
  age as input and returns a string representing the age group ('Gen Z',
  'Millennial', 'Gen X', 'Baby Boomer').


  Use this UDF on the age column from the
  bigquery-public-data.thelook_ecommerce.users table to create a new view called
  reporting.user_age_demographics that includes user_id, age, and the calculated
  age_group.

שיטות מומלצות

כדי לשפר את התוצאות כשעובדים עם Data Engineering Agent ו-Dataform, מומלץ לבצע את הפעולות הבאות:

שימוש בהוראות לסוכן לבקשות נפוצות. אם אתם בדרך כלל משתמשים בטכניקות מסוימות, או אם אתם מבצעים לעיתים קרובות את אותם תיקונים לסוכן, כדאי להשתמש בהוראות לסוכן כמקום מרכזי לאחסון הוראות ובקשות נפוצות.

שימוש בתוכניות של סוכנים. תוכניות של סוכנים יכולות לעזור לפרק משימות מורכבות של צינורות. בתוכניות של סוכנים אפשר גם לראות את ההנחות והכוונות של הסוכן, לכן מומלץ לבדוק את התוכניות האלה כדי לוודא שהסוכן מקבל את ההקשר הנכון.

אחרי שבודקים תוכנית, אפשר לערוך אותה באמצעות הנחיות לסוכן הנדסת הנתונים עם משוב ושינויים. לדוגמה:

In the plan, ensure that all of the intermediate tables are views.

במקרים מסוימים, כדאי לבקש מהנציג ליצור תוכנית שלא דורשת את האישור המפורש שלכם. הפעולה של יצירת תוכנית לסוכן מאלצת את סוכן הנדסת הנתונים לפרק את הפעולות שלו, ולרוב זה מוביל לתוצאות טובות יותר. אתם יכולים להורות לסוכן ליצור תוכנית ולבצע אותה באופן אוטומטי. לדוגמה:

Create a plan for a pipeline that finds the
top N pick up and drop off locations in NYC. You have my explicit pre-approval
to go ahead and execute this plan.

כתבו בצורה ברורה. חשוב לנסח את הבקשה בצורה ברורה ולא להשתמש בניסוחים מעורפלים. במידת האפשר, כשמתבקשים, מספקים מקורות נתונים של המקור ושל היעד, כמו בדוגמה הבאה:

  Extract data from the sales.customers table in the us_west_1 region, and load
  it into the reporting.dim_customers table in BigQuery. Match the schema of the
  destination table.

הקפידו לתת בקשות ישירות וממוקדות. תשאלו שאלה אחת בכל פעם, ותקפידו על הנחיות תמציתיות. אם ההנחיה כוללת יותר משאלה אחת, כדאי לפרט כל חלק נפרד של השאלה כדי לשפר את הבהירות, כמו בדוגמה הבאה:

  1. Create a new table named staging.events_cleaned. Use raw.events as the
     source. This new table should filter out any records where the user_agent
     matches the pattern '%bot%'. All original columns should be included.

  2. Next, create a table named analytics.user_sessions. Use
     staging.events_cleaned as the source. This table should calculate the
     duration for each session by grouping by session_id and finding the
     difference between the MAX(event_timestamp) and MIN(event_timestamp).

הקפידו לתת הוראות מפורשות ולהדגיש מונחים חשובים. אתם יכולים להדגיש מונחים או מושגים חשובים בהנחיות ולציין דרישות מסוימות כחשובות, כמו בדוגמה הבאה:

  When creating the staging.customers table, it is *VERY IMPORTANT* that you
  transform the email column from the source table bronze.raw_customers.
  Coalesce any NULL values in the email column to an empty string ''.

מציינים את סדר הפעולות. למשימות מסודרות, כדאי לבנות את ההנחיה ברשימות, שבהן הפריטים מחולקים לשלבים קטנים וממוקדים, כמו בדוגמה הבאה:

  Create a pipeline with the following steps:
  1. Extract data from the ecomm.orders table.
  2. Join the extracted data with the marts.customers table on customer_id.
  3. Load the final result into the reporting.customer_orders table.

משפרים ומבצעים איטרציות. כדאי לנסות גישות וניסוחים שונים כדי לראות מה מניב את התוצאות הכי טובות. אם הסוכן יוצר SQL לא תקין או שגיאות אחרות, אפשר להנחות אותו באמצעות דוגמאות או תיעוד ציבורי.

  The previous query was incorrect because it removed the timestamp. Please
  correct the SQL. Use the TIMESTAMP_TRUNC function to truncate the
  event_timestamp to the nearest hour, instead of casting it as a DATE. For
  example: TIMESTAMP_TRUNC(event_timestamp, HOUR).