התבנית SourceDB to Spanner היא צינור להעברת נתונים באצווה שמעתיק נתונים ממסד נתונים רלציוני למסד נתונים קיים ב-Spanner. הצינור הזה משתמש ב-JDBC כדי להתחבר למסד הנתונים הרלציוני. אתם יכולים להשתמש בתבנית הזו כדי להעתיק נתונים מכל מסד נתונים רלציוני עם מנהלי התקנים זמינים של JDBC אל Spanner. הכלי הזה תומך רק בקבוצה מוגבלת של סוגים של MySQL
כדי להוסיף עוד שכבת הגנה, אפשר גם להעביר מפתח Cloud KMS יחד עם פרמטרים של שם משתמש, סיסמה ומחרוזת חיבור בהצפנת Base64, שמוצפנים באמצעות מפתח Cloud KMS. פרטים נוספים על הצפנת שם המשתמש, הסיסמה ופרמטרים של מחרוזת החיבור מופיעים בנקודת הקצה Cloud KMS API encryption.
הדרישות לגבי צינורות עיבוד נתונים
- מנהלי ההתקנים של JDBC למסד הנתונים הרלציוני צריכים להיות זמינים.
- טבלאות Spanner צריכות להתקיים לפני הפעלת צינור הנתונים.
- לטבלאות Spanner צריכה להיות סכימה תואמת.
- צריכה להיות גישה למסד הנתונים הרלציוני מרשת המשנה שבה פועל Dataflow.
פרמטרים של תבניות
| פרמטר | תיאור |
|---|---|
sourceConfigURL |
מחרוזת כתובת ה-URL של חיבור JDBC. לדוגמה,
jdbc:mysql://127.4.5.30:3306/my-db?autoReconnect=true&maxReconnects=10&unicode=true&characterEncoding=UTF-8
או הגדרת השארד. |
instanceId |
מופע היעד של Cloud Spanner. |
databaseId |
מסד הנתונים של Cloud Spanner שמשמש כיעד. |
projectId |
זהו השם של הפרויקט ב-Cloud Spanner. |
outputDirectory |
הספרייה הזו משמשת להעברה של רשומות שנכשלו, שדילגו עליהן או שסוננו במהלך ההעברה. |
jdbcDriverJars |
אופציונלי: רשימת קובצי ה-JAR של מנהלי ההתקנים, מופרדת בפסיקים. לדוגמה:
gs://your-bucket/driver_jar1.jar,gs://your-bucket/driver_jar2.jar. ברירת המחדל היא ריק. |
jdbcDriverClassName |
אופציונלי: שם המחלקה של מנהל ההתקן של JDBC. לדוגמה: com.mysql.jdbc.Driver. ברירת המחדל היא:
com.mysql.jdbc.Driver. |
username |
אופציונלי: שם המשתמש שישמש לחיבור JDBC. ברירת המחדל היא ריק. |
password |
אופציונלי: הסיסמה שתשמש לחיבור JDBC. ברירת המחדל היא ריק. |
tables |
אופציונלי: טבלאות להעברה מהמקור. ברירת המחדל היא ריק. |
numPartitions |
אופציונלי: מספר המחיצות. הערך הזה, יחד עם הגבול התחתון והגבול העליון, יוצר מחיצות של צעדים לביטויים שנוצרים של משפט WHERE
שמשמשים לפיצול שווה של עמודת המחיצה. אם הקלט קטן מ-1, המספר מוגדר כ-1.
ברירת המחדל: 0. |
spannerHost |
אופציונלי: נקודת הקצה של Cloud Spanner שאליה מתקשרים בתבנית. לדוגמה:
https://batch-spanner.googleapis.com. ברירת המחדל היא: https://batch-spanner.googleapis.com. |
maxConnections |
אופציונלי: מגדיר את מאגר חיבורי ה-JDBC בכל עובד עם מספר מקסימלי של חיבורים. כדי לא להגביל את מספר המשתמשים, צריך להזין מספר שלילי. לדוגמה: -1. ברירת המחדל: 0. |
sessionFilePath |
אופציונלי: נתיב הסשן ב-Cloud Storage שמכיל פרטי מיפוי מכלי ההעברה של Spanner. ברירת המחדל היא ריק. |
transformationJarPath |
אופציונלי: מיקום מותאם אישית של קובץ jar ב-Cloud Storage שמכיל את הלוגיקה של טרנספורמציה מותאמת אישית לעיבוד רשומות. ברירת המחדל היא ריק. |
transformationClassName |
אופציונלי: שם מחלקה שמוגדר במלואו ומכיל את הלוגיקה של השינוי המותאם אישית. זהו שדה חובה אם מציינים את transformationJarPath. ברירת המחדל היא ריק. |
transformationCustomParameters |
אופציונלי: מחרוזת שמכילה פרמטרים מותאמים אישית שיועברו למחלקת ההמרה המותאמת אישית. ברירת המחדל היא ריק. |
disabledAlgorithms |
אופציונלי: אלגוריתמים להשבתה, מופרדים בפסיקים. אם הערך הוא none, אף אלגוריתם לא מושבת. חשוב להשתמש בפרמטר הזה בזהירות, כי יכול להיות שיש אלגוריתמים שמושבתים כברירת מחדל בגלל פגיעויות או בעיות בביצועים. לדוגמה:
SSLv3, RC4. |
extraFilesToStage |
אופציונלי: נתיבים של Cloud Storage או סודות של Secret Manager שמופרדים בפסיקים, לקבצים שיועברו לשלב ההכנה בעובד. הקבצים האלה נשמרים בספרייה /extra_files בכל עובד. לדוגמה:
gs://<BUCKET>/file.txt,projects/<PROJECT_ID>/secrets/<SECRET_ID>/versions/<VERSION_ID>. |
הפעלת התבנית
המסוף
- עוברים לדף Dataflow Create job from template (יצירת משימה מתבנית). כניסה לדף Create job from template
- בשדה שם המשימה, מזינים שם ייחודי למשימה.
- אופציונלי: בשדה Regional endpoint (נקודת קצה אזורית), בוחרים ערך מהתפריט הנפתח. אזור ברירת המחדל הוא
us-central1.רשימת האזורים שבהם אפשר להריץ משימת Dataflow מופיעה במאמר מיקומי Dataflow.
- בתפריט הנפתח Dataflow template (תבנית של העברת נתונים), בוחרים באפשרות the Sourcedb to Spanner template.
- בשדות הפרמטרים שמופיעים, מזינים את ערכי הפרמטרים.
- לוחצים על הפעלת העבודה.
CLI של gcloud
במעטפת או בטרמינל, מריצים את התבנית:
gcloud dataflow flex-template run JOB_NAME \ --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/Sourcedb_to_Spanner_Flex \ --project=PROJECT_ID \ --region=REGION_NAME \ --parameters \ sourceConfigURL=SOURCE_CONFIG_URL,\ instanceId=INSTANCE_ID,\ databaseId=DATABASE_ID,\ projectId=PROJECT_ID,\ outputDirectory=OUTPUT_DIRECTORY,\
מחליפים את מה שכתוב בשדות הבאים:
-
JOB_NAME: שם ייחודי של המשימה לפי בחירתכם -
VERSION: הגרסה של התבנית שבה רוצים להשתמשאפשר להשתמש בערכים הבאים:
-
latestכדי להשתמש בגרסה העדכנית של התבנית, שזמינה בתיקיית ההורה ללא תאריך בדלי – gs://dataflow-templates-REGION_NAME/latest/ - שם הגרסה, כמו
2023-09-12-00_RC00, כדי להשתמש בגרסה ספציפית של התבנית, שאפשר למצוא אותה בתיקיית האב המתאימה עם התאריך בדלי – gs://dataflow-templates-REGION_NAME/
-
-
REGION_NAME: האזור שבו רוצים לפרוס את עבודת Dataflow, לדוגמה:us-central1 -
SOURCE_CONFIG_URL: כתובת ה-URL להתחברות למארח של מסד הנתונים של המקור. הערך יכול להיות 1. כתובת ה-URL של חיבור ה-JDBC – חייבת להכיל את המארח, היציאה ושם מסד הנתונים של המקור, ויכולה להכיל מאפיינים כמו autoReconnect, maxReconnects וכו'. פורמט: `jdbc:mysql://{host}:{port}/{dbName}?{parameters}`2. הנתיב להגדרת השארד -
INSTANCE_ID: מזהה המופע של Cloud Spanner. -
DATABASE_ID: מזהה מסד הנתונים ב-Cloud Spanner. -
PROJECT_ID: מזהה הפרויקט ב-Cloud Spanner. -
OUTPUT_DIRECTORY: ספריית הפלט לאירועים שנכשלו, דולגו או סוננו
API
כדי להריץ את התבנית באמצעות API בארכיטקטורת REST, שולחים בקשת HTTP POST. מידע נוסף על ה-API ועל היקפי ההרשאות שלו זמין במאמר projects.templates.launch.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch { "launchParameter": { "jobName": "JOB_NAME", "parameters": { "sourceConfigURL": "SOURCE_CONFIG_URL", "instanceId": "INSTANCE_ID", "databaseId": "DATABASE_ID", "projectId": "PROJECT_ID", "outputDirectory": "OUTPUT_DIRECTORY", }, "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/Sourcedb_to_Spanner_Flex", "environment": { "maxWorkers": "10" } } }
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שבו רוצים להריץ את משימת Dataflow Google Cloud -
JOB_NAME: שם ייחודי של המשימה לפי בחירתכם -
VERSION: הגרסה של התבנית שבה רוצים להשתמשאפשר להשתמש בערכים הבאים:
-
latestכדי להשתמש בגרסה העדכנית של התבנית, שזמינה בתיקיית ההורה ללא תאריך בדלי – gs://dataflow-templates-REGION_NAME/latest/ - שם הגרסה, כמו
2023-09-12-00_RC00, כדי להשתמש בגרסה ספציפית של התבנית, שאפשר למצוא אותה בתיקיית האב המתאימה עם התאריך בדלי – gs://dataflow-templates-REGION_NAME/
-
-
LOCATION: האזור שבו רוצים לפרוס את עבודת Dataflow, לדוגמה:us-central1 -
SOURCE_CONFIG_URL: כתובת ה-URL להתחברות למארח של מסד הנתונים של המקור. הערך יכול להיות 1. כתובת ה-URL של חיבור ה-JDBC – חייבת להכיל את המארח, היציאה ושם מסד הנתונים של המקור, ויכולה להכיל מאפיינים כמו autoReconnect, maxReconnects וכו'. פורמט: `jdbc:mysql://{host}:{port}/{dbName}?{parameters}`2. הנתיב להגדרת השארד -
INSTANCE_ID: מזהה המופע של Cloud Spanner. -
DATABASE_ID: מזהה מסד הנתונים ב-Cloud Spanner. -
PROJECT_ID: מזהה הפרויקט ב-Cloud Spanner. -
OUTPUT_DIRECTORY: ספריית הפלט לאירועים שנכשלו, דולגו או סוננו