מידע על הצהרות
טענה היא שאילתת בדיקה של איכות הנתונים שמאתרת שורות שמפירות תנאי אחד או יותר שצוינו בשאילתה. אם השאילתה מחזירה שורות כלשהן, הטענה נכשלת. Dataform מפעיל טענות בכל פעם שהוא מעדכן את תהליך העבודה, ושולח לכם התראה אם טענה כלשהי נכשלת.
Dataform יוצר באופן אוטומטי תצוגות ב-BigQuery שמכילות את התוצאות של שאילתות טענות שעברו קומפילציה. כפי שהוגדר בקובץ הגדרות תהליך העבודה, Dataform יוצר את התצוגות האלה בסכימת טענות, שבה אפשר לבדוק את תוצאות הטענות.
לדוגמה, עבור סכימת ברירת המחדל dataform_assertions, Dataform יוצר תצוגה ב-BigQuery בפורמט הבא:
dataform_assertions.assertion_name.
אפשר ליצור הצהרות לכל סוגי הטבלאות ב-Dataform: טבלאות, טבלאות מצטברות, תצוגות (views) ותצוגות חומריות (materialized views).
אפשר ליצור הצהרות בדרכים הבאות:
איך מוסיפים הצהרות מובנות לבלוק ההגדרות של טבלה
אפשר להוסיף הצהרות מובנות לבלוק
configשל טבלה ולציין את התנאים שלהן.הוספת הצהרות ידניות בקובץ SQLX נפרד.
אתם יכולים לכתוב טענות מותאמות אישית באופן ידני בקובץ SQLX נפרד לתרחישי שימוש מתקדמים או למערכי נתונים שלא נוצרו על ידי Dataform.
לפני שמתחילים
נכנסים לדף Dataform במסוף Google Cloud .
בוחרים מאגר או יוצרים מאגר.
בוחרים או יוצרים סביבת עבודה לפיתוח.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות ליצירת טענות נכוֹנוּת (assertion), צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
- Dataform Editor (
roles/dataform.editor) בסביבת העבודה -
כדי לסנכרן מטא-נתונים עם Knowledge Catalog:
Dataplex Catalog Editor (
roles/dataplex.catalogEditor) בפרויקט או בקבוצת הרשומות@bigquery
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
יצירת טענות מובנות
אפשר להוסיף הצהרות מובנות של Dataform לבלוק config של טבלה. Dataform מריץ את ההצהרות האלה אחרי יצירת הטבלה. אחרי ש-Dataform יוצר את הטבלה, אפשר לראות אם האימות עבר בהצלחה בכרטיסייה Workflow execution logs של סביבת העבודה.
אפשר ליצור את הטענות הבאות בבלוק config של טבלה:
nonNullהתנאי הזה קובע שהעמודות שצוינו לא יכולות להיות ריקות בכל השורות בטבלה. התנאי הזה משמש לעמודות שלעולם לא יכולות להיות null.
בדוגמת הקוד הבאה מוצגת טענת
nonNullבבלוקconfigשל טבלה:
config {
type: "table",
assertions: {
nonNull: ["user_id", "customer_id", "email"]
}
}
SELECT ...
rowConditionsהתנאי הזה קובע שכל השורות בטבלה פועלות לפי הלוגיקה המותאמת אישית שהגדרתם. כל תנאי שורה הוא ביטוי SQL מותאם אישית, וכל שורה בטבלה מוערכת לפי כל תנאי שורה. הטענה נכשלת אם שורה כלשהי בטבלה מחזירה את הערך
false.בדוגמת קוד הבאה מוצגת טענת נכוֹנוּת (assertion)
rowConditionsבהתאמה אישית בבלוקconfigשל טבלה מצטברת:
config {
type: "incremental",
assertions: {
rowConditions: [
'signup_date is null or signup_date > "2022-08-01"',
'email like "%@%.%"'
]
}
}
SELECT ...
uniqueKeyהתנאי הזה קובע שבעמודה שצוינה, לאף שורה בטבלה אין את אותו הערך.
בדוגמה הבאה של קוד אפשר לראות טענת
uniqueKeyבבלוקconfigשל תצוגה:
config {
type: "view",
assertions: {
uniqueKey: ["user_id"]
}
}
SELECT ...
uniqueKeysהתנאי הזה קובע שבשום שורה בטבלה לא מופיע אותו ערך בעמודות שצוינו. האימות נכשל אם יש יותר משורה אחת בטבלה עם אותם ערכים בכל העמודות שצוינו.
בדוגמת הקוד הבאה מוצגת טענת
uniqueKeysבבלוקconfigשל טבלה:
config {
type: "table",
assertions: {
uniqueKeys: [["user_id"], ["signup_date", "customer_id"]]
}
}
SELECT ...
הוספת טענות נכוֹנוּת (assertions) לבלוק config
כדי להוסיף הצהרות לבלוק ההגדרות של טבלה, פועלים לפי השלבים הבאים:
- בסביבת העבודה לפיתוח, בחלונית Files (קבצים), בוחרים קובץ SQLX של הגדרת טבלה.
- בבלוק
configשל קובץ הטבלה, מזיניםassertions: {}. - בתוך
assertions: {}, מוסיפים את הטענות. - אופציונלי: לוחצים על עיצוב.
בדוגמת הקוד הבאה אפשר לראות את התנאים שנוספו לבלוק config:
config {
type: "table",
assertions: {
uniqueKey: ["user_id"],
nonNull: ["user_id", "customer_id"],
rowConditions: [
'signup_date is null or signup_date > "2019-01-01"',
'email like "%@%.%"'
]
}
}
SELECT ...
יצירת הצהרות ידניות באמצעות SQLX
טענות ידניות הן שאילתות SQL שכותבים בקובץ SQLX ייעודי. שאילתת SQL של טענת נכונות ידנית צריכה להחזיר אפס שורות. אם השאילתה מחזירה שורות כשהיא מופעלת, הטענה נכשלת.
כדי להוסיף הצהרות ידניות בקובץ SQLX חדש, פועלים לפי השלבים הבאים:
- בחלונית קבצים, לצד
definitions/, לוחצים על סמל האפשרויות הנוספות
. - לוחצים על יצירת קובץ.
בשדה Add a file path (הוספת נתיב קובץ), מזינים את שם הקובץ ואחריו את התו
.sqlx. לדוגמה,definitions/custom_assertion.sqlx.שמות הקבצים יכולים לכלול רק מספרים, אותיות, מקפים וקווים תחתונים.
לוחצים על יצירת קובץ.
בחלונית קבצים, לוחצים על הקובץ החדש.
בקובץ, מזינים את הפרטים הבאים:
config { type: "assertion" }מתחת לבלוק
config, כותבים את שאילתת ה-SQL או כמה שאילתות.אופציונלי: לוחצים על עיצוב.
בדוגמת הקוד הבאה מוצגת טענה ידנית בקובץ SQLX, שקובעת שהשדות A, B ו-c אף פעם לא יהיו NULL ב-sometable:
config { type: "assertion" }
SELECT
*
FROM
${ref("sometable")}
WHERE
a IS NULL
OR b IS NULL
OR c IS NULL
המאמרים הבאים
- מידע נוסף על סוגי הצהרות זמין במאמר בנושא Dataform API.
- כדי ללמוד איך להגדיר הצהרות באמצעות JavaScript, אפשר לעיין במאמר בנושא יצירת תהליכי עבודה באמצעות JavaScript בלבד.
- במאמר הפעלת תהליכי עבודה באופן ידני מוסבר איך להפעיל תהליכי עבודה באופן ידני.