הפניה ל-Dataform Core

במאמר הזה מתוארות השיטות, המאפיינים ואפשרויות ההגדרה של ליבת Dataform. אפשר להשתמש ב-Dataform core בקובצי SQLX ו-JavaScript.

assert()‎

assert (name: string, query?: AContextable)

הוספת טענת נכוֹנוּת (assertion) של Dataform לתרשים שעבר הידור.

זמין רק בספרייה /definitions.

דוגמה:

// definitions/file.js

assert("name").query(ctx => "select 1");

CommonContext

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

database () => string
מחזירה את מסד הנתונים של קבוצת הנתונים הזו, אם רלוונטי.
name () => string
מחזירה את השם של הטבלה הזו.
ref (ref: Resolvable | string[], rest: string[]) => string
הפניה לפעולה אחרת, הוספה שלה כתלות לפעולה הזו, החזרת SQL חוקי לשימוש בביטוי from.

אפשר לקרוא לפונקציה הזו עם אובייקט Resolvable, לדוגמה: ${ref({ name: "name", schema: "schema", database: "database" })}

אפשר להפעיל את הפונקציה הזו גם באמצעות ארגומנטים נפרדים לערכים "database",‏ "schema" ו-"name". כשמציינים רק שני ערכים, המערכת משתמשת במסד הנתונים שמוגדר כברירת מחדל ומפרשת את הערכים בתור "schema" ו-"name". כשמציינים רק ערך אחד, המערכת משתמשת במסד הנתונים ובסכימה שמוגדרים כברירת מחדל, והערך שצוין מפורש כ-`"name"`.

${ref("database", "schema", "name")} ${ref("schema", "name")} ${ref("name")}
resolve (ref: Resolvable | string[], rest: string[]) => string
דומה ל-ref, אבל לא מוסיף את הפעולה שאליה מפנים כתלות לפעולה הזו.
self () => string
שווה ערך ל-resolve(name()).

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

schema () => string
מחזירה את הסכימה של מערך הנתונים הזה.

Contextable

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

T | (ctx: Context) => T

Dataform

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

dataform.projectConfig.vars.myVariableName === "myVariableValue"

declare()‎

declare (dataset: dataform.ITarget)

מצהירה על מערך הנתונים כמקור נתונים של Dataform.

זמין רק בספרייה /definitions.

דוגמה:

// definitions/file.js

declare({name: "a-declaration"})

defaultLocation

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

אם לא מגדירים את המאפיין defaultLocation, המערכת של Dataform קובעת את המיקום על סמך מערכי הנתונים ששאילתת ה-SQL מפנה אליהם. ככה זה עובד:

  • אם השאילתה מפנה למערכי נתונים מאותו מיקום, Dataform משתמש במיקום הזה.
  • אם השאילתה מפנה למערכי נתונים משני מיקומים שונים או יותר, תתרחש שגיאה. למידע נוסף על המגבלה הזו, קראו את המאמר שכפול של מערכי נתונים באזורים שונים.
  • אם השאילתה לא מפנה לקבוצות נתונים, מיקום ברירת המחדל של Dataform הוא האזור US במספר אזורים. כדי לבחור מיקום אחר, מגדירים את המאפיין defaultLocation. לחלופין, אפשר להשתמש במשתנה המערכת @@location בשאילתה.

מידע נוסף זמין במאמר ציון מיקומים.

IActionConfig

מגדיר את התגים של Dataform ואת יחסי התלות שחלים על פעולה בתהליך העבודה.

tags string[]

רשימה של תגים שהוגדרו על ידי המשתמש, שבהם צריך לתייג את הפעולה.

dependencies Resolvable| Resolvable[]

יחסי התלות של הפעולה.

disabled boolean

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

IAssertionConfig

אפשרויות הגדרה ל-assertion סוגי פעולות.

database string
מסד הנתונים (מזהה הפרויקט ב-Google Cloud ) שבו נוצרת התצוגה המתאימה לטענה הזו.
description string
תיאור של ההצהרה.
disabled boolean
אם המדיניות מוגדרת לערך true, הפעולה הזו לא תתבצע. עדיין אפשר להסתמך על הפעולה. האפשרות הזו שימושית להשבתה זמנית של פעולות לא תקינות.
hermetic boolean
מצהיר אם הפעולה הזו הרמטית. פעולה היא הרמטית אם כל יחסי התלות שלה מוצהרים באופן מפורש.

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

schema string
הסכימה (מערך הנתונים של BigQuery) שבה צריך ליצור את התצוגה המתאימה לטענת הנכוֹנוּת (assertion) הזו.
tags string[]
רשימה של תגים שהוגדרו על ידי המשתמש והוחלו על הפעולה הזו.

IBigQueryOptions

אפשרויות למחסן נתונים ספציפי ל-BigQuery.

additionalOptions
צמדי מפתח/ערך לאפשרויות table,‏ view ו-תצוגה מהותית.

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

ערכי מחרוזת חייבים להיות מוקפים במירכאות כפולות, לדוגמה: additionalOptions: {numeric_option: "5", string_option: '"string-value"'}

אם שם האפשרות מכיל תווים מיוחדים, צריך להקיף את השם במירכאות, לדוגמה: additionalOptions: { "option-name": "value" }.

clusterBy string[]
המפתחות שלפיהם המחיצות יקובצו.
labels
צמדי מפתח/ערך של תוויות ב-BigQuery.

אם שם התווית מכיל תווים מיוחדים, למשל מקפים, צריך להוסיף מירכאות לשם, לדוגמה, labels: { "label-name": "value" }.

partitionBy string
המפתח שלפיו מבצעים חלוקה למחיצות בטבלה. בדרך כלל השם של חותמת הזמן או של עמודת התאריך.
partitionExpirationDays number
מספר הימים שבהם BigQuery שומר נתונים בכל מחיצה. ההגדרה חלה על כל המחיצות בטבלה, אבל היא מחושבת בנפרד לכל מחיצה על סמך זמן המחיצה.
requirePartitionFilter boolean
מצהירה אם הטבלה המחולקת למחיצות דורשת מסנן פרדיקט של פסוקית WHERE שמסנן את עמודת החלוקה למחיצות.
updatePartitionFilter string
מסנן מבוסס-SQL שמופעל כשמחילים עדכונים מצטברים.
iceberg IIcebergOptions
אפשרויות ספציפיות ל-Apache Iceberg בטבלאות מנוהלות של Iceberg.

IIcebergOptions

אפשרויות ספציפיות ל-Apache Iceberg בטבלאות מנוהלות של Iceberg.

connection string

זה שינוי אופציונלי. שם המשאב של החיבור ל-Cloud Storage, שמספק פרטי כניסה לקריאה מאחסון חיצוני ולכתיבה אליו. אפשר להזין את המספר בפורמטים הבאים:

  • PROJECT_ID.LOCATION.CONNECTION_ID

    מחליפים את הערכים הבאים:
    • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud
    • ‫LOCATION: שם המיקום של החיבור
    • ‫CONNECTION_ID: השם או המזהה של החיבור
  • projects/PROJECT_ID/locations/LOCATION/connections/CONNECTION_ID
  • DEFAULT

ברירת המחדל היא DEFAULT. מידע נוסף זמין במאמר סקירה כללית על חיבור ברירת המחדל.

file_format string

זה שינוי אופציונלי. פורמט הקובץ של נתוני הטבלה.

יש תמיכה רק ב-PARQUET. ברירת המחדל היא PARQUET.

bucket_name string

חובה ברמת הטבלה או ברמת תהליך העבודה. השם של הקטגוריה ב-Cloud Storage שבה מאוחסנים נתוני הטבלה.

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

table_folder_root string

זה שינוי אופציונלי. שם התיקייה ברמה הראשונה בתוך הקטגוריה של Cloud Storage שבה מאוחסנים נתוני הטבלה.

אם לא מגדירים את המאפיין הזה, Dataform משתמש בברירת המחדל ברמת תהליך העבודה מ-workflow_settings.yaml, אם היא מוגדרת. אחרת, ברירת המחדל היא _dataform.

table_folder_subpath string

זה שינוי אופציונלי. תיקיית משנה בתוך tableFolderRoot.

אם לא מגדירים את המאפיין הזה, Dataform משתמש בברירת המחדל ברמת תהליך העבודה מ-workflow_settings.yaml, אם הוגדרה כזו. אם לא הוגדרו הנכס או ברירת המחדל ברמת תהליך העבודה, נתיב המשנה יהיה DATASET_NAME/TABLE_NAME כברירת מחדל.

הערכים האלה יוצרים את ה-URI של Cloud Storage בפורמט הבא: gs://BUCKET_NAME/TABLE_FOLDER_ROOT/TABLE_FOLDER_SUBPATH.

IColumnsDescriptor

תיאור של עמודות בטבלה.

{ [name]: string | IRecordDescriptor }

IDeclarationConfig

אפשרויות הגדרה ל-declaration סוגי פעולות.

columns IColumnsDescriptor
תיאור של העמודות בטבלה.
database string
מסד הנתונים (מזהה הפרויקט ב-Google Cloud ) שבו נמצאת טבלת המקור.
description string
תיאור של הטבלה.
schema string
הסכימה (מערך הנתונים ב-BigQuery) שבה נמצאת טבלת המקור.

IDependenciesConfig

מגדיר את יחסי התלות של פעולה בתהליך עבודה.

dependencies Resolvable| Resolvable[]

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

hermetic boolean

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

IDocumentableConfig

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

columns IColumnsDescriptor

תיאור של העמודות במערך הנתונים.

description string

תיאור של מערך הנתונים.

INamedConfig

מגדיר את הסוג והשם של פעולת תהליך העבודה.

type string

סוג הפעולה.

name string

שם הפעולה.

IOperationConfig

אפשרויות הגדרה ל-operations סוגי פעולות.

columns IColumnsDescriptor
תיאור של העמודות בטבלה.
database string
מסד הנתונים (מזהה הפרויקט ב-Google Cloud ) שבו רוצים ליצור את הפלט של הפעולה הזו.
description string
תיאור של הטבלה.
disabled boolean
אם המדיניות מוגדרת לערך true, הפעולה הזו לא תתבצע. עדיין אפשר להסתמך על הפעולה. האפשרות הזו שימושית להשבתה זמנית של פעולות לא תקינות.
hasOutput boolean
מצהירה שפעולת ה-operations הזו יוצרת טבלה שאפשר להפנות אליה באמצעות הפונקציה ref.

אם מגדירים את הפעולה כ-true, היא יוצרת טבלה עם השם שהוגדר לה באמצעות פונקציית ההקשר self().

לדוגמה: create or replace table ${self()} as select ...
hermetic boolean
מצהיר אם הפעולה הזו הרמטית. פעולה היא הרמטית אם כל יחסי התלות שלה מוצהרים באופן מפורש.

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

schema string
הסכימה (מערך הנתונים ב-BigQuery) שבה רוצים ליצור את הפלט של הפעולה הזו.
tags string[]
רשימה של תגים שהוגדרו על ידי המשתמש והוחלו על הפעולה הזו.

IProjectConfig

מכיל הגדרות הידור של מאגר Dataform.

defaultDatabase string
זה שינוי אופציונלי. מסד הנתונים שמוגדר כברירת מחדל (Google Cloud מזהה פרויקט). אם לא מגדירים את המאפיין, Dataform משתמש בפרויקט Google Cloud שבו נמצא המאגר של Dataform.
defaultSchema string
חובה. הסכימה שמוגדרת כברירת מחדל (מזהה קבוצת הנתונים ב-BigQuery).
defaultLocation string
זה שינוי אופציונלי. מיקום ברירת המחדל ב-BigQuery שבו Dataform יוצר טבלאות.
assertionSchema string
חובה. הסכימה שמוגדרת כברירת מחדל (מזהה מערך הנתונים ב-BigQuery) להצהרות.
vars map (key: string, value: string)
זה שינוי אופציונלי. משתנים שהוגדרו על ידי המשתמש וזמינים לקוד הפרויקט במהלך הקומפילציה. אובייקט שמכיל רשימה של זוגות "key": value. לדוגמה: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
databaseSuffix string
זה שינוי אופציונלי. הסיומת שצריך להוסיף לכל השמות של מסדי הנתונים (מזהה הפרויקט ב-Google Cloud ).
schemaSuffix string
זה שינוי אופציונלי. הסיומת שצריך להוסיף לכל שמות הסכימות (מזהה מערך הנתונים ב-BigQuery).
tablePrefix string
זה שינוי אופציונלי. הקידומת שצריך להוסיף לכל שמות הטבלאות.
defaultIcebergConfig object
זה שינוי אופציונלי. ברירות מחדל ברמת תהליך העבודה לטבלאות מנוהלות של Apache Iceberg. מכיל את השדות הבאים:
  • ‫bucketName: אופציונלי. שם ברירת המחדל של הקטגוריה ב-Cloud Storage.
  • ‫tableFolderRoot: אופציונלי. שם ברירת המחדל של התיקייה ברמה הראשונה בתוך הקטגוריה של Cloud Storage.
  • ‫tableFolderSubpath: אופציונלי. שם ברירת המחדל של תיקיית משנה בתוך tableFolderRoot.
מידע נוסף זמין במאמר הגדרת ברירות מחדל ברמת תהליך העבודה לטבלאות Iceberg.
preserveGovernanceControls boolean
זה שינוי אופציונלי. אם הערך הוא true, ‏Dataform שומר באופן אוטומטי על כללי מדיניות הנתונים הקיימים ב-BigQuery ועל תגי משילות המידע (data governance) (גרסת טרום-השקה (Preview)) בכל ההרצות של תהליכי העבודה בכל הטבלאות במאגר.
warehouse string
חובה. הערך חייב להיות bigquery.

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

אפשר לשנות את המאפיינים defaultSchema ו-defaultDatabase בטבלאות ספציפיות.

אפשר לגשת לכל המאפיינים של IProjectConfig בהצהרת SELECT ב-SQL בקובץ SQLX או JavaScript.

בדוגמת הקוד הבאה מוצג משתנה הקימפול המותאם אישית myVariableName שמוגדר בהגדרות של תהליך העבודה עם המאפיין projectConfig.vars, שאליו ניגשים בהצהרת SELECT בקובץ SQLX:

  config { type: "view" }
  SELECT ${when(
    dataform.projectConfig.vars.myVariableName === "myVariableValue",
    "myVariableName is set to myVariableValue!",
    "myVariableName is not set to myVariableValue!"
  )}

מידע נוסף על שינוי הגדרות הפרויקט לתוצאות הידור ספציפיות זמין במשאב REST של CodeCompilationConfig ב-Dataform API.

IRecordDescriptor

מתאר מבנה, אובייקט או רשומה בטבלה שיש בה עמודות בתצוגת עץ.

bigqueryPolicyTags string | string[]
המזהים המלאים של תגי המדיניות של BigQuery שחלים על העמודה הזו. מזהה מלא של תג מדיניות ב-BigQuery כולל את שם הפרויקט, המיקום והטקסונומיה,

לדוגמה: "projects/1/locations/eu/taxonomies/2/policyTags/3"

ב-BigQuery אפשר להוסיף תג אחד לכל עמודה.
columns IColumnsDescriptor
תיאור של העמודות בתוך המבנה, האובייקט או הרשומה.
description string
תיאור של המבנה, האובייקט או הרשומה.

ITableAssertions

אפשרויות ליצירת טענות נכונות (assertions) כחלק מהגדרת טבלה.

nonNull string | string[]
עמודות שאף פעם לא יכולות להיות NULL.

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

rowConditions string[]
תנאים כלליים שצריכים להתקיים בכל השורות בטבלה.

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

uniqueKey string | string[]
העמודות שמרכיבות את אינדקס המפתחות הייחודיים של הטבלה.

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

uniqueKeys []
שילובים של עמודות, שכל אחד מהם מהווה אינדקס מפתח ייחודי של הטבלה.

אם מגדירים את המאפיין הזה, טענת הנכוֹנוּת (assertion) תיכשל אם בטבלה יש יותר משורה אחת עם אותם ערכים בכל העמודות במפתחות הייחודיים.

ITableConfig

אפשרויות הגדרה לפעולות של table, כולל סוגי הטבלאות table,‏ view ו-incremental.

מרחיב את IActionConfig,‏ IDependenciesConfig,‏ IDocumentableConfig,‏ INamedConfig ו-ITargetableConfig.

assertions ITableAssertions
טענות נכונות (assertions) שיופעלו בטבלה.

אם מגדירים טענות נכוֹנוּת רלוונטיות, הן נוצרות באופן אוטומטי ומופעלות כתלויות בטבלה הזו.

bigquery IBigQueryOptions
אפשרויות למחסן נתונים ספציפי ל-BigQuery.
columns IColumnsDescriptor
תיאור של העמודות בטבלה.
database string
מסד הנתונים (מזהה הפרויקט ב-Google Cloud ) שבו רוצים ליצור את הפלט של הפעולה הזו.
description string
תיאור של הטבלה.
disabled boolean
אם המדיניות מוגדרת לערך true, הפעולה הזו לא תתבצע. עדיין אפשר להסתמך על הפעולה. האפשרות הזו שימושית להשבתה זמנית של פעולות לא תקינות.
hermetic boolean
מצהיר אם הפעולה הזו הרמטית. פעולה היא הרמטית אם כל יחסי התלות שלה מוצהרים באופן מפורש.

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

materialized boolean
תקף רק כשסוג הטבלה הוא view.

אם הערך הוא True, תיווצר תצוגה מהותית.

onSchemaChange onSchemaChange
תקף רק כשסוג הטבלה הוא incremental.

הפעולה שמתבצעת אחרי ש-Dataform בודק את השאילתה SELECT כדי לקבוע אם נוספו או הוסרו עמודות.

התכונה הזו נמצאת בגרסת טרום-השקה (Preview).

preserveGovernanceControls boolean
זה שינוי אופציונלי. אם הערך הוא true, ‏Dataform מגבה ומחיל מחדש את מדיניות הנתונים הקיימת ב-BigQuery ואת תגי הפיקוח על הנתונים (תצוגה מקדימה) כשיוצרים מחדש טבלה, תצוגה או טבלה מצטברת במהלך רענון מלא. ההגדרה הזו מבטלת את ברירות המחדל ברמת תהליך העבודה שמוגדרות ב-workflow_settings.yaml.
protected boolean
מותר רק לסוג הטבלה incremental .

אם המדיניות מוגדרת כ-True, הפעלת הפעולה הזו מתעלמת מהאפשרות full-refresh. האפשרות הזו שימושית לטבלאות שנוצרות מנתונים זמניים, כדי לוודא שהנתונים ההיסטוריים לא יאבדו אף פעם.

schema string
הסכימה (מערך הנתונים ב-BigQuery) שבה רוצים ליצור את הפלט של הפעולה הזו.
tags string[]
רשימה של תגים שהוגדרו על ידי המשתמש והוחלו על הפעולה הזו.
type TableType
סוג הטבלה.
uniqueKey string[]
מפתחות ייחודיים לקריטריונים של מיזוג לטבלאות מצטברות.

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

ITableContext

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

incremental () => boolean
הפונקציה מחזירה את הערך True כשההקשר הנוכחי מציין שהטבלה תיבנה באופן מצטבר.
name () => string
הפונקציה מחזירה את השם המלא של הטבלה.
ref (ref: Resolvable | string[], rest: string[]) => string
הפניה לפעולה אחרת, הוספה שלה כתלות לפעולה הזו, והחזרת SQL תקין לשימוש בביטוי from.

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

${ref({ name: "name", schema: "schema", database: "database" })}

אפשר גם להפעיל את הפונקציה הזו באמצעות ארגומנטים נפרדים לערכים "database",‏ "schema" ו-"name".

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

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

${ref("database", "schema", "name")} ${ref("schema", "name")} ${ref("name")}
resolve (ref: Resolvable | string[], rest: string[]) => string
דומה ל-ref, אבל במקום להוסיף תלות, הוא פותר את ההפניה שסופקה כדי שיהיה אפשר להשתמש בה ב-SQL, לדוגמה, בביטוי `from`.
self () => string
שווה ערך ל-resolve(name()).

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

when (cond: boolean, trueCase: string, falseCase: string) => string
קיצור של תנאי if . שווה ערך ל-cond ? trueCase : falseCase.

הפרמטר falseCase הוא אופציונלי, וברירת המחדל שלו היא מחרוזת ריקה.

ITarget

הפניה לטבלה ב-BigQuery.

database string
name string
schema string

ITargetableConfig

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

database string

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

schema string

הסכימה שבה צריך ליצור את הפלט של הפעולה הזו.

onSchemaChange

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

  • IGNORE (ברירת המחדל): המערכת מתעלמת מעמודות שנוספו ומציגה שגיאה אם חסרות עמודות. אם לא מגדירים את onSchemaChange, זו פעולת ברירת המחדל כשהסכימה משתנה.
  • ‫FAIL: הפעולה נעצרת אם Dataform מזהה שינוי בסכימה, כדי לשמור על עקביות הסכימה.
  • ‫EXTEND: הוספת עמודות חדשות מהשאילתה לטבלה המצטברת, והוספת ערכי NULL לרשומות קודמות. מוצגת שגיאה אם עמודה הוסרה או חסרה בסכימה המקורית בשאילתה. אתם יכולים להשתמש בהגדרה הזו כדי להוסיף עמודות חדשות לטבלאות המצטברות בזמן הריצה.
  • ‫SYNCHRONIZE: הוספת עמודות חדשות מהשאילתה לטבלה המצטברת, והוספת ערכי NULL לרשומות קודמות. הסרת עמודות שהיו בסכימה המקורית אבל חסרות בשאילתה הנוכחית.

operate()‎

operate (name: string, queries?: Contextable)

מגדיר פעולת SQL.

זמין רק בספרייה /definitions.

דוגמה:

// definitions/file.js

operate("an-operation", ["SELECT 1", "SELECT 2"])

publish()‎

publish (name: string, queryOrConfig?: Contextable | ITableConfig)

יוצרת טבלה או תצוגה.

זמין רק בספרייה /definitions.

דוגמה:

// definitions/file.js

publish("published-table", {
    type: "table",
    dependencies: ["a-declaration"],
  }).query(ctx => "SELECT 1 AS test");

ניתן לפתרון

הערך של resolvable יכול להיות שם של טבלה כמו string, או האובייקט שמתאר את הנתיב המלא לאותו גורם מקשר.

string | ITarget

TableType

סוגי הפעולות הנתמכות בטבלה.

טבלאות מסוג view ייווצרו כתצוגות.

טבלאות מסוג table ייווצרו כטבלאות.

טבלאות מסוג incremental חייבות לכלול סעיף where. מידע נוסף זמין במאמר הגדרת טבלה מצטברת.