הפניה ל-Dataform Core

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

assert()‎

assert (name: string, query?: AContextable)

הפקודה מוסיפה הצהרה של Dataform לתרשים המהודר.

האפשרות הזו זמינה רק בספרייה /definitions.

דוגמה:

// definitions/file.js

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

CommonContext

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

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 multi-region. כדי לבחור מיקום אחר, מגדירים את הנכס 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) שבה ייצור התצוגה המתאימה לאישור הזה.
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 clause predicate שמסנן את עמודת החלוקה למחיצות.
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 מזהה הפרויקט).
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.
warehouse string
חובה. הערך חייב להיות bigquery.

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

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

אפשר לגשת לכל הנכסים מסוג IProjectConfig בהצהרת SQL SELECT בקובץ 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!"
  )}

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

IRecordDescriptor

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

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

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

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

ITableAssertions

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

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

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

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

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

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

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

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

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

ITableConfig

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

‫Extends IActionConfig, IDependenciesConfig, IDocumentableConfig, INamedConfig, and ITargetableConfig.

assertions ITableAssertions
טענות להרצה בטבלה.

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

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

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

protected boolean
האפשרות הזו מותרת רק בסוג הטבלה incremental .

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

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

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

ITableContext

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

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");

ניתן לפתרון

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

string | ITarget

TableType

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

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

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

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