טעינת נתונים מ-Cloud Storage ל-BigQuery
אתם יכולים לטעון נתונים מ-Cloud Storage ל-BigQuery באמצעות שירות העברת הנתונים ל-BigQuery דרך החיבור ל-Cloud Storage. בעזרת שירות העברת הנתונים ל-BigQuery, אתם יכולים לתזמן משימות העברה חוזרות שמוסיפות את הנתונים העדכניים ביותר מ-Cloud Storage ל-BigQuery.
איך פועלת העברת נתונים ב-Cloud Storage
מגבלות
העברות נתונים חוזרות מ-Cloud Storage ל-BigQuery כפופות למגבלות הבאות:
- כל הקבצים שתואמים לתבניות שהוגדרו על ידי תו כללי לחיפוש או על ידי פרמטרים של זמן ריצה להעברת הנתונים חייבים להיות בעלי אותה סכימה שהגדרתם לטבלת היעד, אחרת ההעברה תיכשל. שינויים בסכימה של הטבלה בין הפעלות גם גורמים להעברה להיכשל.
- בגלל שלאובייקטים ב-Cloud Storage יכולות להיות גרסאות, חשוב לציין שאין תמיכה בהעברת נתונים ל-BigQuery מאובייקטים שהועברו לארכיון ב-Cloud Storage. כדי להעביר אובייקטים, הם צריכים להיות פעילים.
- בניגוד לטעינות נתונים נפרדות מ-Cloud Storage ל-BigQuery, בהעברות נתונים מתמשכות צריך ליצור את טבלת היעד לפני שמגדירים את ההעברה. בקובצי CSV ו-JSON, צריך גם להגדיר מראש את סכימת הטבלה. BigQuery לא יכול ליצור את הטבלה כחלק מתהליך העברת הנתונים החוזר.
- בהעברות נתונים מ-Cloud Storage, הפרמטר Write preference מוגדר כברירת מחדל לערך
APPEND. במצב הזה, אפשר לטעון קובץ שלא השתנה ל-BigQuery רק פעם אחת. אם המאפייןlast modification timeשל הקובץ מתעדכן, הקובץ נטען מחדש. - אם קובצי Cloud Storage משתנים במהלך העברת נתונים, שירות העברת הנתונים ל-BigQuery לא מבטיח שכל הקבצים יועברו או שיועברו רק פעם אחת.
כשאתם טוענים נתונים ל-BigQuery מקטגוריה של Cloud Storage, חלות המגבלות הבאות:
- ב-BigQuery אין הבטחה לעקביות של נתונים ממקורות חיצוניים. שינויים בנתונים הבסיסיים בזמן ששאילתה פועלת עלולים לגרום להתנהגות לא צפויה.
- ב-BigQuery אין תמיכה בניהול גרסאות של אובייקטים ב-Cloud Storage. אם תכללו מספר דור ב-URI של Cloud Storage, משימת הטעינה תיכשל.
יכול להיות שיהיו מגבלות נוספות, בהתאם לפורמט של נתוני המקור ב-Cloud Storage. מידע נוסף זמין במקורות המידע הבאים:
מרווחים מינימליים
- קבצי המקור נאספים להעברת נתונים באופן מיידי, ללא גיל מינימלי לקובץ.
- מרווח הזמן המינימלי בין העברות נתונים חוזרות הוא 15 דקות. מרווח הזמן שמוגדר כברירת מחדל להעברת נתונים חוזרת הוא כל 24 שעות.
- אתם יכולים להגדיר העברה מבוססת-אירועים כדי לתזמן באופן אוטומטי העברות נתונים במרווחי זמן קצרים יותר.
לפני שמתחילים
לפני שיוצרים העברת נתונים מ-Cloud Storage, צריך לבצע את הפעולות הבאות:
- מוודאים שביצעתם את כל הפעולות שנדרשות כדי להפעיל את שירות העברת הנתונים ל-BigQuery.
- מאחזרים את ה-URI של Cloud Storage.
- יוצרים מערך נתונים ב-BigQuery כדי לאחסן את הנתונים.
- יוצרים את טבלת היעד להעברת הנתונים ומציינים את הגדרת הסכימה. אתם יכולים ליצור טבלה ב-BigQuery או ליצור טבלה מנוהלת ב-Iceberg.
- אם אתם מתכננים לציין מפתח הצפנה בניהול הלקוח (CMEK), ודאו שלחשבון השירות שלכם יש הרשאות להצפנה ולפענוח, ושיש לכם את מזהה המשאב של מפתח Cloud KMS שנדרש כדי להשתמש ב-CMEK. במאמר ציון מפתח הצפנה בהעברות מוסבר איך CMEK פועל עם שירות העברת הנתונים ל-BigQuery.
ההרשאות הנדרשות
כדי לטעון נתונים ל-BigQuery, אתם צריכים הרשאות שמאפשרות לכם לטעון נתונים לטבלאות ב-BigQuery ולמחיצות חדשות או קיימות. אם אתם טוענים נתונים מ-Cloud Storage, תצטרכו גם גישה לקטגוריה שמכילה את הנתונים. מוודאים שיש לכם את ההרשאות הנדרשות הבאות:
התפקידים הנדרשים ב-BigQuery
כדי לקבל את ההרשאות שנדרשות ליצירת העברת נתונים בשירות העברת הנתונים ל-BigQuery, בקשו מהאדמין להקצות לכם את התפקיד אדמין ב-BigQuery (roles/bigquery.admin) ב-IAM בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
זהו תפקיד מוגדר מראש שכולל את ההרשאות שנדרשות ליצירת העברת נתונים בשירות העברת הנתונים ל-BigQuery. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי ליצור העברת נתונים בשירות העברת הנתונים ל-BigQuery, נדרשות ההרשאות הבאות:
-
הרשאות לשירות העברת נתונים ל-BigQuery:
-
bigquery.transfers.update -
bigquery.transfers.get
-
-
הרשאות ב-BigQuery:
-
bigquery.datasets.get -
bigquery.datasets.getIamPolicy -
bigquery.datasets.update -
bigquery.datasets.setIamPolicy -
bigquery.jobs.create
-
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
מידע נוסף זמין במאמר מתן גישה ל-bigquery.admin.
התפקידים הנדרשים ב-Cloud Storage
צריכה להיות לכם הרשאת storage.objects.get בקטגוריה הספציפית או ברמה גבוהה יותר. אם אתם משתמשים בתו כללי לחיפוש של URI, אתם צריכים הרשאות storage.objects.list. אם רוצים למחוק את קובצי המקור אחרי כל העברה שהושלמה, צריך גם הרשאות storage.objects.delete. תפקיד ה-IAM המוגדר מראש storage.objectAdmin כולל את כל ההרשאות האלה.
הגדרת העברה מ-Cloud Storage
כדי ליצור העברת נתונים מ-Cloud Storage בשירות העברת הנתונים ל-BigQuery:
המסוף
נכנסים לדף Data transfers במסוף Google Cloud .
לוחצים על Create transfer.
בקטע Source type, בשדה Source בוחרים באפשרות Google Cloud Storage.
בקטע Transfer config name, בשדה השם המוצג מזינים שם להעברת הנתונים, למשל
My Transfer. שם ההעברה יכול להיות כל ערך שמאפשר לזהות את ההעברה אם צריך לשנות אותה מאוחר יותר.
בקטע Schedule options, בוחרים באפשרות Repeat frequency:
אם בוחרים באפשרות שעות, ימים, שבועות או חודשים, צריך לציין גם תדירות. אפשר גם לבחור באפשרות בהתאמה אישית כדי לציין תדירות חזרה מותאמת אישית. אפשר לבחור באפשרות התחלה עכשיו או באפשרות התחלה בזמן מוגדר ולציין תאריך התחלה וזמן ריצה.
אם בוחרים באפשרות On-demand, העברת הנתונים תפעל כשתפעילו את ההעברה באופן ידני.
אם בוחרים באפשרות Event-driven, צריך גם לציין מינוי ל-Pub/Sub. בוחרים את שם המינוי או לוחצים על יצירת מינוי. האפשרות הזו מפעילה העברה מבוססת-אירועים, שמפעילה הרצות של העברות כשאירועים מגיעים למינוי ל-Pub/Sub.
בקטע הגדרות היעד:
- בקטע Dataset, בוחרים את מערך הנתונים שיצרתם כדי לאחסן את הנתונים.
- בוחרים באפשרות Native table אם רוצים להעביר לטבלה ב-BigQuery.
- בוחרים באפשרות Iceberg Managed אם רוצים להעביר לטבלה מנוהלת של Iceberg.
- בקטע Dataset, בוחרים את מערך הנתונים שיצרתם כדי לאחסן את הנתונים.
בקטע פרטי מקור הנתונים:
- בשדה Destination table, מזינים את השם של טבלת היעד. טבלת היעד צריכה לעמוד בכללים למתן שמות לטבלאות. אפשר להשתמש בפרמטרים גם בשמות של טבלאות היעד.
- בשדה Cloud Storage URI, מזינים את ה-URI של Cloud Storage. יש תמיכה בתווים כלליים לחיפוש ובפרמטרים. אם ה-URI לא תואם לאף קובץ, לא יתבצע שינוי של נתונים בטבלת היעד.
בקטע העדפת כתיבה, בוחרים:
- APPEND כדי להוסיף נתונים חדשים באופן מצטבר לטבלת היעד הקיימת. APPEND הוא ערך ברירת המחדל של Write preference.
- MIRROR כדי להחליף את הנתונים בטבלת היעד בכל הפעלה של העברת נתונים.
למידע נוסף על האופן שבו שירות העברת הנתונים ל-BigQuery מטמיע נתונים באמצעות APPEND או MIRROR, קראו את המאמר הטמעת נתונים להעברות של Cloud Storage. מידע נוסף על השדה
writeDispositionזמין במאמרJobConfigurationLoad.אם רוצים למחוק את קובצי המקור אחרי כל העברת נתונים שהסתיימה, מסמנים את התיבה Delete source files after transfer. משימות המחיקה מתבצעות כמיטב היכולת. אם הניסיון הראשון למחוק את קובצי המקור נכשל, לא יתבצע ניסיון נוסף למחוק אותם.
בקטע אפשרויות העברה:
- בקטע כל הפורמטים:
- בשדה Number of errors allowed, מזינים את המספר המקסימלי של רשומות לא תקינות ש-BigQuery יכול להתעלם מהן בזמן הרצת המשימה. אם מספר הרשומות הפגומות חורג מהערך הזה, תוחזר שגיאת
invalidבתוצאת המשימה והמשימה תיכשל. ערך ברירת המחדל הוא0. - (אופציונלי) בשדה Decimal target types, מזינים רשימה מופרדת בפסיקים של סוגי נתונים אפשריים ב-SQL שאליהם אפשר להמיר את הערכים העשרוניים של המקור. סוג הנתונים של SQL שנבחר להמרה תלוי בתנאים הבאים:
- סוג הנתונים שנבחר להמרה יהיה סוג הנתונים הראשון ברשימה הבאה שתומך ברמת הדיוק ובקנה המידה של נתוני המקור, בסדר הזה:
NUMERIC,BIGNUMERICו-STRING. - אם אף אחד מסוגי הנתונים שברשימה לא תומך בדיוק ובקנה המידה, נבחר סוג הנתונים שתומך בטווח הרחב ביותר ברשימה שצוינה. אם ערך חורג מהטווח הנתמך כשקוראים את נתוני המקור, מתקבלת שגיאה.
- סוג הנתונים
STRINGתומך בכל ערכי הדיוק והקנה מידה. - אם השדה הזה נשאר ריק, סוג הנתונים יהיה כברירת מחדל
NUMERIC,STRINGל-ORC, ו-NUMERICלפורמטים האחרים של הקבצים. - השדה הזה לא יכול להכיל סוגי נתונים כפולים.
- המערכת מתעלמת מהסדר של סוגי הנתונים שאתם מפרטים בשדה הזה.
- סוג הנתונים שנבחר להמרה יהיה סוג הנתונים הראשון ברשימה הבאה שתומך ברמת הדיוק ובקנה המידה של נתוני המקור, בסדר הזה:
- בשדה Number of errors allowed, מזינים את המספר המקסימלי של רשומות לא תקינות ש-BigQuery יכול להתעלם מהן בזמן הרצת המשימה. אם מספר הרשומות הפגומות חורג מהערך הזה, תוחזר שגיאת
- בקטע JSON, CSV, מסמנים את התיבה Ignore unknown values אם רוצים שהעברת הנתונים תתעלם מנתונים שלא מתאימים לסכימה של טבלת היעד.
- בקטע AVRO, מסמנים את התיבה Use avro logical types אם רוצים שהעברת הנתונים תמיר את הסוגים הלוגיים של Avro לסוגי הנתונים התואמים ב-BigQuery. כברירת מחדל, המערכת מתעלמת מהמאפיין
logicalTypeברוב הסוגים, ומשתמשת במקום זאת בסוג Avro הבסיסי. בקטע CSV:
- בשדה Field delimiter, מזינים את התו שמפריד בין השדות. ערך ברירת המחדל הוא פסיק.
- בשדה Quote character, מזינים את התו שמשמש לציטוט קטעי נתונים בקובץ CSV. ערך ברירת המחדל הוא מירכאות כפולות (
"). - בשדה שורות כותרת שצריך לדלג עליהן, מזינים את מספר שורות הכותרת בקובצי המקור אם לא רוצים לייבא אותן. ערך ברירת המחדל הוא
0. - אם רוצים לאפשר שורות חדשות בשדות עם מירכאות, מסמנים את התיבה Allow quoted newlines.
- מסמנים את התיבה Allow jagged rows אם רוצים לאפשר העברת נתונים של שורות שחסרות בהן עמודות
NULLABLE.
מידע נוסף זמין במאמר אפשרויות ל-CSV בלבד.
- בקטע כל הפורמטים:
בתפריט Service Account, בוחרים חשבון שירות מתוך חשבונות השירות שמשויכים לפרויקט ב- Google Cloud . אתם יכולים לשייך חשבון שירות להעברת הנתונים במקום להשתמש בפרטי הכניסה של המשתמש. מידע נוסף על שימוש בחשבונות שירות להעברות נתונים זמין במאמר שימוש בחשבונות שירות.
- אם נכנסתם באמצעות זהות מאוחדת, תצטרכו חשבון שירות כדי ליצור העברת נתונים. אם נכנסתם באמצעות חשבון Google, אתם לא חייבים להשתמש בחשבון שירות כדי להעביר את הנתונים.
- לחשבון השירות צריכות להיות ההרשאות הנדרשות גם ל-BigQuery וגם ל-Cloud Storage.
אופציונלי: בקטע אפשרויות להתראות:
אופציונלי: בקטע Advanced options, אם אתם משתמשים ב-CMEK, בוחרים באפשרות Customer-managed key. תופיע רשימה של מפתחות ה-CMEK הזמינים לבחירה. במאמר ציון מפתח הצפנה בהעברות מוסבר איך מפתחות CMEK פועלים עם שירות העברת הנתונים ל-BigQuery.
לוחצים על Save.
BQ
מזינים את הפקודה bq mk ומציינים את הדגל ליצירת העברה – --transfer_config. צריך גם את הדגלים הבאים:
--data_source--display_name--target_dataset--params
דגלים אופציונליים:
-
--destination_kms_key: מציין את מזהה משאב המפתח של מפתח Cloud KMS, אם משתמשים במפתח הצפנה בניהול הלקוח (CMEK) להעברת הנתונים הזו. במאמר ציון מפתח הצפנה בהעברות מוסבר איך מפתחות CMEK פועלים עם שירות העברת הנתונים ל-BigQuery. -
--service_account_name: מציין חשבון שירות שבו צריך להשתמש לאימות ההעברה של Cloud Storage במקום חשבון המשתמש.
כשמשתמשים בכלי שורת הפקודה של BigQuery כדי להגדיר העברת נתונים מ-Cloud Storage, חלות המגבלות הבאות:
אי אפשר להגדיר את לוח הזמנים של ההעברה באמצעות כלי שורת הפקודה של BigQuery. כשיוצרים העברת נתונים מ-Cloud Storage באמצעות כלי שורת הפקודה של BigQuery, הגדרות ההעברה נקבעות לפי ערך ברירת המחדל של Schedule (כל 24 שעות).
אי אפשר להגדיר התראות באמצעות כלי שורת הפקודה של BigQuery.
בדוגמה הבאה מוצגת פקודה ליצירת העברת נתונים מ-Cloud Storage עם כל הפרמטרים הנדרשים:
bq mk \ --transfer_config \ --project_id=PROJECT_ID \ --data_source=DATA_SOURCE \ --display_name=NAME \ --target_dataset=DATASET \ --destination_kms_key="DESTINATION_KEY" \ --params='PARAMETERS' \ --service_account_name=SERVICE_ACCOUNT_NAME
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID הוא מזהה הפרויקט. אם לא מציינים פרויקט מסוים באמצעות
--project_id, המערכת משתמשת בפרויקט שמוגדר כברירת מחדל. - DATA_SOURCE הוא מקור הנתונים, לדוגמה
google_cloud_storage. - NAME הוא השם המוצג של הגדרת העברת הנתונים. שם ההעברה יכול להיות כל ערך שמאפשר לכם לזהות את ההעברה אם תצטרכו לשנות אותה בהמשך.
- DATASET הוא מערך הנתונים של היעד להגדרות ההעברה.
- DESTINATION_KEY: מזהה המשאב של מפתח Cloud KMS, לדוגמה
projects/project_name/locations/us/keyRings/key_ring_name/cryptoKeys/key_name. - PARAMETERS מכיל את הפרמטרים של הגדרת ההעברה שנוצרה בפורמט JSON. לדוגמה:
--params='{"param":"param_value"}'.-
destination_table_name_template: השם של טבלת היעד ב-BigQuery. -
data_path_template: ה-URI של Cloud Storage שמכיל את הקבצים שרוצים להעביר. יש תמיכה בתווים כלליים לחיפוש ובפרמטרים. -
write_disposition: קובע אם קבצים תואמים יתווספו לטבלת היעד או ישוכפלו במלואם. הערכים הנתמכים הםAPPENDאוMIRROR. במאמר הטמעת נתונים להעברות מ-Cloud Storage מוסבר איך שירות העברת הנתונים ל-BigQuery מוסיף או משקף נתונים בהעברות מ-Cloud Storage. -
file_format: הפורמט של הקבצים שרוצים להעביר. הפורמט יכול להיותCSV,JSON,AVRO,PARQUETאוORC. ערך ברירת המחדל הואCSV. -
max_bad_records: לכל ערך שלfile_format, המספר המקסימלי של רשומות לא תקינות שאפשר להתעלם מהן. ערך ברירת המחדל הוא0. -
decimal_target_types: לכל ערך שלfile_format, רשימה מופרדת בפסיקים של סוגי נתונים אפשריים של SQL שאפשר להמיר אליהם את הערכים העשרוניים של המקור. אם לא מציינים את השדה הזה, סוג הנתונים שמוגדר כברירת מחדל הוא"NUMERIC,STRING"ל-ORC, ו-"NUMERIC"לפורמטים האחרים של הקבצים. -
ignore_unknown_values: לכל ערך שלfile_format, מגדירים את הערךTRUEכדי לקבל שורות שמכילות ערכים שלא תואמים לסכימה. למידע נוסף, עיינו בפרטי השדהignoreUnknownvaluesבטבלת העזר שלJobConfigurationLoad. -
use_avro_logical_types: לערכים שלAVROfile_format, מגדירים אתTRUEכדי לפרש סוגים לוגיים לסוגים התואמים שלהם (לדוגמה,TIMESTAMP), במקום להשתמש רק בסוגים הגולמיים שלהם (לדוגמה,INTEGER). -
parquet_enum_as_string: לערכיPARQUETfile_format, מגדירים אתTRUEכדי להסיק שהסוג הלוגי שלPARQUETENUMהואSTRINGבמקום ברירת המחדלBYTES. -
parquet_enable_list_inference: לערכיPARQUETfile_format, מגדירים אתTRUEכדי להשתמש בהסקת סכימה במיוחד לסוג הלוגיPARQUETLIST. -
reference_file_schema_uri: נתיב URI לקובץ רפרנס עם הסכימה של הקורא. -
field_delimiter: לערכיCSVfile_format, תו שמפריד בין שדות. ערך ברירת המחדל הוא פסיק. -
quote: לערכים שלCSVfile_format, תו שמשמש לציטוט קטעי נתונים בקובץ CSV. ערך ברירת המחדל הוא מירכאות כפולות ("). -
skip_leading_rows: בערכיםCSVfile_format, מציינים את מספר שורות הכותרת הראשונות שלא רוצים לייבא. ערך ברירת המחדל הוא 0. -
allow_quoted_newlines: בערכים שלCSVfile_format, מגדירים אתTRUEכדי לאפשר שורות חדשות בשדות עם מירכאות. -
allow_jagged_rows: לערכיםCSVfile_format, מגדירים את הערךTRUEכדי לקבל שורות שחסרות בהן עמודות אופציונליות בסוף. הערכים החסרים ימולאו ב-NULL. preserve_ascii_control_characters: לערכים שלCSVfile_format, מגדירים אתTRUEכדי לשמור על תווי בקרה מוטמעים של ASCII.-
encoding: מציינים את סוג הקידוד שלCSV. הערכים הנתמכים הםUTF8,ISO_8859_1,UTF16BE,UTF16LE,UTF32BEו-UTF32LE. -
delete_source_files: מגדירים את הערךTRUEכדי למחוק את קובצי המקור אחרי כל העברה שמסתיימת בהצלחה. משימות מחיקה לא מופעלות מחדש אם הניסיון הראשון למחוק את קובץ המקור נכשל. ערך ברירת המחדל הואFALSE.
-
- SERVICE_ACCOUNT_NAME הוא השם של חשבון השירות שמשמש לאימות ההעברה. חשבון השירות צריך להיות בבעלות של אותו
project_idששימש ליצירת ההעברה, וצריכות להיות לו כל ההרשאות הנדרשות.
לדוגמה, הפקודה הבאה יוצרת העברת נתונים מ-Cloud Storage בשם My Transfer, באמצעות הערך gs://mybucket/myfile/*.csv של data_path_template, מערך הנתונים של היעד mydataset ו-file_format CSV. הדוגמה הזו כוללת ערכים שאינם ערכי ברירת המחדל של הפרמטרים האופציונליים שמשויכים לפורמט הקובץ CSV.
העברת הנתונים נוצרת בפרויקט ברירת המחדל:
bq mk --transfer_config \
--target_dataset=mydataset \
--project_id=myProject \
--display_name='My Transfer' \
--destination_kms_key=projects/myproject/locations/mylocation/keyRings/myRing/cryptoKeys/myKey \
--params='{"data_path_template":"gs://mybucket/myfile/*.csv",
"destination_table_name_template":"MyTable",
"file_format":"CSV",
"max_bad_records":"1",
"ignore_unknown_values":"true",
"field_delimiter":"|",
"quote":";",
"skip_leading_rows":"1",
"allow_quoted_newlines":"true",
"allow_jagged_rows":"false",
"delete_source_files":"true"}' \
--data_source=google_cloud_storage \
--service_account_name=abcdef-test-sa@abcdef-test. projects/862514376110/locations/us/transferConfigs/ 5dd12f26-0000-262f-bc38-089e0820fe38
אחרי הרצת הפקודה, תתקבל הודעה כמו זו:
[URL omitted] Please copy and paste the above URL into your web browser and
follow the instructions to retrieve an authentication code.
פועלים לפי ההוראות ומדביקים את קוד האימות בשורת הפקודה.
API
משתמשים ב-method projects.locations.transferConfigs.create ומספקים מופע של המשאב TransferConfig.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Java במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
ציון מפתח הצפנה בהעברות
אתם יכולים לציין מפתחות הצפנה בניהול הלקוח (CMEK) כדי להצפין נתונים להרצת העברה. אתם יכולים להשתמש ב-CMEK כדי לתמוך בהעברות מ-Cloud Storage.כשמציינים CMEK בהעברה, שירות העברת הנתונים ל-BigQuery מחיל את ה-CMEK על כל מטמון ביניים בדיסק של הנתונים שנקלטו, כדי שכל תהליך העבודה של העברת הנתונים יהיה תואם ל-CMEK.
אי אפשר לעדכן העברה קיימת כדי להוסיף CMEK אם ההעברה לא נוצרה במקור עם CMEK. לדוגמה, אי אפשר לשנות טבלת יעד שהוצפנה במקור כברירת מחדל, כך שתוצפן עכשיו באמצעות CMEK. באופן דומה, אי אפשר לשנות טבלת יעד שמוצפנת באמצעות CMEK לסוג אחר של הצפנה.
אפשר לעדכן את ה-CMEK של העברה אם הגדרת ההעברה נוצרה במקור עם הצפנת CMEK. כשמעדכנים מפתח CMEK בהגדרות ההעברה, שירות העברת הנתונים ל-BigQuery מעביר את מפתח ה-CMEK לטבלאות היעד בהפעלה הבאה של ההעברה, ומחליף את כל מפתחות ה-CMEK המיושנים במפתח ה-CMEK החדש במהלך ההעברה. מידע נוסף זמין במאמר עדכון העברה.
אפשר גם להשתמש במפתחות ברירת המחדל של הפרויקט. כשמציינים מפתח ברירת מחדל לפרויקט בהעברה, שירות העברת הנתונים ל-BigQuery משתמש במפתח ברירת המחדל של הפרויקט כמפתח ברירת המחדל לכל הגדרות ההעברה החדשות.
הפעלה ידנית של העברה
בנוסף להעברות נתונים מתוזמנות אוטומטית מ-Cloud Storage, אתם יכולים להפעיל העברה באופן ידני כדי לטעון קובצי נתונים נוספים.
אם הגדרת ההעברה כוללת פרמטרים של זמן ריצה, תצטרכו לציין טווח תאריכים שבו יתחילו העברות נוספות.
כדי להפעיל העברת נתונים:
המסוף
נכנסים לדף BigQuery במסוף Google Cloud .
לוחצים על העברות נתונים.
בוחרים את העברת הנתונים מהרשימה.
לוחצים על Run transfer now או על Schedule backfill (להגדרות העברה עם פרמטרים של זמן ריצה).
אם לחצתם על Run transfer now, בוחרים באפשרות Run one time transfer או באפשרות Run for specific date, לפי הצורך. אם בחרתם באפשרות Run for specific date, בוחרים תאריך ושעה ספציפיים:
אם לחצתם על Schedule backfill, בוחרים באפשרות Run one time transfer או Run for a date range, לפי הצורך. אם בחרתם באפשרות Run for a date range, בוחרים תאריך ושעה להתחלה ולסיום:
לוחצים על אישור.
BQ
מזינים את הפקודה bq mk ומציינים את הדגל --transfer_run. אפשר להשתמש בדגל --run_time או בדגלים --start_time ו---end_time.
bq mk \ --transfer_run \ --start_time='START_TIME' \ --end_time='END_TIME' \ RESOURCE_NAME
bq mk \ --transfer_run \ --run_time='RUN_TIME' \ RESOURCE_NAME
כאשר:
START_TIME ו-END_TIME הן חותמות זמן שמסתיימות ב-
Zאו מכילות היסט תקין של אזור זמן. לדוגמה:2017-08-19T12:11:35.00Z2017-05-25T00:00:00+00:00
RUN_TIME היא חותמת זמן שמציינת את הזמן שבו צריך לתזמן את הפעלת העברת הנתונים. אם רוצים להריץ העברה חד-פעמית לזמן הנוכחי, אפשר להשתמש בדגל
--run_time.RESOURCE_NAME הוא שם המשאב של ההעברה (שנקרא גם הגדרת ההעברה), לדוגמה
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7. אם אתם לא יודעים את שם המשאב של ההעברה, הריצו את הפקודהbq ls --transfer_config --transfer_location=LOCATIONכדי למצוא את שם המשאב.
API
משתמשים ב-method projects.locations.transferConfigs.startManualRuns ומציינים את משאב הגדרות ההעברה באמצעות הפרמטר parent.