יצירת פעולות

במסמך הזה מוסבר איך להגדיר פעולות SQL בהתאמה אישית בקובץ SQLX ייעודי.

ב-Dataform אפשר להריץ פעולות SQL מותאמות אישית שלא מתאימות למודל של Dataform לפרסום טבלה או לכתיבת הצהרה. אתם יכולים להגדיר פקודות SQL מותאמות אישית שיופעלו ב-BigQuery באמצעות Dataform.

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

  1. נכנסים לדף Dataform במסוף Google Cloud .

    מעבר לדף Dataform

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

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

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

כדי לקבל את ההרשאות שנדרשות להגדרת פעולת SQL בהתאמה אישית, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM‏ Dataform Editor (roles/dataform.editor) בסביבות עבודה. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

יצירת קובץ להגדרה של פעולה בהתאמה אישית

שומרים את קובצי ה-SQLX של הגדרות פעולות בהתאמה אישית בספרייה definitions/. כדי ליצור קובץ SQLX חדש בספרייה definitions/, פועלים לפי השלבים הבאים:

  1. עוברים לסביבת הפיתוח.
  2. בחלונית קבצים, לצד definitions/, לוחצים על התפריט סמל האפשרויות הנוספות.
  3. לוחצים על יצירת קובץ.
  4. בשדה הוספת נתיב קובץ, מזינים את שם הקובץ ואחריו את התו .sqlx אחרי definitions/. לדוגמה, definitions/sample-operation.sqlx.

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

  5. לוחצים על יצירת קובץ.

הגדרת פעולת SQL בהתאמה אישית

אפשר להגדיר פעולת SQL בהתאמה אישית בקובץ SQLX של type: operations. אפשר לכתוב כל הצהרת SQL של BigQuery בקובץ operations. ‫Dataform מריץ את פעולות ה-SQL המותאמות אישית שלכם ב-BigQuery ללא שינוי.

אפשר להגדיר כמה פעולות SQL מותאמות אישית בקובץ SQLX אחד. מערכת BigQuery מריצה את כל הפעולות בקובץ באותו הקשר, ויוצרת את ה-SQL של ההרצה על ידי צירוף כל הפעולות עם נקודה ופסיק (;).

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

כדי להגדיר פעולת SQL מותאמת אישית בקובץ SQLX ייעודי, פועלים לפי השלבים הבאים:

  1. בסביבת הפיתוח, בוחרים את קובץ ה-SQLX להגדרת פעולה בהתאמה אישית.
  2. מזינים את קטע הקוד הבא בקובץ:

    config { type: "operations" }
    
  3. מחוץ לחסימה של config, כותבים את פעולת ה-SQL.

  4. אופציונלי: לוחצים על עיצוב.

בדוגמת הקוד הבאה מוצגות כמה פעולות SQL מותאמות אישית שמוגדרות בקובץ operations:

config { type: "operations" }

DELETE FROM dataset.table WHERE country = 'GB';

DELETE FROM dataset.table WHERE country = 'FR';

בדוגמת הקוד הבאה מוצגת פעולת SQL מותאמת אישית שיוצרת תצוגה באופן ידני:

config { type: "operations" }
CREATE OR REPLACE VIEW dataset.table AS (SELECT 1 AS TEST)

יצירת טבלת פלט שאפשר להפנות אליה

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

כדי ששם טבלת הפלט יהיה זהה לשם הקובץ operations, אפשר להשתמש בפונקציה self בפעולה CREATE.

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

  1. בסביבת העבודה לפיתוח, בוחרים את קובץ ה-SQLX להגדרה של פעולה בהתאמה אישית.
  2. בקובץ SQLX, מזינים את קטע הקוד הבא:

    config {
     type: "operations",
     hasOutput: true
    }
    
  3. כדי שהשם של טבלת הפלט יהיה זהה לשם הקובץ, צריך לכתוב פעולת SQL CREATE עם הפונקציה self בפורמט הבא:

    CREATE OR REPLACE TABLE ${self()} AS (CUSTOM_SQL_QUERY)
    

    מחליפים את CUSTOM_SQL_QUERY בהגדרת הטבלה שלכם במשפט SELECTSQL.

  4. אופציונלי: לוחצים על עיצוב.

הפניה לטבלת פלט של פעולת SQL בהתאמה אישית

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

בדוגמת קוד הבאה מוצגת פעולת SQL בהתאמה אישית בקובץ custom_SQL_operation_table.sqlx שיוצרת טבלה שאפשר להפנות אליה בשם custom_SQL_operation_table:

// filename is custom_SQL_operation_table.sqlx
config {
type: "operations",
hasOutput: true
}
CREATE OR REPLACE VIEW ${self()} AS (SELECT 1 AS TEST)

בדוגמת הקוד הבאה מוצג איך מפנים אל custom\_SQL\_operation\_table table בקובץ SQLX של הגדרת טבלה:

config { type: "table" }
SELECT * FROM ${ref("custom_SQL_operation_table")}

יצירת טבלה ריקה

יכול להיות שתרצו ליצור טבלה ריקה כדי ששירות אחר יוכל לאכלס אותה בנתונים. אפשר ליצור טבלה ריקה בפעולת SQL בהתאמה אישית באמצעות הפונקציה CREATE TABLE. כדי שתוכלו להפנות לטבלה הריקה בהגדרות של פעולות אחרות בתהליך העבודה, למשל טבלאות ותצוגות, אתם יכולים להוסיף את המאפיין hasOutput:true לבלוק config של פעולת הטבלה הריקה.

  • כדי ליצור טבלה ריקה, משתמשים בפונקציה CREATE TABLE בקובץ type: "operations" בפורמט הבא:
config {
  type: "operations",
  hasOutput: true  // optional, lets you reference the empty table
}

CREATE TABLE ${self()} (

)

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

config {
  type: "operations"
}

CREATE TABLE ${self()} (
  x INT64,
  y STRING
)

המאמרים הבאים