Dataplex Universal Catalog מספק תבניות שמבוססות על Dataflow, כדי לבצע משימות נפוצות של עיבוד נתונים כמו הטמעת נתונים, עיבוד וניהול של מחזור החיים של הנתונים. במדריך הזה מוסבר איך להגדיר ולהפעיל תבניות לעיבוד נתונים.
לפני שמתחילים
תבניות Dataplex Universal Catalog מבוססות על Dataflow. לפני שמשתמשים בתבניות, צריך להפעיל את ממשקי ה-API של Dataflow.
שימו לב לנקודות הבאות:
כל התבניות תומכות באפשרויות נפוצות של צינורות עיבוד נתונים ב-Dataflow.
ב-Dataplex Universal Catalog נעשה שימוש בצינורות עיבוד נתונים כדי לתזמן את המשימות שמוגדרות בתבניות.
אפשר לראות רק את המשימות שמתוזמנות דרך Dataplex Universal Catalog במסוף Google Cloud בדף Dataplex Universal Catalog.
תבנית: המרת נתונים גולמיים לנתונים שנאספו
תבנית ההמרה של פורמט הקובץ ב-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 עבור הישויות החדשות שנוצרו. ערך ברירת המחדל של הפרמטר הזה הוא אם האפשרות הזו מופעלת, הצינור יעתיק אוטומטית את הסכימה מהמקור לישויות היעד של Dataplex, והגילוי האוטומטי של Dataplex Universal Catalog לא יפעל עבורן. משתמשים בדגל הזה אם הסכימה של נתוני המקור (הגולמיים) מנוהלת על ידי Dataplex. |
הפעלת התבנית
המסוף
במסוף Google Cloud , נכנסים לדף Process בקטלוג האוניברסלי של Dataplex.
לוחצים על יצירת משימה.
בקטע המרה לפורמטים שנבחרו, לוחצים על יצירת משימה.
בוחרים אגם Dataplex Universal Catalog.
מזינים שם למשימה.
בוחרים אזור לביצוע המשימה.
ממלאים את הפרמטרים הנדרשים.
לוחצים על 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, שם מפתח החלוקה משתנה. לדוגמה, אם הטבלה המקורית מחולקת למחיצות בעמודה בשם אם |
updateDataplexMetadata |
אופציונלי: האם לעדכן את המטא-נתונים של Dataplex Universal Catalog עבור הישויות החדשות שנוצרו. ערך ברירת המחדל של הפרמטר הזה הוא אם האפשרות הזו מופעלת, הצינור יעתיק אוטומטית את הסכימה מהמקור לישויות היעד של Dataplex, והגילוי האוטומטי של Dataplex Universal Catalog לא יפעל עבורן. משתמשים בדגל הזה אם מנהלים את הסכימה של טבלאות המקור ב-BigQuery. |
הפעלת התבנית
המסוף
במסוף Google Cloud , נכנסים לדף Process בקטלוג האוניברסלי של Dataplex.
לוחצים על יצירת משימה.
בקטע Tier from BQ to GCS Assets (העברה של שכבת נתונים מ-BQ לנכסי GCS), לוחצים על Create task (יצירת משימה).
בוחרים אגם Dataplex Universal Catalog.
מזינים שם למשימה.
בוחרים אזור לביצוע המשימה.
ממלאים את הפרמטרים הנדרשים.
לוחצים על 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 מותאמת אישית במסוף.
הוספה ללו"ז
המסוף
במסוף Google Cloud , נכנסים לדף Process בקטלוג האוניברסלי של Dataplex.
לוחצים על יצירת משימה.
בקטע יצירת צינור Dataflow, לוחצים על יצירת צינור Dataflow.
בוחרים אגם Dataplex Universal Catalog.
מזינים שם למשימה.
בוחרים אזור שבו רוצים להריץ את המשימה.
בוחרים תבנית Dataflow.
ממלאים את הפרמטרים הנדרשים.
לוחצים על Continue.
מעקב
המסוף
במסוף Google Cloud , נכנסים לדף Process בקטלוג האוניברסלי של Dataplex.
לוחצים על צינורות עיבוד נתונים של Dataflow.
מסננים לפי שם האגם או הצינור.