עיבוד נתונים באמצעות תבניות

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

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

תבניות Dataplex Universal Catalog מבוססות על Dataflow. לפני שמשתמשים בתבניות, צריך להפעיל את ממשקי ה-API של Dataflow.

הפעלת ממשקי ה-API של Dataflow

שימו לב לנקודות הבאות:

תבנית: המרת נתונים גולמיים לנתונים שנאספו

תבנית ההמרה של פורמט הקובץ ב-Dataplex Universal Catalog ממירה נתונים בנכס של Dataplex Universal Catalog Cloud Storage, או רשימה של ישויות של Dataplex Universal Catalog שמאוחסנות בפורמטים CSV או JSON, לנתונים בפורמט Parquet או Avro בנכס אחר של Dataplex Universal Catalog. פריסת המחיצות נשמרת בהמרה. הוא תומך גם בדחיסה של קובצי הפלט.

פרמטרים של תבניות

פרמטר תיאור
inputAssetOrEntitiesList הנכס של Dataplex Universal Catalog או הישויות של Dataplex Universal Catalog שמכילות את קובצי הקלט. הפרמטר הזה צריך להיות בפורמט: projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name> או projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/entities/<entity1-name>,projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/entities/<entity 2 name>...
outputFileFormat פורמט קובץ הפלט ב-Cloud Storage. הפרמטר הזה חייב להיות בפורמט הבא: PARQUET או AVRO.
outputAsset השם של נכס Dataplex Universal Catalog שמכיל את הקטגוריה של Cloud Storage שבה יאוחסנו קובצי הפלט. הפרמטר הזה צריך להיות בפורמט: projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name>. אפשר למצוא את outputAsset במסוף Google Cloud , בכרטיסייה Details של נכס Dataplex Universal Catalog.
outputFileCompression אופציונלי: דחיסת קובץ הפלט. ערך ברירת המחדל של הפרמטר הזה הוא SNAPPY. ערכים אחרים שאפשר להשתמש בהם לפרמטר הם UNCOMPRESSED,‏ SNAPPY,‏ GZIP או BZIP2. אי אפשר להשתמש ב-BZIP2 בקובצי PARQUET.
writeDisposition אופציונלי: מציין את הפעולה שתתבצע אם קובץ היעד כבר קיים. ערך ברירת המחדל של הפרמטר הזה הוא SKIP, שמציין שצריך לעבד רק את הקבצים שלא קיימים בספריית היעד. ערכים אחרים שאפשר להגדיר לפרמטר הם OVERWRITE (דריסת קבצים קיימים) או FAIL (לא מתבצע עיבוד ומוצגת שגיאה אם קיים לפחות קובץ יעד אחד).
updateDataplexMetadata

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

אם האפשרות הזו מופעלת, הצינור יעתיק אוטומטית את הסכימה מהמקור לישויות היעד של Dataplex, והגילוי האוטומטי של Dataplex Universal Catalog לא יפעל עבורן. משתמשים בדגל הזה אם הסכימה של נתוני המקור (הגולמיים) מנוהלת על ידי Dataplex.

הפעלת התבנית

המסוף

  1. במסוף Google Cloud , נכנסים לדף Process בקטלוג האוניברסלי של Dataplex.

    מעבר אל 'תהליך'

  2. לוחצים על יצירת משימה.

  3. בקטע המרה לפורמטים שנבחרו, לוחצים על יצירת משימה.

  4. בוחרים אגם Dataplex Universal Catalog.

  5. מזינים שם למשימה.

  6. בוחרים אזור לביצוע המשימה.

  7. ממלאים את הפרמטרים הנדרשים.

  8. לוחצים על Continue.

gcloud

במעטפת או בטרמינל, מריצים את התבנית:

gcloud beta dataflow flex-template run JOB_NAME \
--project=PROJECT_ID \
--region=REGION_NAME \
--template-file-gcs-location=gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_File_Format_Conversion_Preview \
--parameters \
inputAssetOrEntitiesList=INPUT_ASSET_OR_ENTITIES_LIST,\
outputFileFormat=OUTPUT_FILE_FORMAT,\
outputAsset=OUTPUT_ASSET

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

JOB_NAME: a job name of your choice
PROJECT_ID: your template project ID
REGION_NAME: region in which to run the job
INPUT_ASSET_OR_ENTITIES_LIST: path to your JDBC drivers
OUTPUT_FILE_FORMAT: your output file format in Cloud Storage
OUTPUT_ASSET: your Dataplex Universal Catalog output asset ID

REST

שליחת בקשת HTTP POST:

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/REGION_NAME/flexTemplates:launch
{
  "launch_parameter": {
    "jobName": "JOB_NAME",
    "parameters": {
        "inputAssetOrEntitiesList": "INPUT_ASSET_OR_ENTITIES_LIST",
        "outputFileFormat": "OUTPUT_FILE_FORMAT",
        "outputAsset": "OUTPUT_ASSET",
    },
    "containerSpecGcsPath": "gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_File_Format_Conversion_Preview",
 }
}

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

PROJECT_ID: your template project ID
REGION_NAME: region in which to run the job
JOB_NAME: a job name of your choice
INPUT_ASSET_OR_ENTITIES_LIST: path to your JDBC drivers
OUTPUT_FILE_FORMAT: your output file format in Cloud Storage
OUTPUT_ASSET: your Dataplex Universal Catalog output asset ID

תבנית: העברת נתונים ברמות שונות מנכס BigQuery לנכס Cloud Storage

תבנית BigQuery to Cloud Storage של Dataplex Universal Catalog מעתיקה נתונים מנכס BigQuery של Dataplex Universal Catalog לנכס Cloud Storage של Dataplex Universal Catalog בפריסה ובפורמט שתואמים ל-Dataplex Universal Catalog. אפשר לציין מערך נתונים ב-BigQuery או רשימה של טבלאות ב-BigQuery להעתקה. כדי להגביר את הגמישות, התבנית מאפשרת להעתיק נתונים ישנים מתאריך שינוי ספציפי, ומאפשרת גם למחוק נתונים מ-BigQuery אחרי העתקה מוצלחת.

כשמעתיקים טבלאות מחולקות למחיצות מ-BigQuery אל Cloud Storage:

  • התבנית יוצרת מחיצות בסגנון Hive בקטגוריה של Cloud Storage. ב-BigQuery, מפתח המחיצה בסגנון Hive לא יכול להיות זהה לעמודה קיימת. אתם יכולים להשתמש באפשרות enforceSamePartitionKey כדי ליצור מפתח מחיצה חדש או להשאיר את אותו מפתח מחיצה אבל לשנות את השם של העמודה הקיימת.
  • כשיוצרים טבלה ב-BigQuery (וטבלה ב-Dataproc Metastore), סוג המחיצה נרשם ב-Dataplex Universal Catalog Discovery כ-string. יכול להיות שהשינוי הזה ישפיע על מסנני החלוקה הקיימים שלכם.

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

פרמטרים של תבניות

פרמטר תיאור
sourceBigQueryDataset מערך הנתונים ב-BigQuery שממנו יועברו הנתונים לרמות אחסון. הפרמטר הזה צריך להכיל שם של נכס בקטלוג האוניברסלי של Dataplex בפורמט projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name> או מזהה של מערך נתונים ב-BigQuery בפורמט projects/<name>/datasets/<dataset-id>.
destinationStorageBucketAssetName שם הנכס ב-Dataplex Universal Catalog של קטגוריית Cloud Storage שאליה רוצים להעביר את הנתונים. הפרמטר הזה צריך להיות בפורמט projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name>.
tables אופציונלי: רשימה מופרדת בפסיקים של טבלאות ב-BigQuery שאותן רוצים להעביר לרמת אחסון. אם לא מספקים רשימה, כל הטבלאות יסווגו לרמות. צריך לציין את הטבלאות רק לפי השם שלהן (ללא קידומת של פרויקט או מערך נתונים), והשמות הם תלויי-רישיות.
exportDataModifiedBeforeDateTime אופציונלי: אפשר להשתמש בפרמטר הזה כדי להעביר נתונים ישנים יותר מהתאריך הזה (והשעה האופציונלית). בטבלאות מחולקות למחיצות ב-BigQuery, המחיצות האחרונות ששונו לפני התאריך והשעה האלה. בטבלאות שלא מחולקות למחיצות, המערכת תעביר את הטבלה אם השינוי האחרון בה בוצע לפני התאריך והשעה האלה. אם לא צוין, כל הטבלאות או המחיצות יועברו. כברירת מחדל, התאריך והשעה מפוענחים לפי אזור הזמן שמוגדר כברירת מחדל, אבל יש תמיכה בסיומות האופציונליות Z ו-+HH:mm. הפורמט של הפרמטר הזה צריך להיות YYYY-MM-DD או YYYY-MM-DDTHH:mm:ss או YYYY-MM-DDTHH:mm:ss+03:00. תאריך או שעה יחסיים גם נתמכים, והם צריכים להיות בפורמט -PnDTnHnMn.nS (חייבים להתחיל ב--P, שמציין שעה בעבר).
fileFormat אופציונלי: פורמט קובץ הפלט ב-Cloud Storage. ערך ברירת המחדל של הפרמטר הזה הוא PARQUET. ערך נוסף של הפרמטר יכול להיות AVRO.
fileCompression אופציונלי: דחיסת קובץ הפלט. ערך ברירת המחדל של הפרמטר הזה הוא SNAPPY. ערכים אחרים שאפשר להשתמש בהם לפרמטר הם UNCOMPRESSED,‏ SNAPPY,‏ GZIP או BZIP2. אין תמיכה בפרמטר BZIP2 לקובצי PARQUET.
deleteSourceData אופציונלי: האם למחוק את נתוני המקור מ-BigQuery אחרי ייצוא מוצלח. הערכים האפשריים הם true או false. ערך ברירת המחדל של הפרמטר הזה הוא false.
partitionIdRegExp אופציונלי: עיבוד מחיצות עם מזהה מחיצה שתואם רק לביטוי הרגולרי הזה. אם לא מציינים ערך, ברירת המחדל של הפרמטר הזה היא process all.
writeDisposition אופציונלי: מציין את הפעולה שמתרחשת אם קובץ היעד כבר קיים, כלומר אם כבר בוצעה העברה של טבלה אחת או יותר או של מחיצות. ערך ברירת המחדל של הפרמטר הזה הוא SKIP, שמציין שצריך לעבד רק את הטבלאות או המחיצות שלא סווגו כבר לרמות. ערכים אחרים שאפשר להגדיר לפרמטר הם OVERWRITE (דריסת קבצים קיימים) או FAIL (לא מתבצע עיבוד ומוצגת שגיאה אם קיים לפחות קובץ יעד אחד).
enforceSamePartitionKey

אופציונלי: האם לאכוף את אותו מפתח מחיצה. בגלל מגבלה ב-BigQuery, אי אפשר להשתמש במפתח המחיצה (בנתיב הקובץ) בטבלה חיצונית עם מחיצות אם השם שלו זהה לאחד השמות של העמודות בקובץ. אם הפרמטר הזה הוא True (שזה ערך ברירת המחדל), מפתח החלוקה של קובץ היעד מוגדר לשם העמודה המקורי של החלוקה, והשם של העמודה בקובץ משתנה. אם הערך הוא false, שם מפתח החלוקה משתנה.

לדוגמה, אם הטבלה המקורית מחולקת למחיצות בעמודה בשם TS וenforceSamePartitionKey=true, נתיב קובץ היעד הוא gs://<bucket>/TS=<partition ID>/<file> והשם של העמודה משתנה ל-TS_pkey בקובץ. כך אפשר להריץ שאילתות קיימות על אותם מחיצות בטבלה הישנה או בטבלה החדשה.

אם enforceSamePartitionKey=false, אז נתיב קובץ היעד הוא gs://<bucket>/TS_pid=<partition ID>/<file>, אבל שם העמודה נשאר TS בקובץ.

updateDataplexMetadata

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

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

הפעלת התבנית

המסוף

  1. במסוף Google Cloud , נכנסים לדף Process בקטלוג האוניברסלי של Dataplex.

    מעבר אל 'תהליך'

  2. לוחצים על יצירת משימה.

  3. בקטע Tier from BQ to GCS Assets (העברה של שכבת נתונים מ-BQ לנכסי GCS), לוחצים על Create task (יצירת משימה).

  4. בוחרים אגם Dataplex Universal Catalog.

  5. מזינים שם למשימה.

  6. בוחרים אזור לביצוע המשימה.

  7. ממלאים את הפרמטרים הנדרשים.

  8. לוחצים על Continue.

gcloud

במעטפת או בטרמינל, מריצים את התבנית:

gcloud beta dataflow flex-template run JOB_NAME \
--project=PROJECT_ID \
--region=REGION_NAME \
--template-file-gcs-location=gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_BigQuery_to_GCS_Preview \
--parameters \
sourceBigQueryDataset=SOURCE_ASSET_NAME_OR_DATASET_ID,\
destinationStorageBucketAssetName=DESTINATION_ASSET_NAME

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

JOB_NAME: a job name of your choice
PROJECT_ID: your template project ID
REGION_NAME: region in which to run the job
SOURCE_ASSET_NAME_OR_DATASET_ID: your Dataplex Universal Catalog asset
name for the source BigQuery dataset, or the dataset ID
DESTINATION_ASSET_NAME: your Dataplex Universal Catalog asset name for
the destination Cloud Storage bucket

REST

שליחת בקשת HTTP POST:

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/REGION_NAME/flexTemplates:launch
{
 "launch_parameter": {
    "jobName": "JOB_NAME",
    "parameters": {
        "sourceBigQueryDataset": "SOURCE_ASSET_NAME_OR_DATASET_ID",
        "destinationStorageBucketAssetName": "DESTINATION_ASSET_NAME",
    },
    "containerSpecGcsPath": "gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_BigQuery_to_GCS_Preview",
 }
}

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

PROJECT_ID: your template project ID
REGION_NAME: region in which to run the job
JOB_NAME: a job name of your choice
SOURCE_ASSET_NAME_OR_DATASET_ID: your Dataplex Universal Catalog asset
name for the source BigQuery dataset, or the dataset ID
DESTINATION_ASSET_NAME: your Dataplex Universal Catalog asset name for
the destination Cloud Storage bucket
REGION_NAME: region in which to run the job

תזמון תבניות Dataflow אחרות Google Cloudשסופקו על ידי Google או תבניות בהתאמה אישית

בעזרת Dataplex Universal Catalog אפשר לתזמן ולעקוב אחרי כל אחת מהתבניות של Dataflow שסופקו על ידיGoogle Cloudאו אחרי תבנית Dataflow מותאמת אישית במסוף.

הוספה ללו"ז

המסוף

  1. במסוף Google Cloud , נכנסים לדף Process בקטלוג האוניברסלי של Dataplex.

    מעבר אל 'תהליך'

  2. לוחצים על יצירת משימה.

  3. בקטע יצירת צינור Dataflow, לוחצים על יצירת צינור Dataflow.

  4. בוחרים אגם Dataplex Universal Catalog.

  5. מזינים שם למשימה.

  6. בוחרים אזור שבו רוצים להריץ את המשימה.

  7. בוחרים תבנית Dataflow.

  8. ממלאים את הפרמטרים הנדרשים.

  9. לוחצים על Continue.

מעקב

המסוף

  1. במסוף Google Cloud , נכנסים לדף Process בקטלוג האוניברסלי של Dataplex.

    מעבר אל 'תהליך'

  2. לוחצים על צינורות עיבוד נתונים של Dataflow.

  3. מסננים לפי שם האגם או הצינור.