סקירה כללית על סוכן ה-AI להנדסת נתונים

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

  • שילוב עם Dataform: הנציג יוצר ומארגן קוד של צינור עיבוד נתונים ישירות במאגרים ובסביבות העבודה של Dataform.
  • יצירת תוכנית: הנציג יכול לסכם את תהליך החשיבה שלו וליצור תוכנית שמאפשרת לכם לבדוק ולאמת את התוכנית של הנציג לפני שתמשיכו.
  • אימות קוד: הנציג מאמת ומתקן באופן אוטומטי שגיאות קומפילציה של כל קוד שנוצר, כדי לוודא שפייפליין הנתונים פועל.
  • Data wrangling אוטומטי: הסוכן מבצע data wrangling וממיר נתונים גולמיים לטבלאות מובנות בלי התערבות ידנית.
  • הוראות בהתאמה אישית: הסוכן תומך בהוראות בהתאמה אישית שמאפשרות לכם להגדיר כללים ספציפיים והנחיות לשימוש חוזר בשפה טבעית.
  • הקשר חיצוני: הסוכן משולב עם Knowledge Catalog כדי לספק הקשר נוסף.
  • שליטה בתהליך: אתם יכולים לבדוק ולשנות את התוכניות שהסוכן יוצר לפני שהוא מבצע פעולות.
  • אופטימיזציה: הסוכן יכול לבצע אופטימיזציה של הביצועים בפייפליין הנתונים.
  • פתרון בעיות ותיקון: הסוכן יכול לפתור בעיות בכשלים בצינור עיבוד הנתונים ולתקן את הקוד שלו.
  • המלצות אינטראקטיביות: הנציג מספק המלצות אינטראקטיביות בהתאם להקשר בתחילת הסשן ובמהלכו.
  • העשרת המטא-נתונים של Knowledge Catalog: הסוכן יכול ליצור באופן אוטומטי מטא-נתונים של Knowledge Catalog מהגדרות הטבלה, ולשלוח את המטא-נתונים ל-Knowledge Catalog במהלך הפעלת צינור עיבוד הנתונים.

איפה אפשר להשתמש בסוכן להנדסת נתונים

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

איך הסוכן להנדסת נתונים משתמש בנתונים שלכם

כדי ליצור תשובות איכותיות יותר, הסוכן להנדסת נתונים יכול לאחזר נתונים ומטא-נתונים נוספים מ-BigQuery ומ-Knowledge Catalog, כולל שורות לדוגמה מטבלאות BigQuery ופרופילים של סריקת נתונים שנוצרו ב-Knowledge Catalog. הסוכן לא משתמש בנתונים האלה לאימון, אלא רק כהקשר נוסף במהלך השיחות כדי לשפר את התשובות שלו.

איפה הסוכן להנדסת נתונים מעבד את הנתונים שלכם

למידע נוסף על המיקומים שבהם הסוכן להנדסת נתונים מעבד את הנתונים שלכם, קראו את המאמר איפה Gemini ב-BigQuery מעבד את הנתונים שלכם.

מגבלות

לסוכן Data Engineering יש את המגבלות הבאות:

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

תכונות והתאמות אישיות של הסוכן

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

הוראות שימוש בסוכן

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

כדי ליצור הוראות לסוכן Data Engineering, יוצרים קובץ הקשר של GEMINI.MD כקובץ הוראות לסוכן.

שיטות מומלצות לשימוש בקובצי הוראות לסוכנים

כשמשתמשים בהוראות לסוכן, מומלץ:

  • כל נתיבי הקבצים ב-Dataform הם יחסיים לשורש של המאגר. כדי לייבא הוראות ל-GEMINI.md כמו שצריך, השתמשו בנתיבים יחסיים לכל תחביר של @file.md.
  • קבצים שיובאו ב-GEMINI.md יכולים להכיל בעצמם ייבואים, שיכולים ליצור מבנה בתצוגת עץ. כדי למנוע רקורסיה אינסופית, עומק הייבוא המקסימלי של GEMINI.md הוא חמש רמות.
  • כדי לשתף הוראות בין פייפליינים, מאחסנים את ההוראות במאגר מרכזי של Dataform ומקשרים אותן למאגר הפעיל של Dataform. אתם יכולים להשתמש בהוראות מקומיות כדי לשנות את הכללים המרכזיים להתנהגות ספציפית לצינור עיבוד נתונים.
  • כדי לשמור על עקביות בפרויקט, אתם יכולים לקשר לקובצי מוסכמות למתן שמות או למדריכי סגנון, ולהורות לסוכן לפעול לפי ההנחיות האלה כשעובדים עם Data pipelines.
  • אתם יכולים להציע שכבות נתונים בקובץ ההוראות כדי לקבץ סוגים שונים של נתונים.
  • כדי לארגן ולהבהיר את ההוראות לסוכן הנדסת הנתונים, כדאי להשתמש בכותרות וברשימות בקובץ ההוראות לסוכן.
  • תנו לקבצים שמות משמעותיים וקבצו הוראות דומות יחד בקובץ. כדאי לארגן את הכללים בצורה הגיונית לפי קטגוריה, תכונה או פונקציונליות באמצעות כותרות Markdown.
  • כדי למנוע הוראות סותרות, הגדירו בבירור את התנאים הספציפיים שבהם כל הוראה חלה.
  • חזרו על ההנחיות ותהליך העבודה ושפרו אותם. ההתנהגות של הנציג משתנה עם הזמן, ככל שמתקדמים בהשקה של הנציג ומשדרגים את המודל. לכן מומלץ לחזור על הכללים עם הנחיות שונות כדי לזהות תחומים שצריך לשפר. חשוב לוודא שקובץ הכללים מסונכרן עם כל שינוי שמתבצע בפייפליין.

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

  ### Naming Conventions

  * Datasets: [business_domain]_[use_case] (e.g., ecommerce_sales)

  * Tables:
      - Raw/External: raw_[source_name]
      - Staging: stg_[business_entity]
      - Dimension: dim_[dimension_name]
      - Fact: fct_[fact_name]

  * Dataform folders:
      - sources
      - staging
      - marts
      - dataProducts

  * Views: vw_[view_name]

  * Columns: snake_case (e.g., order_id, customer_name)

  ## Cloud Storage data load
  * When ingesting data from Cloud Storage, create external tables.

  ## Null handling
  * Filter out null id values

  ## String normalization
  * Standardize string columns by converting to lower case

  ## Data cleaning guidelines
  @./generic_cleaning.md

ייבוא קבצים מקומיים נוספים כהוראות לסוכן

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

data wrangling אוטומטי

אתם יכולים להשתמש בסוכן להנדסת נתונים כדי להמיר נתונים גולמיים ולא מעובדים לטבלאות מובְנות שמתאימות לניתוח נתונים. כשמבקשים, הנציג דוגם קודם עד 1,000,000 רשומות מכל טבלה רגילה או חיצונית. לאחר מכן, הסוכן מבצע ניתוח מעמיק של הנתונים על ידי הרצת שאילתות פרופילים בדגימה הזו. אחרי יצירת טרנספורמציות של נתונים, הנציג חוזר על תהליך הדגימה והפרופיילינג כדי להעריך את איכות הטרנספורמציות. הטרנספורמציות האלה של data wrangling יכולות לכלול תיקון של חוסר עקביות בנתונים, חריגות או אי-התאמות בסוגים. הסוכן להנדסת נתונים יוצר תוכנית שמפרטת את השלבים המוצעים לעיבוד הנתונים, כדי שתוכלו לבדוק ולשפר אותה לפני שמתבצעת פעולה כלשהי.

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

דגימת נתונים ויצירת פרופילים משתמשות במשאבי BigQuery, וכפופות לתמחור של BigQuery.

סוכן הנדסת הנתונים תומך בטרנספורמציות הבאות של הכנת נתונים:

  • ניקוי נתונים. הנציג יכול לנתח נתונים גולמיים ולהציע הזדמנויות לניקוי, כמו הסרת חריגים, מילוי ערכים חסרים או לא עקביים (השלמת נתונים), תיקון נתונים כפולים או סטנדרטיזציה של פורמטים של נתונים – לדוגמה, מספרי טלפון או כתובות.
  • טרנספורמציות מבניות. כשמציינים סכימת יעד, הנציג יכול לבטל את ההטמעה או לחלץ ערכים מסוגי JSON,‏ ARRAY או STRUCT, למזג כמה עמודות לאחת או לפצל עמודה אחת לכמה עמודות.
  • זיהוי והמרה של סוגי נתונים. הסוכן יכול לנתח את הנתונים כדי לקבוע את סוגי השדות המתאימים. לאחר מכן, הנציג יכול לבצע המרת טיפוסים מאובטחת כדי לפתור חוסר עקביות בפורמט בשדות של התאריך, השעה, התאריך והשעה או חותמת הזמן.
  • המרת יחידות. הנציג יכול להמיר באופן אוטומטי יחידות שונות בתוך שדה ליחידה אחת עקבית כדי ליצור סטנדרטיזציה של הנתונים.

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

יצירה ובדיקה של תוכניות לסוכנים

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

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

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

Create a plan for a pipeline that finds the
top N pick up and drop off locations in NYC. I want to review the plan and
approve it before you create the pipeline.

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

שיטות מומלצות לשימוש בתוכניות של סוכנים

הוספת הקשר מ-Knowledge Catalog

הסוכן להנדסת נתונים משתמש ב-Knowledge Catalog על ידי צירוף מונחים ממילון המונחים לטבלאות ולעמודות ב-BigQuery, ויצירת סריקות של פרופיל נתונים. מונחים במילון יכולים לתייג עמודות שדורשות הקשר נוסף, כמו עמודות שמכילות פרטים אישיים מזהים (PII) שדורשים הוראות טיפול מיוחדות, או לזהות עמודות תואמות עם שמות שונים בטבלאות.

ב-Knowledge Catalog נעשה גם שימוש בפרופיילינג של נתונים, שמאפשר לסוכן להבין טוב יותר את התפלגות הנתונים בעמודות של הטבלה, וליצור טענות נכונות (assertions) ספציפיות יותר לגבי איכות הנתונים.

הנציג יכול גם להשתמש ב-Knowledge Catalog כדי לגלות טבלאות של Apache Iceberg ולשלוח אליהן שאילתות. מידע נוסף זמין במאמר יצירת צינורות עיבוד נתונים בטבלאות Apache Iceberg.

הוספת בדיקות של איכות הנתונים לטבלה קיימת

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

  Add data quality checks for bigquery-public-data.thelook_ecommerce.users.

במהלך הפעלת צינור עיבוד הנתונים, התוצאות של כל טענות הנכוֹנוּת (assertions) של Dataform מתפרסמות באופן אוטומטי ב-Knowledge Catalog. התוצאות האלה מאכלסות את כרטיס המידע של איכות הנתונים ב-Knowledge Catalog בסטטוס "עבר" או "נכשל". כל הרצה מחליפה את כרטיסי המידע הקיימים של איכות הנתונים שפורסמו בהרצות קודמות של Dataform, אבל לא משפיעה על כרטיסי המידע שנוצרו על ידי סריקות נתונים של Knowledge Catalog.

יצירת מיפוי סכימה

אתם יכולים לבקש מסוכן ה-AI להנדסת נתונים ליצור מיפוי סכימה בין סכימת מקור לסכימת יעד:

  Create a Dataform pipeline to map the tables from schema
  SOURCE_SCHEMA to schema TARGET_SCHEMA. Give me the plan.

מחליפים את מה שכתוב בשדות הבאים:

  • ‫SOURCE_SCHEMA: שם הסכימה של טבלאות המקור.
  • ‫TARGET_SCHEMA: השם של הסכימה של טבלאות היעד.

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

  • בחירת טבלת עוגן: קובעים את טבלת המקור הראשית לכל טבלת יעד.
  • אופטימיזציה של תרשים ה-JOIN: מיפוי נתיבי ה-JOIN כך שיתאימו ישירות להגדרות הקצוות של תרשים המאפיינים, כדי למנוע פיצוצים קרטזיים וחוסר התאמה בין סוגים.
  • ניתוח פערים ברמת השדה: סיווג של כל מיפוי לסוג מיפוי, Direct,‏ Derived,‏ Joined או Aggregated, ואז אימות של תקינות האילוצים NOT NULL ו-REQUIRED.

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

מיפוי סכימות באמצעות BigQuery Graph

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

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

שילוב של Google Drive

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

הסוכן תומך בסוגי הקבצים הבאים ב-Drive:

  • Apache Avro
  • CSV
  • Google Sheets
  • ‫JSONL (JSON מופרד בשורות חדשות)

העשרת נתונים אוטומטית

מטא-נתונים סטנדרטיים מ-BigQuery, כמו מערכי נתונים, טבלאות ותצוגות, זמינים באופן אוטומטי ב-Knowledge Catalog.

אתם יכולים גם להגדיר מטא-נתונים בהתאמה אישית לטבלאות ולתצוגות ישירות בבלוק config של קובצי .sqlx. אחרי שהפעולה מסתיימת בהצלחה, Dataform מפעיל באופן אוטומטי סנכרון של מטא-נתונים עם Knowledge Catalog. תהליך ההעשרה הזה מעדכן את Knowledge Catalog במטא-נתונים הסמנטיים שהוגדרו ב-SQLX.

משתמשים במפתח המטא-נתונים כדי לציין מידע ל-Knowledge Catalog. תהליך ההעשרה תומך במבני המטא-נתונים הבאים:

  • סקירה כללית: מסמכי תיעוד וטקסט סיכום של הרשומה. נדרשת גרסת Dataform core‏ 3.0.37 ואילך.
  • היבטים גנריים: פרטים סמנטיים כמו מערכת הטבלאות ומידע על הסוג. נדרשת גרסת ליבה של Dataform‏ 3.0.52 ואילך.

בדוגמה הבאה אפשר לראות איך מוסיפים סקירה כללית והיבטים גנריים של מטא-נתונים להגדרת טבלה ב-Knowledge Catalog:

config {
  type: "table",
  metadata: {
    overview: "This table provides standardized trip data.",
    extraProperties: {
        generic: {
              system: "BigQuery",
              type: "table"
        }
      }
  }
}

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

כדי לוודא שהמטא-נתונים סונכרנו, אתם יכולים לחפש את הנכס ב-Knowledge Catalog. למידע נוסף, ראו חיפוש משאבים.

אופטימיזציה של צינורות עיבוד נתונים

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

  • גיזום עמודות כדי לצמצם את הנתונים שנקראים מהאחסון, כגורם עיקרי לעלויות ולביצועים.
  • העברת פרדיקטים (predicate pushdown) כדי לסנן נתונים בשלב מוקדם בתוכנית הביצוע, וכך לצמצם משמעותית את נפח הנתונים שמעובדים בפעולות הבאות.
  • ביטול של ביטויי משנה נפוצים כדי לשפר את היעילות על ידי זיהוי וחישוב של לוגיקת טרנספורמציה משותפת פעם אחת בלבד, וכך למנוע שיטות לא יעילות כמו סריקה וצירוף של טבלאות גדולות כמה פעמים.
  • מודלים מצטברים לעיבוד של נתונים חדשים או נתונים שהשתנו מאז ההפעלה האחרונה, במקום לבנות מחדש טבלאות שלמות בכל הפעלה.

יצירת צינורות עיבוד נתונים בטבלאות Apache Iceberg

סוכן ה-Data Engineering תומך ביצירה ובהידור של פייפליינים ב-Dataform בטבלאות Apache Iceberg שמנוהלות על ידי קטלוג ייעודי לזמן ריצה של Lakehouse (לשעבר BigLake Metastore). התכונה הזו מאפשרת לשלוח שאילתות לטבלאות אזוריות בפורמט של קוד פתוח (שמאוחסנות ב-Cloud Storage) ולצרף אותן ישירות לטבלאות ב-BigQuery. מידע נוסף זמין במאמר מושגים של נקודות קצה בקטלוג REST של Apache Iceberg.

לדוגמה, אתם יכולים לבקש מהנציג לשלוח שאילתה לטבלת Apache Iceberg בקטלוג הייעודי לזמן ריצה של Lakehouse:

Include the stackoverflow_post_history_iceberg table in this pipeline.

בהנחיות, אתם לא צריכים לציין נתיבים מלאים עם ארבעה חלקים, כמו project.catalog.dataset.table. אתם יכולים להפנות לטבלאות Apache Iceberg באמצעות שמות סטנדרטיים בשפה טבעית או מזהים לוגיים, לדוגמה the StackOverflow post history table או post_history. הנציג מפעיל באופן אוטומטי חיפושים סמנטיים בקטלוג באמצעות Knowledge Catalog כדי לפתור את הבעיות ולקשר את הטבלאות הנכונות של Apache Iceberg לסביבת העבודה של הצינור.

כדי להשתמש בתכונה הזו, מאגר Dataform צריך להשתמש ב-Dataform Core בגרסה 3.0.33 ואילך.

המלצות אינטראקטיביות

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

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

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

כדי לשפר את התוצאות כשעובדים עם הסוכן להנדסת נתונים ועם 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).

הערכת Data pipelines

כדי להעריך את היעילות של פייפליין שנוצר על ידי הסוכן להנדסת נתונים, משתמשים בכלי EvalBench. ‫EvalBench הוא מסגרת בקוד פתוח שתומכת בהערכות של סוכנים עם כמה שלבים. ‫EvalBench פועל כחבילת מקרים לבדיקה אוטומטית של יחידות, שמאפשרת להגדיר תרחישים עם כמה שלבים, להוסיף מודלים דטרמיניסטיים ומודלים מבוססי-LLM לחישוב ציונים ולנהל את מחזור החיים של צינורות הנתונים ב-Dataform.

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

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

הרצת הערכה של פייפליין

אפשר להריץ את EvalBench בשני המצבים הבאים:

  • ארגז חול דינמי: EvalBench מקצה מאגר וסביבת עבודה זמניים וחדשים ב-Dataform בתחילת הרצת ההערכה, מריץ את תרחישי הבדיקה ומסיר באופן אוטומטי את כל המשאבים שנוצרו בסיום. במצב הזה לא מתבצעים שינויים בקוד בסביבת הייצור, במאגרים בסביבת הייצור או במערכי הנתונים ב-BigQuery, ולא נשארים פריטי מידע מיותרים בפרויקט ב- Google Cloud . מצב ארגז החול הדינמי מתאים לצינורות עיבוד נתונים אוטומטיים של CI/CD, לבדיקות רגרסיה ליליות ולניקוד אובייקטיבי של נקודות השוואה, שבהם נדרש בידוד קפדני של הסביבה.

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

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

כדי לקבל את ההרשאות שדרושות להפעלת EvalBench, בקשו מהאדמין לתת לכם את התפקידים הבאים ב-IAM בחשבון השירות או בזהות המשתמש שמפעילים את EvalBench:

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

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

הפעלת הערכה בארגז חול דינמי

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

  1. פועלים לפי השלבים כדי לשכפל את המאגר, להגדיר את הסביבה הווירטואלית ולהתקין את כל יחסי התלות של EvalBench. מידע נוסף זמין במאמר תחילת השימוש.
  2. בספרייה datasets/dea-tools/, מוודאים שקובץ התצורה לדוגמה (example_run_config.yaml) כולל את השורות הבאות:

    set_up_script: datasets/dea-tools/scripts/setup_dataform.sh
    tear_down_script: datasets/dea-tools/scripts/teardown_dataform.sh
  3. מריצים את EvalBench באמצעות הפקודה הבאה:

    EVAL_GCP_PROJECT_ID=PROJECT_ID \
    EVAL_GCP_PROJECT_REGION=REGION \
    .venv/bin/python3 evalbench/evalbench.py --experiment_config=datasets/dea-tools/example_run_config.yaml

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud.
    • ‫REGION: האזור של הפרויקט ב- Google Cloud.

הרצת הערכה בסביבת עבודה של הערכה סטטית

כדי להעריך את פייפליין הנתונים במצב סביבת עבודה סטטית:

  1. פועלים לפי השלבים כדי לשכפל את המאגר, להגדיר את הסביבה הווירטואלית ולהתקין את כל יחסי התלות. מידע נוסף זמין במאמר תחילת השימוש.
  2. בספרייה datasets/dea-tools/, עורכים את קובץ התצורה של הרצת הדוגמה (example_run_config.yaml) כדי לסמן כהערה את השורות set_up_script ו-tear_down_script, ומוסיפים את ההגדרות dataform_repository ו-dataform_workspace:

    ...
    # set_up_script: datasets/dea-tools/scripts/setup_dataform.sh
    # tear_down_script: datasets/dea-tools/scripts/teardown_dataform.sh
    dataform_repository: !ENV ${EVAL_DEA_REPOSITORY_ID}
    dataform_workspace: !ENV ${EVAL_DEA_WORKSPACE_ID}
    ...
  3. מריצים את EvalBench באמצעות הפקודה הבאה:

    EVAL_GCP_PROJECT_ID=PROJECT_ID \
    EVAL_GCP_PROJECT_REGION=REGION \
      EVAL_DEA_REPOSITORY_ID=REPOSITORY_ID \
      EVAL_DEA_WORKSPACE_ID=WORKSPACE_ID \
      .venv/bin/python3 evalbench/evalbench.py --experiment_config=datasets/dea-tools/example_run_config.yaml

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud.
    • ‫REGION: האזור של הפרויקט ב- Google Cloud.
    • ‫REPOSITORY_ID: המזהה של המאגר שמכיל את פייפליין.
    • ‫WORKSPACE_ID: המזהה של סביבת העבודה שמכילה את פייפליין.
  4. אופציונלי: אפשר גם להריץ את EvalBench עם core_10_cases_suite.yaml כדי לבדוק את פייפליין הנתונים מול 10 מקרי הערכה עיקריים ברצף, עם בידוד סביבתי על ידי יצירת מאגר חדש לכל מקרה בדיקה. כדי לעשות זאת, מריצים את הפקודה הבאה:

    EVAL_GCP_PROJECT_ID=PROJECT_ID \
    EVAL_GCP_PROJECT_REGION=REGION \
    .venv/bin/python3 evalbench/evalbench.py --suite_config=datasets/dea-tools/core_10_cases_suite.yaml

שיטות מומלצות להערכת פייפליין של נתונים

כדי לשפר את הביצועים והדיוק של הערכות פייפליין הנתונים באמצעות EvalBench, מומלץ לבצע את הפעולות הבאות:

  • חפשו ביומני ההערכה את מזהי המשימות של הפעלת תהליך העבודה ב-Dataform ושל BigQuery. השתמשו במזהים האלה כדי להצליב נתונים ולבדוק פריטי מידע שנוצרו במהלך ההרצה, תוצאות של הידור ויומני שאילתות במסוף Google Cloud .
  • כדי לוודא שכל תרחישי הרגרסיה מכוסים במגוון תרחישים של הנדסת נתונים, תמיד צריך להריץ את חבילת הבדיקות העיקרית (--suite_config) לפני שמפיצים שינויים במודל או בהנחיה.
  • משתמשים ב-EVAL_DATAFORM_SETUP_ENV_FILES_DIR כדי לטעון מראש קובצי הגדרת סביבה, כמו workflow_settings.yaml והגדרות סכימה בסיסיות, לסביבת העבודה של הבדיקה. קובצי ההגדרה האלה מבטיחים שהסוכן יתבסס על סביבות קיימות מציאותיות במקום על סביבות עבודה ריקות.
  • כשפותרים בעיות במקרים של הערכה שנכשלה במצב ארגז חול דינמי, צריך לסמן כהערה את tear_down_script בהגדרת ההרצה כדי לשמור את סביבת העבודה של היעד לניתוח פוסט-מורטם.
  • תמיד צריך לשלב בין כלי אימות של הידור והרצה בענן (dataform_cloud_compile, dataform_cloud_run) לבין קריטריונים בינאריים מבוססי-LLM כדי לזהות שגיאות תחביר או שגיאות זמן ריצה וגם פגמים לוגיים ברמה גבוהה.
  • מפעילים את הדיווח ב-BigQuery (<PROJECT_ID>.evalbench.results) ומשתמשים בקישורים שנוצרו ל-Data Studio כדי לעקוב אחרי שיעורי המעבר, דיוק השימוש בכלי ויעילות ההנחיות לאורך זמן.