העברת סכימה ונתונים מ-Teradata

השילוב של שירות העברת הנתונים ל-BigQuery עם סוכן מיגרציה מיוחד מאפשר להעתיק נתונים ממופע של מחסן נתונים (data warehouse) מקומי של Teradata ל-BigQuery. במאמר הזה מתואר תהליך העברת הנתונים מ-Teradata באמצעות שירות העברת הנתונים ל-BigQuery.

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

  1. In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Cloud de Confiance project.

  3. Enable the BigQuery, BigQuery Data Transfer Service, Cloud Storage, and Pub/Sub APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  4. Create a service account:

    1. Ensure that you have the Create Service Accounts IAM role (roles/iam.serviceAccountCreator) and the Project IAM Admin role (roles/resourcemanager.projectIamAdmin). Learn how to grant roles.
    2. In the Cloud de Confiance console, go to the Create service account page.

      Go to Create service account
    3. Select your project.
    4. In the Service account name field, enter a name. The Cloud de Confiance console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    5. Click Create and continue.
    6. Grant the following roles to the service account: roles/bigquery.user, roles/storage.objectAdmin, roles/iam.serviceAccountTokenCreator.

      To grant a role, find the Select a role list, then select the role.

      To grant additional roles, click Add another role and add each additional role.

    7. Click Continue.
    8. Click Done to finish creating the service account.

      Do not close your browser window. You will use it in the next step.

  5. Create a service account key:

    1. In the Cloud de Confiance console, click the email address for the service account that you created.
    2. Click Keys.
    3. Click Add key, and then click Create new key.
    4. Click Create. A JSON key file is downloaded to your computer.
    5. Click Close.

הגדרת ההרשאות הנדרשות

מוודאים שלחשבון המשתמש שיוצר את ההעברה יש את התפקידים הבאים בפרויקט שמכיל את משימת ההעברה:

  • כלי לצפייה ביומנים (roles/logging.viewer)
  • התפקיד Storage Admin ‏ (roles/storage.admin) או תפקיד בהתאמה אישית שכולל את ההרשאות הבאות:
    • storage.objects.create
    • storage.objects.get
    • storage.objects.list
  • תפקיד אדמין ב-BigQuery‏ (roles/bigquery.admin) או תפקיד מותאם אישית שמעניק את ההרשאות הבאות:
    • bigquery.datasets.create
    • bigquery.jobs.create
    • bigquery.jobs.get
    • bigquery.jobs.listAll
    • bigquery.tables.get
    • bigquery.transfers.get
    • bigquery.transfers.update

יצירת מערך נתונים

יוצרים מערך נתונים ב-BigQuery לאחסון הנתונים. אין צורך ליצור טבלאות.

יצירת קטגוריה של Cloud Storage

יוצרים קטגוריה של Cloud Storage לאחסון זמני של הנתונים במהלך העברת העבודה.

הכנת הסביבה המקומית

כדי להכין את הסביבה המקומית לעבודת ההעברה, צריך להשלים את המשימות שמפורטות בקטע הזה.

דרישות לגבי המחשב המקומי

  • סוכן ההעברה משתמש בחיבור JDBC עם מופע Teradata ועם ממשקי API. Cloud de Confiance by S3NS מוודאים שחומת אש לא חוסמת את הגישה לרשת.
  • מוודאים שמותקנת סביבת זמן ריצה של Java 8 ואילך.
  • חשוב לוודא שיש לכם מספיק נפח אחסון לשיטת החילוץ שבחרתם, כפי שמתואר בקטע שיטת החילוץ.
  • אם החלטתם להשתמש בחילוץ Teradata Parallel Transporter ‏ (TPT), ודאו שכלי השירות tbuild מותקן. מידע נוסף על בחירת שיטת חילוץ זמין במאמר שיטת חילוץ.

פרטי הקישור ל-Teradata

  • מוודאים שיש לכם את שם המשתמש והסיסמה של משתמש Teradata עם גישת קריאה לטבלאות המערכת ולטבלאות שמועברות.

  • חשוב לוודא שאתם יודעים את שם המארח ואת מספר היציאה כדי להתחבר למופע Teradata.

הורדת מנהל ההתקן JDBC

מורידים את קובץ מנהל ההתקן של JDBC‏ terajdbc4.jar מ-Teradata למחשב שאפשר להתחבר למחסן הנתונים.

הגדרת המשתנה GOOGLE_APPLICATION_CREDENTIALS

מגדירים את משתנה הסביבה GOOGLE_APPLICATION_CREDENTIALS למפתח של חשבון השירות שהורדתם בקטע לפני שמתחילים.

עדכון כלל היציאה ב-VPC Service Controls

מוסיפים את הפרויקט המנוהל של שירות העברת הנתונים ל-BigQuery שמתאים לאזור שלכם לכלל התעבורה היוצאת בהיקף של VPC Service Controls. Cloud de Confiance by S3NS

בטבלה הבאה מופיעה רשימה של מספרי פרויקטים למיקומים אזוריים שמשמשים להעברות נתונים. מוסיפים את מספרי הפרויקטים שמתאימים למיקום של מערך הנתונים.

מיקומים במספר אזורים

תיאור של המיקום 'במספר אזורים' השם של המיקום 'במספר אזורים' מספרי פרויקטים
מרכזי נתונים במדינות החברות באיחוד האירופי eu 17253722542
272853474138
420718595790
929473878322
990232121269
מרכזי נתונים בארצות הברית us 1005756709729
140222280645
247872939591
312976397333
521896999118
525821192359
892499355189
949134172629
990232121269

מיקומים אזוריים

תיאור האזור שם האזור מספרי פרויקטים
אמריקה
מונטריאול northamerica-northeast1 603911341430
644379120249
665941355665
743643531530
990232121269
טורונטו northamerica-northeast2 181203883014
569023246094
814935732186
833015518790
990232121269
מקסיקו northamerica-south1 439376105624
737643102222
746316165749
863053761002
990232121269
סאו פאולו southamerica-east1 133435938206
376122552368
485381725001
796391836836
990232121269
סנטיאגו southamerica-west1 1087357303029
348543783783
659924941015
862900136725
990232121269
איווה us-central1 298453567688
788415223852
850878823175
986263347210
990232121269
דרום קרוליינה us-east1 1055108947046
1084124504460
335013112247
724101498857
990232121269
צפון וירג'יניה us-east4 1029854080039
517474920593
970314007431
98298633330
990232121269
קולומבוס, אוהיו us-east5 1018267783826
386306739011
420397636038
778968775575
990232121269
דאלאס us-south1 1000457898916
1047122215716
241710172671
955278753983
990232121269
אורגון us-west1 232019391832
341405773774
376906440760
477215631937
990232121269
לוס אנג'לס us-west2 1082081077124
593499865061
796558996990
812061960238
990232121269
סולט לייק סיטי us-west3 34769458069
488393466740
870087576864
878441810105
990232121269
לאס וגאס us-west4 219770299440
421529192039
516260452158
653925368482
990232121269
אירופה
ורשה europe-central2 408105394529
556626738827
613447812609
875068591969
990232121269
פינלנד europe-north1 1049140453480
148002628360
610856287987
657186468367
990232121269
שטוקהולם europe-north2 264708615094
275871864623
353052212156
915614473443
990232121269
מדריד europe-southwest1 1035291313153
1048466610864
16585749286
684773867031
990232121269
בלגיה europe-west1 311010690362
337985836396
348525528820
874692481832
990232121269
ברלין europe-west10 1014021387408
1021109191575
1076988971454
965306537493
990232121269
טורינו europe-west12 624998300135
664251133452
672417986210
702529954322
990232121269
לונדון europe-west2 1013046052024
424062913611
625972158490
707263280432
990232121269
פרנקפורט europe-west3 1087781646048
143240061766
312688138599
715827071311
990232121269
הולנד europe-west4 110044889848
398757511504
557234723212
769143166592
990232121269
ציריך europe-west6 163551586425
378713015688
416925392034
669890417706
990232121269
מילאנו europe-west8 103481800693
1082157965924
23655501621
555661886352
990232121269
פריז europe-west9 1085882338778
176207547936
221990904254
670920836007
990232121269
אסיה ואזור האוקיינוס השקט
טייוואן asia-east1 21873972082
271898158674
389278959284
922460772707
990232121269
הונג קונג asia-east2 263483805684
773980783174
865347783058
90665746791
990232121269
טוקיו asia-northeast1 415417931028
53965067050
953665196151
983967577764
990232121269
אוסקה asia-northeast2 205726704771
478186599828
57312416489
861476638029
990232121269
סיאול asia-northeast3 320159292295
548035635347
791473645597
935702892639
990232121269
מומבאי asia-south1 13592990997
229940966341
68960523189
901420668689
990232121269
דלהי asia-south2 496191507005
54806403576
741779061357
809478923584
990232121269
סינגפור asia-southeast1 541653567103
60558171982
753901882843
944188302893
990232121269
ג'קארטה asia-southeast2 1074047252998
17464964742
271871433529
427023413305
990232121269
בנגקוק asia-southeast3 1020436856624
355273974477
603543103680
777922772431
990232121269
סידני australia-southeast1 163046745040
591848239128
623326425100
814418810594
990232121269
מלבורן australia-southeast2 1062391852597
441829466914
714897033691
748594785463
990232121269
המזרח התיכון
דוחה me-central1 260539430499
380691191456
707684919235
799708208022
990232121269
דמאם me-central2 1067269861014
364585730608
702115426609
932431265647
990232121269
תל אביב me-west1 356023739839
748664533815
869899828196
940471234508
990232121269
אפריקה
יוהנסבורג africa-south1 366497204741
900693348777
930834390708
990232121269
995904484959
אחר
‫AWS ap-northeast-2 aws-ap-northeast-2 118757274428
227045504542
31525566793
415505940944
990232121269
AWS ap-southeast-2 aws-ap-southeast-2 179772227799
236687515237
779037664799
925378406445
990232121269
‫AWS eu-central-1 aws-eu-central-1 469423327197
5211207427
905007897524
989902812500
990232121269
‫AWS eu-west-1 aws-eu-west-1 477582827438
653238211450
795832028199
961178626984
990232121269
‫AWS us-east-1 aws-us-east-1 1005783963369
293187121246
622189180485
78860240845
990232121269
‫AWS us-west-2 aws-us-west-2 206681800614
264089603202
419256100048
79353630998
990232121269
Azure eastus2 azure-eastus2 1021739993926
1054000274357
495696597482
590387575526
990232121269
Azure westus2 azure-westus2 118244543872
242088193076
278777007439
662989519829
990232121269
מיקום פנימי בלבד (europe-west15) europe-west15 1075380375245
635354739083
663432613496
904125362271
990232121269
מיקום פנימי בלבד (us-central2) us-central2 1085843140251
269725830808
498892726043
68311303080
990232121269
מיקום פנימי בלבד (us-east7) us-east7 173063949542
661852837608
704905947583
956740768291
990232121269
מיקום סינתטי (us-synthetic1) us-synthetic1 131957618958
250975404179
740244847288
787843086952
990232121269
מיקום פנימי בלבד (us-west8) us-west8 13105749132
248649202605
477355088721
653053504449
990232121269

ערוץ התקשורת בין הסוכן שפועל בשרת מקומי לבין שירות העברת הנתונים ל-BigQuery הוא פרסום הודעות Pub/Sub בנושא של כל העברה. שירות העברת הנתונים ל-BigQuery צריך לשלוח פקודות לסוכן כדי לחלץ נתונים, והסוכן צריך לפרסם הודעות בחזרה לשירות העברת הנתונים ל-BigQuery כדי לעדכן את הסטטוס ולהחזיר תגובות לחילוץ נתונים.

יצירת קובץ סכימה בהתאמה אישית

כדי להשתמש בקובץ סכימה בהתאמה אישית במקום בזיהוי סכימה אוטומטי, צריך ליצור קובץ כזה באופן ידני או לבקש מסוכן ההעברה ליצור אותו בשבילכם כשמפעילים את הסוכן.

אם אתם יוצרים קובץ סכימה באופן ידני ומתכוונים להשתמש במסוף Cloud de Confiance כדי ליצור העברה, אתם צריכים להעלות את קובץ הסכימה לקטגוריה של Cloud Storage באותו פרויקט שבו אתם מתכננים להשתמש להעברה.

הורדת סוכן ההעברה

מורידים את סוכן המיגרציה למכונה שיכולה להתחבר למחסן הנתונים. מעבירים את קובץ ה-JAR של סוכן המיגרציה לאותה ספרייה שבה נמצא קובץ ה-JAR של מנהל ההתקן Teradata JDBC.

הגדרת קובץ פרטי כניסה למודול גישה

אם אתם משתמשים במודול הגישה ל-Cloud Storage עם כלי Teradata Parallel Transporter‏ (TPT) לחילוץ, נדרש קובץ אישורים.

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

  • client_email
  • private_key : מעתיקים את כל התווים שבין -----BEGIN PRIVATE KEY----- ל------END PRIVATE KEY-----, כולל כל התווים /n, בלי המירכאות הכפולות שמקיפות אותם.

אחרי שמשיגים את המידע הנדרש, יוצרים קובץ פרטי כניסה. דוגמה לקובץ פרטי כניסה עם מיקום ברירת מחדל של $HOME/.gcs/credentials:

[default]
gcs_access_key_id = ACCESS_ID
gcs_secret_access_key = ACCESS_KEY

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

  • ACCESS_ID: מזהה מפתח הגישה או הערך client_email בקובץ המפתח של חשבון השירות.
  • ACCESS_KEY: מפתח הגישה הסודי, או הערך private_key בקובץ המפתח של חשבון השירות.

הגדרת העברה

יוצרים העברה באמצעות שירות העברת הנתונים ל-BigQuery.

אם רוצים שקובץ סכימה מותאם אישית ייווצר באופן אוטומטי, צריך להשתמש בסוכן ההעברה כדי להגדיר את ההעברה.

אי אפשר ליצור העברה על פי דרישה באמצעות כלי שורת הפקודה bq. במקום זאת, צריך להשתמש ב Cloud de Confiance מסוף או ב-BigQuery Data Transfer Service API.

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

המסוף

  1. במסוף Cloud de Confiance , עוברים לדף BigQuery.

    לדף BigQuery

  2. לוחצים על העברות נתונים.

  3. לוחצים על יצירת העברה.

  4. בקטע Source type (סוג המקור), מבצעים את הפעולות הבאות:

    • בוחרים באפשרות העברה: Teradata.
    • בשדה שם הגדרת ההעברה, מזינים שם לתצוגה של ההעברה, כמו My Migration. השם לתצוגה יכול להיות כל ערך שיאפשר לכם לזהות את ההעברה אם תצטרכו לשנות אותה בהמשך.
    • אופציונלי: בשדה Schedule options (אפשרויות תזמון), אפשר להשאיר את ערך ברירת המחדל Daily (יומי) (על סמך שעת היצירה) או לבחור שעה אחרת אם רוצים העברה חוזרת מצטברת. אחרת, בוחרים באפשרות על פי דרישה להעברה חד-פעמית.
    • בהגדרות היעד, בוחרים את קבוצת הנתונים המתאימה.

      העברה חדשה של Teradata באופן כללי.

  5. בקטע פרטים על מקור הנתונים, ממשיכים עם פרטים ספציפיים להעברה מ-Teradata.

    • בקטע Database type (סוג מסד הנתונים), בוחרים באפשרות Teradata.
    • בשדה Cloud Storage bucket (קטגוריה של Cloud Storage), מחפשים את השם של קטגוריית Cloud Storage שבה מאחסנים את נתוני המיגרציה. לא מקלידים את הקידומת gs:// – מזינים רק את שם הקטגוריה.
    • בשדה שם מסד הנתונים, מזינים את השם של מסד הנתונים של המקור ב-Teradata.
    • בשדה Table name patterns (תבניות של שמות טבלאות), מזינים תבנית להתאמת שמות הטבלאות במסד הנתונים של המקור. אפשר להשתמש בביטויים רגולריים כדי לציין את התבנית. לדוגמה:

      • sales|expenses תואם לטבלאות שנקראות sales ו-expenses.
      • .* matches all tables.
    • בשדה כתובת האימייל בחשבון השירות, מזינים את כתובת האימייל שמשויכת לפרטי הכניסה של חשבון השירות שבהם סוכן ההעברה משתמש.

    • אופציונלי: בשדה נתיב לקובץ סכימה, מזינים את הנתיב ואת שם הקובץ של קובץ סכימה מותאם אישית. מידע נוסף על יצירת קובץ סכימה בהתאמה אישית זמין במאמר קובץ סכימה בהתאמה אישית. אפשר להשאיר את השדה הזה ריק כדי ש-BigQuery יזהה אוטומטית את סכימת טבלת המקור.

    • אופציונלי: בשדה ספריית הבסיס של פלט התרגום, מזינים את הנתיב ואת שם הקובץ של קובץ מיפוי הסכימה שסופק על ידי מנוע התרגום של BigQuery. מידע נוסף על יצירת קובץ מיפוי סכימה זמין במאמר שימוש בפלט של מנוע התרגום לסכימה (גרסת Preview). אפשר להשאיר את השדה הזה ריק כדי ש-BigQuery יזהה אוטומטית את סכימת טבלת המקור.

    • אופציונלי: כדי להפעיל את העלאה ישירה ל-GCS, מסמנים את תיבת הסימון כדי להפעיל את מודול הגישה ל-Cloud Storage.

  6. בתפריט Service Account, בוחרים חשבון שירות מתוך חשבונות השירות שמשויכים לCloud de Confiance פרויקט. אפשר לשייך חשבון שירות להעברה במקום להשתמש בפרטי הכניסה של המשתמש. מידע נוסף על שימוש בחשבונות שירות בהעברות נתונים זמין במאמר שימוש בחשבונות שירות.

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

    • אם רוצים שהאדמין של ההעברה יקבל התראה באימייל כשהרצת ההעברה נכשלת, לוחצים על המתג התראות באימייל.
    • לוחצים על המתג התראות Pub/Sub כדי להגדיר התראות על הפעלת Pub/Sub להעברה. בקטע Select a Pub/Sub topic, בוחרים את שם הנושא או לוחצים על Create a topic.
  8. לוחצים על Save.

  9. בדף פרטי ההעברה, לוחצים על הכרטיסייה הגדרה.

  10. חשוב לשים לב לשם המשאב של ההעברה הזו, כי תצטרכו אותו כדי להפעיל את סוכן ההעברה.

BQ

כשיוצרים העברה של Cloud Storage באמצעות הכלי bq, הגדרת ההעברה מוגדרת לחזרה כל 24 שעות. להעברות על פי דרישה, משתמשים במסוף Cloud de Confiance או בממשק ה-API של שירות העברת נתונים ל-BigQuery.

אי אפשר להגדיר התראות באמצעות הכלי bq.

מזינים את הפקודה bq mk ומספקים את הדגל ליצירת העברה --transfer_config. נדרשים גם הדגלים הבאים:

  • --data_source
  • --display_name
  • --target_dataset
  • --params
bq mk \
--transfer_config \
--project_id=project ID \
--target_dataset=dataset \
--display_name=name \
--service_account_name=service_account \
--params='parameters' \
--data_source=data source

כאשר:

  • project ID הוא מזהה הפרויקט. אם לא מציינים את --project_id כדי לציין פרויקט מסוים, המערכת משתמשת בפרויקט ברירת המחדל.
  • dataset הוא מערך הנתונים שרוצים לטרגט (--target_dataset) בהגדרת ההעברה.
  • name הוא השם לתצוגה (--display_name) של הגדרת ההעברה. השם לתצוגה של ההעברה יכול להיות כל ערך שיאפשר לכם לזהות את ההעברה אם תצטרכו לשנות אותה בהמשך.
  • service_account הוא שם חשבון השירות שמשמש לאימות ההעברה. חשבון השירות צריך להיות בבעלות אותו project_id ששימש ליצירת ההעברה, וצריכות להיות לו כל ההרשאות הנדרשות שמופיעות ברשימה.
  • parameters מכיל את הפרמטרים (--params) של הגדרת ההעברה שנוצרה בפורמט JSON. לדוגמה: --params='{"param":"param_value"}'.
    • בהעברות של Teradata, משתמשים בפרמטרים הבאים:
      • bucket היא קטגוריה של Cloud Storage שתשמש כאזור זמני במהלך המיגרציה.
      • database_type הוא Teradata.
      • agent_service_account היא כתובת האימייל שמשויכת לחשבון השירות שיצרתם.
      • database_name הוא השם של מסד הנתונים של המקור ב-Teradata.
      • table_name_patterns הוא תבנית או תבניות להתאמת שמות הטבלאות במסד הנתונים של המקור. אפשר להשתמש בביטויים רגולריים כדי לציין את התבנית. הדפוס צריך להתאים לתחביר של ביטוי רגולרי ב-Java. לדוגמה:
        • sales|expenses תואם לטבלאות שנקראות sales ו-expenses.
        • .* matches all tables.
      • is_direct_gcs_unload_enabled הוא דגל בוליאני להפעלת פריקה ישירה ל-Cloud Storage.
  • data_source הוא מקור הנתונים (--data_source): on_premises.

לדוגמה, הפקודה הבאה יוצרת העברה של Teradata בשם My Transfer באמצעות קטגוריה של Cloud Storage‏ mybucket וקבוצת נתונים של יעד mydataset. במהלך ההעברה, כל הטבלאות ממחסן הנתונים של Teradata‏ mydatabase יועברו, וקובץ הסכימה האופציונלי הוא myschemafile.json.

bq mk \
--transfer_config \
--project_id=123456789876 \
--target_dataset=MyDataset \
--display_name='My Migration' \
--params='{"bucket": "mybucket", "database_type": "Teradata",
"database_name":"mydatabase", "table_name_patterns": ".*",
"agent_service_account":"myemail@mydomain.com", "schema_file_path":
"gs://mybucket/myschemafile.json", "is_direct_gcs_unload_enabled": true}' \
--data_source=on_premises

אחרי הרצת הפקודה, תקבלו הודעה כמו זו:

[URL omitted] Please copy and paste the above URL into your web browser and follow the instructions to retrieve an authentication code.

פועלים לפי ההוראות ומדביקים את קוד האימות בשורת הפקודה.

API

משתמשים בשיטה projects.locations.transferConfigs.create ומספקים מופע של המשאב TransferConfig.

Java

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.CreateTransferConfigRequest;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ProjectName;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.protobuf.Struct;
import com.google.protobuf.Value;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

// Sample to create a teradata transfer config.
public class CreateTeradataTransfer {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    final String projectId = "MY_PROJECT_ID";
    String datasetId = "MY_DATASET_ID";
    String databaseType = "Teradata";
    String bucket = "cloud-sample-data";
    String databaseName = "MY_DATABASE_NAME";
    String tableNamePatterns = "*";
    String serviceAccount = "MY_SERVICE_ACCOUNT";
    String schemaFilePath = "/your-schema-path";
    Map<String, Value> params = new HashMap<>();
    params.put("database_type", Value.newBuilder().setStringValue(databaseType).build());
    params.put("bucket", Value.newBuilder().setStringValue(bucket).build());
    params.put("database_name", Value.newBuilder().setStringValue(databaseName).build());
    params.put("table_name_patterns", Value.newBuilder().setStringValue(tableNamePatterns).build());
    params.put("agent_service_account", Value.newBuilder().setStringValue(serviceAccount).build());
    params.put("schema_file_path", Value.newBuilder().setStringValue(schemaFilePath).build());
    TransferConfig transferConfig =
        TransferConfig.newBuilder()
            .setDestinationDatasetId(datasetId)
            .setDisplayName("Your Teradata Config Name")
            .setDataSourceId("on_premises")
            .setParams(Struct.newBuilder().putAllFields(params).build())
            .setSchedule("every 24 hours")
            .build();
    createTeradataTransfer(projectId, transferConfig);
  }

  public static void createTeradataTransfer(String projectId, TransferConfig transferConfig)
      throws IOException {
    try (DataTransferServiceClient client = DataTransferServiceClient.create()) {
      ProjectName parent = ProjectName.of(projectId);
      CreateTransferConfigRequest request =
          CreateTransferConfigRequest.newBuilder()
              .setParent(parent.toString())
              .setTransferConfig(transferConfig)
              .build();
      TransferConfig config = client.createTransferConfig(request);
      System.out.println("Cloud teradata transfer created successfully :" + config.getName());
    } catch (ApiException ex) {
      System.out.print("Cloud teradata transfer was not created." + ex.toString());
    }
  }
}

סוכן העברה

אפשר גם להגדיר את ההעברה ישירות מסוכן ההעברה. מידע נוסף זמין במאמר בנושא הפעלת סוכן ההעברה.

הפעלת סוכן ההעברה

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

אם אתם מתכוונים להשתמש בסוכן ההעברה כדי ליצור קובץ סכמה בהתאמה אישית, ודאו שיש לכם ספרייה עם הרשאת כתיבה בספריית העבודה, עם אותו שם של הפרויקט שבו אתם רוצים להשתמש להעברה. כאן סוכן ההעברה יוצר את קובץ הסכימה. לדוגמה, אם אתם עובדים ב-/home ומגדירים את ההעברה בפרויקט myProject, צריך ליצור את הספרייה /home/myProject ולוודא שהמשתמשים יכולים לכתוב בה.

  1. פותחים סשן חדש. בשורת הפקודה, מריצים את פקודת האתחול, שמופיעה בפורמט הבא:

    java -cp \
    OS-specific-separated-paths-to-jars (JDBC and agent) \
    com.google.cloud.bigquery.dms.Agent \
    --initialize

    בדוגמה הבאה מוצגת פקודת האתחול כשקובצי ה-JAR של מנהל ההעברה ושל מנהל ה-JDBC נמצאים בספרייה מקומית migration:

    Unix, ‏ Linux, ‏ Mac OS

    java -cp \
    /usr/local/migration/terajdbc4.jar:/usr/local/migration/mirroring-agent.jar \
    com.google.cloud.bigquery.dms.Agent \
    --initialize

    Windows

    מעתינים את כל הקבצים לתיקייה C:\migration (או משנים את הנתיבים בפקודה), ואז מריצים את הפקודה:

    java -cp C:\migration\terajdbc4.jar;C:\migration\mirroring-agent.jar com.google.cloud.bigquery.dms.Agent --initialize
  2. כשמוצגת ההודעה, מגדירים את האפשרויות הבאות:

    1. בוחרים אם לשמור את תבנית Teradata Parallel Transporter ‏ (TPT) בדיסק. אם אתם מתכננים להשתמש בשיטת החילוץ TPT, אתם יכולים לשנות את התבנית השמורה באמצעות פרמטרים שמתאימים למופע Teradata שלכם.
    2. מקלידים את הנתיב לספרייה מקומית שעבודת ההעברה יכולה להשתמש בה לחילוץ קבצים. מוודאים שיש לכם את נפח האחסון המינימלי המומלץ, כפי שמתואר במאמר בנושא שיטת חילוץ.
    3. מקלידים את שם המארח של מסד הנתונים.
    4. מקלידים את יציאת מסד הנתונים.
    5. בוחרים אם להשתמש ב-Teradata Parallel Transporter ‏ (TPT) כשיטת החילוץ.
    6. אופציונלי: מקלידים את הנתיב לקובץ פרטי הכניסה למסד נתונים.
    7. בוחרים אם לציין שם של הגדרה בשירות העברת נתונים ל-BigQuery.

      אם אתם מאתחלים את סוכן ההעברה להעברה שכבר הגדרתם, אתם צריכים לעשות את הפעולות הבאות:

      1. מקלידים את שם המשאב של ההעברה. אפשר למצוא את זה בכרטיסייה הגדרה בדף פרטי ההעברה של ההעברה.
      2. כשמוצגת בקשה, מקלידים נתיב ושם קובץ לקובץ התצורה של סוכן ההעברה שייווצר. מתייחסים לקובץ הזה כשמריצים את סוכן ההעברה כדי להתחיל את ההעברה.
      3. מדלגים על השלבים הנותרים.

      אם אתם משתמשים בסוכן ההעברה כדי להגדיר העברה, מקישים על Enter כדי לדלג להנחיה הבאה.

    8. מקלידים את Cloud de Confiance by S3NS מזהה הפרויקט.

    9. מקלידים את השם של מסד הנתונים של המקור ב-Teradata.

    10. מקלידים תבנית להתאמת שמות הטבלאות במסד הנתונים של המקור. אפשר להשתמש בביטויים רגולריים כדי לציין את התבנית. לדוגמה:

      • sales|expenses תואם לטבלאות שנקראות sales ו-expenses.
      • .* matches all tables.
    11. אופציונלי: מקלידים את הנתיב לקובץ סכימת JSON מקומי. מומלץ מאוד להשתמש באפשרות הזו להעברות חוזרות.

      אם אתם לא משתמשים בקובץ סכימה, או אם אתם רוצים שהכלי להעברת נתונים ייצור קובץ כזה בשבילכם, מקישים על Enter כדי לדלג להנחיה הבאה.

    12. בוחרים אם ליצור קובץ סכימה חדש.

      אם אתם רוצים ליצור קובץ סכימה:

      1. מקלידים yes.
      2. מקלידים את שם המשתמש של משתמש Teradata שיש לו גישת קריאה לטבלאות המערכת ולטבלאות שרוצים להעביר.
      3. מקלידים את הסיסמה של המשתמש.

        סוכן ההעברה יוצר את קובץ הסכימה ומציג את המיקום שלו.

      4. משנים את קובץ הסכימה כדי לסמן את העמודות של חלוקה למחיצות, אשכולות, מפתחות ראשיים ומעקב אחר שינויים, ומוודאים שרוצים להשתמש בסכימה הזו להגדרת ההעברה. אפשר לקבל טיפים במאמר בנושא קובץ סכימה בהתאמה אישית.

      5. לוחצים על Enter כדי לדלג להנחיה הבאה.

      אם לא רוצים ליצור קובץ סכימה, מקלידים no.

    13. מקלידים את השם של קטגוריית היעד ב-Cloud Storage לאחסון זמני של נתוני ההעברה לפני הטעינה ל-BigQuery. אם סוכן ההעברה יצר קובץ סכימה בהתאמה אישית, הוא גם מועלה לקטגוריה הזו.

    14. מקלידים את השם של מערך הנתונים ביעד ב-BigQuery.

    15. מקלידים שם מוצג להגדרת ההעברה.

    16. מקלידים נתיב ושם קובץ לקובץ התצורה של סוכן ההעברה שייווצר.

  3. אחרי שמזינים את כל הפרמטרים הנדרשים, סוכן ההעברה יוצר קובץ הגדרות ומייצא אותו לנתיב המקומי שצוין. בסעיף הבא מוסבר על קובץ ההגדרות.

קובץ תצורה לסוכן ההעברה

קובץ התצורה שנוצר בשלב ההפעלה נראה כך:


{
  "agent-id": "81f452cd-c931-426c-a0de-c62f726f6a6f",
  "transfer-configuration": {
    "project-id": "123456789876",
    "location": "us",
    "id": "61d7ab69-0000-2f6c-9b6c-14c14ef21038"
  },
  "source-type": "teradata",
  "console-log": false,
  "silent": false,
  "teradata-config": {
    "connection": {
      "host": "localhost"
    },
    "local-processing-space": "extracted",
    "database-credentials-file-path": "",
    "max-local-storage": "50GB",
    "gcs-upload-chunk-size": "32MB",
    "use-tpt": true,
    "transfer-views": false,
    "max-sessions": 0,
    "spool-mode": "NoSpool",
    "max-parallel-upload": 4,
    "max-parallel-extract-threads": 1,
    "session-charset": "UTF8",
    "max-unload-file-size": "2GB"
  }
}
   

אפשרויות של משימת העברה בקובץ ההגדרות של סוכן ההעברה

  • transfer-configuration: מידע על הגדרת ההעברה הזו ב-BigQuery.
  • teradata-config: מידע שספציפי לחילוץ הזה של Teradata:

    • connection: מידע על שם המארח והיציאה
    • local-processing-space: תיקיית החילוץ שאליה הסוכן יחלץ את נתוני הטבלה לפני שיעלה אותם ל-Cloud Storage.
    • database-credentials-file-path: (אופציונלי) הנתיב לקובץ שמכיל פרטי כניסה להתחברות אוטומטית למסד הנתונים של Teradata. הקובץ צריך להכיל שתי שורות של פרטי הכניסה. אפשר להשתמש בשם משתמש ובסיסמה, כמו בדוגמה הבאה:
      username=abc
      password=123
      אפשר גם להשתמש בסוד מ-SecretManager במקום זאת:
      username=abc
      secret_resource_id=projects/my-project/secrets/my-secret-name/versions/1
      כשמשתמשים בקובץ פרטי כניסה, חשוב לשלוט בגישה לתיקייה שבה מאחסנים אותו במערכת הקבצים המקומית, כי הוא לא מוצפן. אם לא מספקים נתיב, תתבקשו להזין שם משתמש וסיסמה כשמפעילים סוכן.
    • max-local-storage: נפח האחסון המקומי המקסימלי לשימוש בחילוץ בספריית ההכנה שצוינה. ערך ברירת המחדל הוא 50GB. הפורמט הנתמך הוא: numberKB|MB|GB|TB.

      בכל מצבי החילוץ, הקבצים נמחקים מהספרייה המקומית הזמנית אחרי שהם מועלים ל-Cloud Storage.

    • use-tpt: מכוון את סוכן ההעברה להשתמש ב-Teradata Parallel Transporter ‏ (TPT) כשיטת חילוץ.

      עבור כל טבלה, סוכן ההעברה יוצר סקריפט TPT, מתחיל תהליך tbuild וממתין לסיום. אחרי שהתהליך tbuild מסתיים, הסוכן מפרט את הקבצים שחולצו ומעלה אותם ל-Cloud Storage, ואז מוחק את סקריפט ה-TPT. מידע נוסף זמין במאמר בנושא שיטת החילוץ.

    • transfer-views: מכוון את סוכן ההעברה להעביר גם נתונים מתצוגות. משתמשים באפשרות הזו רק אם רוצים להתאים אישית את הנתונים במהלך ההעברה. במקרים אחרים, אפשר להעביר את התצוגות לתצוגות ב-BigQuery. כדי להשתמש באפשרות הזו, צריכים להתקיים התנאים הבאים:

      • אפשר להשתמש באפשרות הזו רק ב-Teradata מגרסה 16.10 ומעלה.
      • לתצוגה צריכה להיות מוגדרת עמודה של מספרים שלמים בשם partition, שמצביעה על מזהה של חלוקה למחיצות עבור השורה הנתונה בטבלה הבסיסית.
    • max-sessions: מציין את המספר המקסימלי של סשנים שמשמשים את עבודת החילוץ (FastExport או TPT). אם הערך הוא 0, מסד הנתונים של Teradata יקבע את המספר המקסימלי של סשנים לכל משימת חילוץ.

    • gcs-upload-chunk-size: קובץ גדול מועלה ל-Cloud Storage במקטעים. הפרמטר הזה, יחד עם max-parallel-upload, משמשים לקביעת כמות הנתונים שמועלים ל-Cloud Storage בו-זמנית. לדוגמה, אם gcs-upload-chunk-size הוא 64MB ו-max-parallel-upload הוא 10MB, אז באופן תיאורטי סוכן העברה יכול להעלות 640MB ‏ (64MB * 10) של נתונים בו-זמנית. אם העלאת המקטע נכשלת, צריך לנסות שוב להעלות את המקטע כולו. גודל המקטע צריך להיות קטן.

    • max-parallel-upload: הערך הזה קובע את המספר המקסימלי של השרשורים שסוכן ההעברה משתמש בהם כדי להעלות קבצים ל-Cloud Storage. אם לא מציינים ערך, ברירת המחדל היא מספר המעבדים שזמינים למכונה הווירטואלית של Java. הכלל הכללי הוא לבחור את הערך לפי מספר ליבות המעבד במחשב שבו פועל הסוכן. לכן, אם יש לכם n ליבות, מספר השרשורים האופטימלי צריך להיות n. אם הליבות הן hyper-threaded, המספר האופטימלי צריך להיות (2 * n). יש גם הגדרות אחרות, כמו רוחב פס ברשת, שצריך לקחת בחשבון כשמשנים את max-parallel-upload. שינוי הפרמטר הזה יכול לשפר את הביצועים של ההעלאה ל-Cloud Storage.

    • spool-mode: ברוב המקרים, מצב NoSpool הוא האפשרות הטובה ביותר. ‫NoSpool הוא ערך ברירת המחדל בהגדרת הסוכן. אפשר לשנות את הפרמטר הזה אם אחד מהחסרונות של NoSpool רלוונטי למקרה שלכם.

    • max-unload-file-size: קובע את הגודל המקסימלי של קובץ שחולץ. הפרמטר הזה לא נאכף בחילוצים של TPT.

    • max-parallel-extract-threads: ההגדרה הזו משמשת רק במצב FastExport. הוא קובע את מספר התהליכונים המקבילים שמשמשים לחילוץ הנתונים מ-Teradata. שינוי הפרמטר הזה יכול לשפר את הביצועים של החילוץ.

    • tpt-template-path: משתמשים בהגדרה הזו כדי לספק תסריט חילוץ TPT מותאם אישית כקלט. אפשר להשתמש בפרמטר הזה כדי להחיל טרנספורמציות על נתוני ההעברה.

    • tpt-export-count: האופרטור export אחראי לחילוץ נתונים ממסד הנתונים של Teradata. הפרמטר הזה מבטל את ספירת הייצוא שמוגדרת כברירת מחדל בסקריפט TPT. הערך שלו צריך להיות קטן או שווה לערך של הפרמטר max-sessions כדי להבטיח שלכל מופע יהיו מספיק צינורות למסד הנתונים.

    • tpt-file-writer-count: האופרטור file writer אחראי לקבלת הנתונים מהאופרטור export ולכתיבתם לקובץ פיזי במערכת האחסון. הפרמטר הזה מבטל את ברירת המחדל של מספר האופרטורים file writer בסקריפט TPT. באופן אידיאלי, מספר האופרטורים file writer צריך להיות זהה למספר האופרטורים export. אחרת, ההעברה תהפוך לצוואר בקבוק בקצה של החילוץ או הכתיבה.

    • schema-mapping-rule-path: (אופציונלי) הנתיב לקובץ תצורה שמכיל מיפוי סכימה לביטול כללי המיפוי שמוגדרים כברירת מחדל. חלק מסוגי המיפוי פועלים רק במצב Teradata Parallel Transporter ‏ (TPT).

      דוגמה: מיפוי מסוג Teradata‏ TIMESTAMP לסוג BigQuery‏ DATETIME:

      {
      "rules": [
        {
          "database": {
              "name": "database.*",
              "tables": [
                 {
                   "name": "table.*"
                 }
              ]
          },
          "match": {
            "type": "COLUMN_TYPE",
            "value": "TIMESTAMP"
          },
          "action": {
            "type": "MAPPING",
            "value": "DATETIME"
          }
        }
      ]
      }

      מאפיינים:

      • database: (אופציונלי) name הוא ביטוי רגולרי למסדי נתונים שרוצים לכלול. כל מסדי הנתונים נכללים כברירת מחדל.
      • tables: (אופציונלי) מכיל מערך של טבלאות. ‫name הוא ביטוי רגולרי לטבלאות שצריך לכלול. כברירת מחדל, כל הטבלאות נכללות.
      • match: (חובה)
        • ערכים נתמכים של type: COLUMN_TYPE.
        • ערכים נתמכים של value: TIMESTAMP, ‏ DATETIME.
      • action: (חובה)
        • ערכים נתמכים של type: MAPPING.
        • ערכים נתמכים של value: TIMESTAMP, ‏ DATETIME.
    • compress-output: (אופציונלי) קובע אם הנתונים צריכים להיות דחוסים לפני האחסון ב-Cloud Storage. ההגדרה הזו חלה רק ב-tpt-mode. ערך ברירת המחדל הוא false.

    • gcs-module-config-dir: (אופציונלי) הנתיב אל קובץ פרטי הכניסה לגישה לקטגוריה של Cloud Storage. ספריית ברירת המחדל היא $HOME/.gcs, אבל אפשר להשתמש בפרמטר הזה כדי לשנות את הספרייה.

    • gcs-module-connection-count: (אופציונלי) מציין את מספר חיבורי ה-TCP לשירות Cloud Storage. ערך ברירת המחדל הוא 10.

    • gcs-module-buffer-size: (אופציונלי) מציין את הגודל של המאגרים לשימוש בחיבורי ה-TCP. ברירת המחדל היא 8MB ‏ (8,388,608 בייטים). כדי להקל על השימוש, אפשר להשתמש במכפילים הבאים:

      • k (1000)
      • K (1024)
      • m (1000 * 1000)
      • M (1024*1024)
    • gcs-module-buffer-count: (אופציונלי) מציין את מספר המאגרים שישמשו עם חיבורי ה-TCP שצוינו על ידי gcs-module-connection-count. מומלץ להשתמש בערך ששווה לכפליים של מספר חיבורי ה-TCP לשירות Cloud Storage. ערך ברירת המחדל הוא 2 * gcs-module-connection-count.

    • gcs-module-max-object-size: (אופציונלי) הפרמטר הזה קובע את הגודל של אובייקטים ב-Cloud Storage. הערך של הפרמטר הזה יכול להיות מספר שלם או מספר שלם שאחריו מופיע, ללא רווח, אחד מהמכפילים הבאים:

      • k (1000)
      • K (1024)
      • m (1000 * 1000)
      • M (1024*1024)
    • gcs-module-writer-instances: (אופציונלי) הפרמטר הזה מציין את מספר המופעים של כלי הכתיבה של Cloud Storage. ערך ברירת המחדל הוא 1. אפשר להגדיל את הערך הזה כדי להגדיל את קצב העברת הנתונים במהלך שלב הכתיבה של ייצוא TPT.

אופטימיזציה של חילוץ נתונים מסוכנים

אפשר לבצע אופטימיזציה של תהליך חילוץ הנתונים ולייעל את תהליך ההעברה הכולל על ידי שינוי פרמטרים של הסוכן.

בטבלה הבאה מפורט מידע על הפרמטרים שבהם אפשר להשתמש כדי לשפר את ההעברה:

פרמטר ערך מומלץ תיאור
gcs-module-writer-instances 4 הגדלת ההקבלה לחילוץ TPT ולפעולות כתיבה ב-Cloud Storage. כדאי לשנות את הערך הזה כדי לאזן בין אופטימיזציה של ההעברה לבין העומס על מופע Teradata.
gcs-module-connection-count 10 הגדרת מספר חיבורי ה-TCP ל-Cloud Storage. הגדלת הערך הזה משפרת את ההקבלה במהלך שלב ההעלאה ל-Cloud Storage.
gcs-module-buffer-size ‫32 דקות ההגדרה מגדירה את גודל המאגרים לחיבורי TCP. הבדיקה מצביעה על כך שהערך 32m מספק תוצאות אופטימליות.
tpt-export-count הערך חייב להיות קטן מהערך max-sessions או שווה לו. הערך הזה מחליף את מספר האופרטורים שמוגדר כברירת מחדל לייצוא בסקריפט TPT. כדי להבטיח שלכל מופע יהיו מספיק צינורות לנתונים במסד הנתונים, הערך צריך להיות קטן או שווה לערך max-sessions.
tpt-file-writer-count הערך צריך להיות זהה לערך של export-count. הערך הזה מבטל את מספר האופרטורים של כתיבת הקובץ שמוגדר כברירת מחדל בסקריפט TPT. מומלץ שהערך הזה יהיה זהה לערך של tpt-export-count כדי למנוע צווארי בקבוק.

כדאי ליישם את השיטות המומלצות הבאות להגדרה:

  • מגבלת זיכרון: מוודאים שהתוצאה של החישוב הבא קטנה מהזיכרון הכולל של המכונה הווירטואלית (VM) שבה פועל הסוכן. חשוב להשתמש ביחידות עקביות לכל הערכים בחישוב.

    $$ \text{gcs-module-writer-instances} \times \text{gcs-module-buffer-size} \times \text{gcs-module-buffer-count} < \text{Total VM memory} $$
  • סדר ההתאמה:

    1. קודם צריך לשנות את ערך הפרמטר gcs-module-writer-instances כדי למצוא את האיזון הטוב ביותר בין הביצועים לבין העומס.
    2. אם רוצים לשפר עוד יותר את הביצועים, צריך להגדיל את הערך של gcs-module-connection-count.
  • התאמה אוטומטית לעומס (scaling): כברירת מחדל, הערך של הפרמטר gcs-module-buffer-size מוגדר בדרך כלל כפול ממספר החיבורים, אבל אנחנו ממליצים להגדיר את הערך ל-32m באופן מפורש עבור עומסי העבודה האלה.

הפעלת סוכן ההעברה

אחרי שמאתחלים את סוכן ההעברה ויוצרים את קובץ ההגדרות, מבצעים את השלבים הבאים כדי להפעיל את הסוכן ולהתחיל את ההעברה:

  1. מריצים את הסוכן על ידי ציון הנתיבים למנהל ההתקן של JDBC, לסוכן ההעברה ולקובץ ההגדרות שנוצר בשלב הקודם של האתחול.

    java -cp \
    OS-specific-separated-paths-to-jars (JDBC and agent) \
    com.google.cloud.bigquery.dms.Agent \
    --configuration-file=path to configuration file

    Unix, ‏ Linux, ‏ Mac OS

    java -cp \
    /usr/local/migration/Teradata/JDBC/terajdbc4.jar:mirroring-agent.jar \
    com.google.cloud.bigquery.dms.Agent \
    --configuration-file=config.json

    Windows

    מעתינים את כל הקבצים לתיקייה C:\migration (או משנים את הנתיבים בפקודה), ואז מריצים את הפקודה:

    java -cp C:\migration\terajdbc4.jar;C:\migration\mirroring-agent.jar com.google.cloud.bigquery.dms.Agent --configuration-file=config.json

    אם אתם מוכנים להמשיך בהעברה, לוחצים על Enter והסוכן ימשיך אם נתיב המחלקות שסופק במהלך האתחול תקין.

  2. כשמתבקשים, מקלידים את שם המשתמש והסיסמה לחיבור למסד הנתונים. אם שם המשתמש והסיסמה תקינים, מתחילה העברת הנתונים.

    אופציונלי בפקודה להפעלת ההעברה, אפשר גם להשתמש בדגל שמעביר קובץ פרטי כניסה לסוכן, במקום להזין את שם המשתמש והסיסמה בכל פעם. מידע נוסף זמין בפרמטר האופציונלי database-credentials-file-path בקובץ ההגדרות של הסוכן. כשמשתמשים בקובץ פרטי כניסה, צריך לנקוט באמצעים מתאימים כדי לשלוט בגישה לתיקייה שבה מאחסנים אותו במערכת הקבצים המקומית, כי הוא לא מוצפן.

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

  4. כדאי לעקוב מדי פעם כדי לוודא שהסוכן פועל. אם ההעברה מתבצעת ואף נציג לא מגיב תוך 24 שעות, ההעברה נכשלת.

  5. אם סוכן ההעברה מפסיק לפעול בזמן שההעברה מתבצעת או מתוזמנת, Cloud de Confiance במסוף מוצג סטטוס השגיאה ומוצגת בקשה להפעלה מחדש של הסוכן. כדי להפעיל מחדש את סוכן ההעברה, חוזרים לתחילת הקטע הזה. אין צורך לחזור על פקודת ההפעלה. ההעברה תתחדש מהנקודה שבה הטבלאות לא הושלמו.

מעקב אחרי התקדמות ההעברה

אפשר לראות את סטטוס ההעברה במסוף Cloud de Confiance . אפשר גם להגדיר התראות ב-Pub/Sub או באימייל. מידע נוסף על התראות של שירות העברת נתונים ל-BigQuery

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

דוגמה לסטטוס ההעברה במסוף Cloud de Confiance :

סטטוס ההגירה

שדרוג סוכן ההעברה

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

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