הטמעה באמצעות תבניות

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

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

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

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

תבנית: טעינת נתונים ל-Dataplex Universal Catalog באמצעות חיבור JDBC

תבנית ההטמעה של Dataplex Universal Catalog JDBC מעתיקה נתונים ממסד נתונים רלציוני אל יעד נכס של Dataplex Universal Catalog. הנכס של Dataplex Universal Catalog יכול להיות נכס של Cloud Storage או נכס של BigQuery.

צינור עיבוד הנתונים הזה משתמש ב-JDBC כדי להתחבר למסד הנתונים הרלציוני. כדי להוסיף שכבת הגנה, אפשר גם להעביר מפתח Cloud KMS יחד עם פרמטרים של שם משתמש, סיסמה ומחרוזת חיבור בהצפנת Base64, שמוצפנים באמצעות מפתח Cloud KMS.

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

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

פרמטר תיאור
driverJars מפרידים בין הנתיבים של Cloud Storage למנהלי התקנים של JDBC באמצעות פסיקים.
לדוגמה, gs://your-bucket/driver_jar1.jar, gs://your-bucket/driver_jar2.jar.
connectionURL מחרוזת החיבור של כתובת ה-URL לחיבור למקור JDBC.
לדוגמה, jdbc:mysql://some-host:3306/sampledb.
אפשר להעביר את כתובת ה-URL של החיבור כטקסט רגיל או כמחרוזת בקידוד Base64 שמוצפנת על ידי Cloud KMS.
driverClassName שם המחלקה של מנהל ההתקן של JDBC.
לדוגמה, com.mysql.jdbc.Driver.
connectionProperties מחרוזת המאפיינים לשימוש בחיבור JDBC.
לדוגמה, unicode=true&characterEncoding=UTF-8.
query השאילתה שתופעל במקור כדי לחלץ את הנתונים.
לדוגמה, select * from sampledb.sample_table.
outputAsset מזהה נכס הפלט של Dataplex Universal Catalog שבו מאוחסנות התוצאות. למזהה, משתמשים בפורמט projects/your-project/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name></code>. אפשר למצוא את outputAsset במסוף Google Cloud , בכרטיסייה פרטים של נכס Dataplex Universal Catalog.
username שם המשתמש שישמש לחיבור JDBC. אפשר להעביר את שם המשתמש כטקסט רגיל או כמחרוזת בקידוד Base64 שמוצפנת על ידי Cloud KMS.
password הסיסמה שתשמש לחיבור JDBC. אפשר להעביר את הסיסמה כטקסט רגיל או כמחרוזת בקידוד Base64 שמוצפנת על ידי Cloud KMS.
outputTable המיקום של הטבלה ב-BigQuery או השם של תיקיית העל ב-Cloud Storage שאליה ייכתבו התוצאות. אם זה מיקום של טבלת BigQuery, הסכימה של הטבלה צריכה להיות זהה לסכימה של שאילתת המקור, והיא צריכה להיות בפורמט some-project-id:somedataset.sometable. אם מדובר בתיקייה עליונה ב-Cloud Storage, צריך לציין את שם התיקייה העליונה.
KMSEncryptionKey אופציונלי: אם מספקים את הפרמטר KMSEncryptionKey, צריך לוודא שהפרמטרים password, username ו-connectionURL מוצפנים על ידי Cloud KMS. הצפנה של הפרמטרים האלה באמצעות נקודת הקצה להצפנה של Cloud KMS API. לדוגמה, projects/your-project/locations/global/keyRings/test/cryptoKeys/quickstart.
writeDisposition אופציונלי: השיטה שבה יש להשתמש אם קובץ או טבלת היעד קיימים. הפורמטים הנתמכים הם WRITE_APPEND (השורות יצורפו אם הטבלה קיימת), WRITE_TRUNCATE (הטבלה או הקובץ יוחלפו), WRITE_EMPTY (טבלת הפלט צריכה להיות ריקה או שקובץ הפלט לא צריך להתקיים) ו-SKIP (המערכת תדלג על כתיבה לקובץ אם הוא קיים). ב-BigQuery, הפורמטים המותרים הם: WRITE_APPEND, WRITE_TRUNCATE, WRITE_EMPTY. ב-Cloud Storage, הפורמטים המותרים הם: SKIP,‏ WRITE_TRUNCATE ו-WRITE_EMPTY. ברירת מחדל: WRITE_EMPTY.
partitioningScheme אופציונלי: סכימת החלוקה למחיצות כשכותבים את הקובץ. ערך ברירת המחדל של הפרמטר הזה הוא DAILY. ערכים אחרים של הפרמטר יכולים להיות MONTHLY או HOURLY.
partitionColumn אופציונלי: עמודת החלוקה שעליה מבוססת החלוקה. הפורמט של סוג העמודה חייב להיות timestamp/date. אם לא מספקים את הפרמטר partitionColumn, הנתונים לא יחולקו למחיצות.
fileFormat אופציונלי: פורמט קובץ הפלט ב-Cloud Storage. הקבצים דחוסים באמצעות הגדרת ברירת המחדל של דחיסת Snappy. ערך ברירת המחדל של הפרמטר הזה הוא PARQUET. ערך נוסף של הפרמטר הוא AVRO.
updateDataplexMetadata

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

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

התכונה נתמכת רק ביעד Cloud Storage.

הפעלת התבנית

המסוף

  1. נכנסים לדף Process של Dataplex Universal Catalog במסוף Google Cloud :

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

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

  3. בקטע Ingest JDBC to Dataplex (הטמעה של JDBC ב-Dataplex), לוחצים על 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_JDBC_Ingestion_Preview \
--parameters \
driverJars=DRIVER_JARS,\
connectionUrl=CONNECTION_URL,\
driverClassName=DRIVER_CLASS_NAME,\
connectionProperties=CONNECTION_PROPERTIES,\
query=QUERY\
outputAsset=OUTPUT_ASSET\

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

JOB_NAME: a job name of your choice
PROJECT_ID: your template project ID
DRIVER_JARS: path to your JDBC drivers
CONNECTION_URL: your JDBC connection URL string
DRIVER_CLASS_NAME: your JDBC driver class name
CONNECTION_PROPERTIES: your JDBC connection property string
QUERY: your JDBC source SQL query
OUTPUT_ASSET: your Dataplex Universal Catalog output asset ID

API ל-REST

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

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/REGION_NAME/flexTemplates:launch
{
   "launch_parameter": {
      "jobName": "JOB_NAME",
      "parameters": {
          "driverJars": "DRIVER_JARS",
          "connectionUrl": "CONNECTION_URL",
          "driverClassName": "DRIVER_CLASS_NAME",
          "connectionProperties": "CONNECTION_PROPERTIES",
          "query": "QUERY"
          "outputAsset": "OUTPUT_ASSET"
      },
      "containerSpecGcsPath": "gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_JDBC_Ingestion_Preview",
   }
}

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

PROJECT_ID: your template project ID
REGION_NAME: region in which to run the job
JOB_NAME: a job name of your choice
DRIVER_JARS: path to your JDBC drivers
CONNECTION_URL: your JDBC connection URL string
DRIVER_CLASS_NAME: your JDBC driver class name
CONNECTION_PROPERTIES: your JDBC connection property string
QUERY: your JDBC source SQL query
OUTPUT_ASSET: your Dataplex Universal Catalog output asset ID

המאמרים הבאים