שימוש בסוכן הנדסת נתונים כדי ליצור ולשנות צינורות עיבוד נתונים
במאמר הזה מוסבר איך להשתמש ב-Data Engineering Agent ב-BigQuery וב-Dataform כדי ליצור ולשנות צינורות נתונים.
הסוכן Data Engineering מאפשר לכם ליצור, לשנות ולנהל צינורות עיבוד נתונים כדי לטעון ולעבד נתונים ב-BigQuery. בעזרת סוכן הנדסת הנתונים, אתם יכולים להשתמש בהנחיות בשפה טבעית כדי ליצור צינורות עיבוד נתונים ממקורות נתונים שונים, או להתאים צינורות עיבוד נתונים קיימים לצרכים שלכם בהנדסת נתונים.
הסוכן יוצר ומארגן קוד של צינור נתונים ישירות במאגרי Dataform. הסוכן פועל בסביבת העבודה של Dataform, ולכן צינורות Dataform זמינים לו באופן אוטומטי.
דוגמאות נוספות להנחיות שאפשר להשתמש בהן עם הסוכן Data Engineering Agent זמינות במאמר דוגמאות להנחיות.
אפשר גם להשתמש ב-Data Engineering Agent API, שמבוסס על פרוטוקול A2A, כדי ליצור אינטראקציה עם הסוכן.
מגבלות
אלו המגבלות של סוכן הנדסת הנתונים:
- הסוכן 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. מידע נוסף זמין במאמר מושגים בנושא נקודת קצה של קטלוג Apache Iceberg REST.
לפני שמתחילים
לפני שמשתמשים ב-Data Engineering Agent, צריך לבצע את השלבים שבקטע הזה.
הפעלת Gemini ב-BigQuery
צריך לוודא ש-Gemini ב-BigQuery מופעל בפרויקטCloud de Confiance by S3NS . מידע נוסף זמין במאמר בנושא הגדרת Gemini ב-BigQuery.
הפעלת ממשקי ה-API הנדרשים
console
מפעילים את ממשקי ה-API הבאים במסוף Cloud de Confiance בפרויקט Cloud de Confiance by S3NSשבו משתמשים עם Conversational Analytics API.
הפעלת Gemini Data Analytics API
gcloud
כדי להפעיל את Gemini Data Analytics API, את Gemini for Cloud de Confiance by S3NS
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 במזהה הפרויקט ב- Cloud de Confiance by S3NS .
התפקידים הנדרשים
כדי לקבל את ההרשאה שדרושה לשימוש ב-Data Engineering Agent, צריך לבקש מהאדמין להקצות לכם בפרויקט את תפקידי ה-IAM הבאים:
- עורך הקוד של Dataform (
roles/dataform.codeEditor) - BigQuery Job User (
roles/bigquery.jobUser) - משתמש בשיחה עם Gemini Data Analytics ללא שמירת מצב (
roles/geminidataanalytics.dataAgentStatelessUser)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד המוגדר מראש הזה כולל את ההרשאה geminidataanalytics.locations.useDataEngineeringAgent, שנדרשת כדי להשתמש בסוכן Data Engineering.
יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים אחרים שמוגדרים מראש.
לפרטים על התפקידים הנדרשים לשאילתות בטבלאות Apache Iceberg, ראו התפקידים הנדרשים לתמיכה ב-Lakehouse Apache Iceberg.
דרישות מוקדמות לשילוב עם Knowledge Catalog
כדי לקבל את ההרשאה שנדרשת לשילוב של סוכן הנדסת הנתונים עם קטלוג הידע, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM Dataplex Catalog Editor (roles/dataplex.catalogEditor) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד המוגדר מראש הזה כולל את ההרשאה geminidataanalytics.locations.useDataEngineeringAgent, שנדרשת כדי לשלב את Data Engineering Agent עם Knowledge Catalog.
יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים אחרים שמוגדרים מראש.
צריך גם להפעיל את Knowledge Catalog 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
כדי להשתמש ב-Data Engineering Agent בממשק של צינורות BigQuery:
עוברים לדף BigQuery.
בעורך השאילתות, לוחצים על arrow_drop_down יצירת חדש > Pipeline.
בוחרים אפשרות להרשאות הפעלה ולוחצים על שנתחיל?. הסוכן לא משתמש בפרטי הכניסה האלה, אבל הם נדרשים להפעלת צינור עיבוד הנתונים שנוצר.
לוחצים על התנסות בממשק של הסוכן לצינור עיבוד נתונים.
בשדה 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
כדי להשתמש בסוכן הנדסת הנתונים ב-Dataform:
עוברים אל Dataform.
בוחרים מאגר.
בוחרים סביבת עבודה לפיתוח או יוצרים סביבת עבודה חדשה.
בסביבת העבודה, לוחצים על יש לך שאלה לסוכן?.
בהנחיה 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. לשם כך, פועלים לפי השלבים הבאים:
- בצינור או בסביבת הפיתוח, לוחצים על הכרטיסייה Executions (הרצות).
ברשימת ההרצות, מחפשים את ההרצה של הפייפליין שנכשלה. אפשר לזהות ריצות שנכשלו בעמודה סטטוס.
מעבירים את העכבר מעל הסמל ולוחצים על חקירה. הסוכן Data Engineering מריץ ניתוח של שורש הבעיה (RCA) בהפעלת צינור עיבוד הנתונים כדי לזהות שגיאות.
אחרי שהניתוח מסתיים, סוכן הנדסת הנתונים יוצר דוח בקטע Observations and Hypothesis (תצפיות והיפותזה). הדוח כולל את המידע הבא:
- תצפיות ונקודות נתונים שחולצו מיומני ההפעלה של צינור הנתונים.
- הסיבות האפשריות לכישלון.
- קבוצה של צעדים או המלצות לפתרון הבעיה שזוהתה.
בעזרת דוח פתרון הבעיות של סוכן הנדסת הנתונים, אפשר ליישם את ההמלצות באופן ידני. אפשר גם להנחות את Data Engineering Agent (הסוכן להנדסת נתונים) להחיל את התיקון בשבילכם. לשם כך, מבצעים את השלבים הבאים:
- מעתיקים את ההצעות בדוח לפתרון בעיות.
- חזרה לסוכן הנדסת הנתונים:
- אם אתם משתמשים בצינורות נתונים של BigQuery, עוברים לדף של צינורות הנתונים ולוחצים על Ask agent (שאלת סוכן).
- אם אתם משתמשים ב-Dataform, לוחצים על Ask agent (פנייה לנציג).
- מדביקים את ההצעות בהנחיה, ואז מנחים את הסוכן Data Engineering לבצע את התיקונים ישירות בצינור הנתונים.
- לוחצים על שליחה.
יצירת הוראות שימוש בסוכן
הנחיות לסוכן הן הוראות בשפה טבעית לסוכן הנדסת הנתונים, שמאפשרות לכם לשמור הוראות קבועות כך שהסוכן יפעל לפי קבוצה של כללים מוגדרים מראש ומותאמים אישית. אם רוצים שהתוצאות של הסוכן יהיו עקביות בכל הארגון, למשל לגבי מוסכמות שמות או כדי לאכוף מדריך סגנון, אפשר להשתמש בהוראות לסוכן.
אתם יכולים ליצור קובץ הקשר GEMINI.MD כקובץ הוראות לסוכן של Data Engineering. אתם יכולים ליצור קובצי הוראות לסוכן לשימוש בסביבת העבודה המקומית, או להשתמש באותם קובצי הוראות בכמה צינורות נתונים באמצעות מאגר חיצוני.
כדי ליצור הנחיות לסוכן:
- בקטע שליחת שאלה לסוכן, לוחצים על הוראות לצינור.
- בחלונית Instructions for pipeline, לוחצים על Create instructions file.
בקובץ
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.לוחצים על Save.
מידע על הדרך הטובה ביותר לבנות את קובצי ההוראות של הסוכן זמין במאמר שיטות מומלצות לעבודה עם קובצי הוראות לסוכן.
טעינת הוראות לסוכן ממאגר חיצוני
כדי להשתמש מחדש בסדרת הוראות לסוכן בכמה צינורות נתונים, מקשרים מאגר חיצוני:
- בקטע שליחת שאלה לסוכן, לוחצים על הוראות לצינור.
- בקטע External repository (מאגר חיצוני), בוחרים באפשרות Use instructions from external repository (שימוש בהוראות ממאגר חיצוני).
- בשדות שמוצגים, מציינים מאגר שמכיל הוראות לנציג שרוצים להשתמש בהן בצינור הנתונים.
- לוחצים על Save.
הנחיות לדוגמה
בקטעים הבאים מופיעות דוגמאות להנחיות שאפשר להשתמש בהן עם סוכן הנדסת הנתונים כדי לפתח את צינור הנתונים.
צבירה של נתונים קיימים בטבלה חדשה
בעזרת ההנחיה הזו, סוכן ה-AI להנדסת נתונים משתמש בסכימה ובדוגמאות כדי להסיק את קיבוץ הנתונים לפי מפתח. בדרך כלל, הסוכן מגדיר טבלה חדשה עם תיאורים של הטבלה והעמודות.
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).