מבוא להעברות ב-Cloud Storage
שירות העברת הנתונים ל-BigQuery ב-Cloud Storage מאפשר לתזמן טעינות נתונים חוזרות ממאגרי Cloud Storage ל-BigQuery. אפשר לתאר בפרמטרים גם את הנתיב של הנתונים שמאוחסנים ב-Cloud Storage וגם את טבלת היעד, ולכן אפשר לטעון נתונים מקטגוריות של Cloud Storage בחלוקה לפי תאריך.
פורמטים נתמכים של קבצים
שירות העברת הנתונים ל-BigQuery תומך בטעינת נתונים מ-Cloud Storage באחד מהפורמטים הבאים:
- ערכים מופרדים בפסיקים (CSV)
- JSON (מופרד בתו שורה חדשה)
- Avro
- Parquet
- ORC
סוגי דחיסה נתמכים
שירות העברת הנתונים ל-BigQuery ב-Cloud Storage תומך בטעינת נתונים דחוסים. סוגי הדחיסה שנתמכים על ידי שירות העברת הנתונים ל-BigQuery זהים לסוגי הדחיסה שנתמכים על ידי משימות טעינה ב-BigQuery. מידע נוסף זמין במאמר טעינת נתונים דחוסים ולא דחוסים.
העברת נתונים ל-Cloud Storage
אתם יכולים לציין איך הנתונים נטענים ל-BigQuery על ידי בחירת העדפת כתיבה בהגדרת ההעברה כשאתם מגדירים העברה מ-Cloud Storage.
יש שני סוגים של העדפות כתיבה: העברות מצטברות והעברות קטומות.העברות מצטברות
הגדרת העברה עם העדפת כתיבה APPEND או WRITE_APPEND, שנקראת גם העברה מצטברת, מוסיפה באופן מצטבר נתונים חדשים לטבלת יעד ב-BigQuery מאז ההעברה הקודמת שהושלמה בהצלחה. כשמריצים הגדרת העברה עם העדפת כתיבה APPEND, שירות העברת הנתונים ל-BigQuery מסנן את הקבצים שהשתנו מאז ההרצה הקודמת של ההעברה שהסתיימה בהצלחה. כדי לקבוע מתי בוצעו שינויים בקובץ, שירות העברת הנתונים ל-BigQuery בודק את המטא-נתונים של הקובץ כדי למצוא את המאפיין 'הזמן שבו בוצעו שינויים'. לדוגמה, שירות העברת הנתונים ל-BigQuery בודק את מאפיין חותמת הזמן updated בקובץ Cloud Storage. אם שירות העברת הנתונים ל-BigQuery מוצא קבצים עם 'השעה האחרונה שבה בוצע שינוי' שחלה אחרי חותמת הזמן של ההעברה המוצלחת האחרונה, שירות העברת הנתונים ל-BigQuery מעביר את הקבצים האלה בהעברה מצטברת.
כדי להדגים איך העברות מצטברות פועלות, נשתמש בדוגמה הבאה של העברה ב-Cloud Storage. משתמש יוצר קובץ בקטגוריה של Cloud Storage בשם file_1 בשעה 2023-07-01T00:00Z. updated חותמת הזמן של file_1 היא השעה שבה הקובץ נוצר. לאחר מכן המשתמש יוצר העברה מצטברת מ<ph name="CLOUD_STORAGE_BUCKET">קטגוריה של Cloud Storage</ph>, שמוגדרת להפעלה פעם ביום בשעה 03:00 UTC, החל מ-2023-07-01T03:00Z.
- ב-2023-07-01T03:00Z, מתחילה ההרצה הראשונה של ההעברה. מכיוון שזו ההפעלה הראשונה של העברת הנתונים בהגדרה הזו, שירות העברת הנתונים ל-BigQuery מנסה לטעון את כל הקבצים שתואמים ל-URI של המקור לטבלה ב-BigQuery. העברת הנתונים מסתיימת בהצלחה ושירות העברת הנתונים ל-BigQuery טוען את
file_1בהצלחה לטבלת היעד ב-BigQuery. - בפעולת ההעברה הבאה, בתאריך 2023-07-02T03:00Z, לא מזוהים קבצים שבהם מאפיין חותמת הזמן
updatedגדול יותר מזה של פעולת ההעברה האחרונה שהסתיימה בהצלחה (2023-07-01T03:00Z). ההעברה מסתיימת בהצלחה בלי לטעון נתונים נוספים לטבלה ב-BigQuery.
בדוגמה שלמעלה אפשר לראות איך שירות העברת הנתונים ל-BigQuery בודק את מאפיין חותמת הזמן updated של קובץ המקור כדי לקבוע אם בוצעו שינויים בקובצי המקור, ואם כן, מעביר את השינויים האלה.
נמשיך עם אותה דוגמה. נניח שהמשתמש יוצר קובץ נוסף בקטגוריה של Cloud Storage בשעה 2023-07-03T00:00Z, בשם file_2. updated חותמת הזמן של file_2 היא השעה שבה הקובץ נוצר.
- בהרצת ההעברה הבאה, ב-2023-07-03T03:00Z, המערכת מזהה של-
file_2יש חותמת זמןupdatedשגדולה מחותמת הזמן של הרצת ההעברה האחרונה שהצליחה (2023-07-01T03:00Z). נניח שכשהפעלתם את ההעברה היא נכשלה בגלל שגיאה זמנית. בתרחיש הזה, הנתונים שלfile_2לא נטענים לטבלת היעד ב-BigQuery. חותמת הזמן של ההרצה האחרונה של ההעברה שבוצעה בהצלחה נשארת 2023-07-01T03:00Z. - בהרצת ההעברה הבאה, בתאריך 2023-07-04T03:00Z, המערכת מזהה של-
file_2יש חותמת זמן שגדולה מזו של הרצת ההעברה המוצלחת האחרונה (2023-07-01T03:00Z).updatedהפעם, הפעלת ההעברה מסתיימת ללא בעיות, ולכן הנתונים מ-file_2נטענים בהצלחה לטבלת היעד ב-BigQuery. - בהרצת ההעברה הבאה, בתאריך 2023-07-05T03:00Z, לא מזוהים קבצים שחותמת הזמן שלהם [
updated] גדולה מזו של הרצת ההעברה האחרונה שהסתיימה בהצלחה (2023-07-04T03:00Z). הפעלת ההעברה מסתיימת בהצלחה בלי לטעון נתונים נוספים לטבלת היעד ב-BigQuery.
בדוגמה שלמעלה אפשר לראות שאם ההעברה נכשלת, לא מועברים קבצים לטבלת היעד ב-BigQuery. כל שינוי בקובץ מועבר בהרצה הבאה של העברה מוצלחת. העברות מוצלחות שמתבצעות אחרי העברה שנכשלה לא גורמות לשכפול נתונים. אם ההעברה נכשלה, אפשר גם להפעיל העברה באופן ידני מחוץ לזמן המתוזמן הרגיל שלה.
העברות קטועות
הגדרת העברה עם העדפת כתיבה MIRROR או WRITE_TRUNCATE, שנקראת גם העברה קטועה, מחליפה את הנתונים בטבלת היעד ב-BigQuery במהלך כל הרצת העברה בנתונים מכל הקבצים שתואמים ל-URI של המקור. MIRROR מחליף עותק חדש של נתונים בטבלת היעד. אם טבלת היעד משתמשת במעצב מחיצות, הרצת ההעברה מחליפה רק את הנתונים במחיצה שצוינה. טבלת יעד עם קישוט מחיצה היא בפורמט my_table${run_date}, לדוגמה, my_table$20230809.
חזרה על אותם העברות מצטברות או חלקיות במהלך יום לא גורמת לשכפול נתונים. עם זאת, אם מפעילים כמה הגדרות שונות של העברה שמשפיעות על אותו טבלת יעד ב-BigQuery, יכול להיות ששירות העברת הנתונים ל-BigQuery ישכפל את הנתונים.
נתיב משאב ב-Cloud Storage
כדי לטעון נתונים ממקור נתונים ב-Cloud Storage, צריך לספק את הנתיב לנתונים.
נתיב המשאב ב-Cloud Storage מכיל את שם הקטגוריה ואת האובייקט (שם הקובץ). לדוגמה, אם קטגוריית Cloud Storage נקראת mybucket וקובץ הנתונים נקרא myfile.csv, נתיב המשאב יהיה gs://mybucket/myfile.csv.
BigQuery לא תומך בנתיבי משאבים ב-Cloud Storage שכוללים כמה לוכסנים עוקבים אחרי שני הלכסנים הראשוניים.
שמות של אובייקטים ב-Cloud Storage יכולים להכיל כמה תווים עוקבים של לוכסן (/).
עם זאת, BigQuery ממיר כמה לוכסנים עוקבים ללוכסן אחד. לדוגמה, נתיב המשאב הבא, למרות שהוא תקין ב-Cloud Storage, לא פועל ב-BigQuery: gs://bucket/my//object//name.
כדי לאחזר את נתיב המשאב ב-Cloud Storage:
פותחים את מסוף Cloud Storage.
עוברים למיקום של האובייקט (הקובץ) שמכיל את נתוני המקור.
לוחצים על שם האובייקט.
הדף Object details נפתח.
מעתיקים את הערך שמופיע בשדה gsutil URI, שמתחיל ב-
gs://.
תמיכה בתווים כלליים לחיפוש בנתיבי משאבים ב-Cloud Storage
אם הנתונים שלכם ב-Cloud Storage מופרדים לכמה קבצים עם שם בסיס משותף, אתם יכולים להשתמש בתו כללי בנתיב המשאב כשאתם טוענים את הנתונים.
כדי להוסיף תבנית wildcard לנתיב המשאב ב-Cloud Storage, מוסיפים כוכבית (*) לשם הבסיס. לדוגמה, אם יש לכם שני קבצים בשמות fed-sample000001.csv ו-fed-sample000002.csv, נתיב המשאב יהיה gs://mybucket/fed-sample*. אפשר להשתמש בתו הכללי הזה במסוףGoogle Cloud או ב-Google Cloud CLI.
אפשר להשתמש בכמה תווים כלליים לחיפוש של אובייקטים (שמות קבצים) בתוך קטגוריות. התו הכללי יכול להופיע בכל מקום בשם האובייקט.
תווים כלליים לחיפוש לא מרחיבים ספרייה ב-gs://bucket/. לדוגמה,
הפקודה gs://bucket/dir/* מוצאת קבצים בספרייה dir אבל לא מוצאת
קבצים בספריית המשנה gs://bucket/dir/subdir/.
גם לא ניתן להתאים קידומות ללא תווים כלליים. לדוגמה, gs://bucket/dir לא תואם ל-gs://bucket/dir/file.csv או ל-gs://bucket/file.csv
עם זאת, אפשר להשתמש בכמה תווים כלליים לחיפוש בשמות קבצים בתוך דליים.
לדוגמה, gs://bucket/dir/*/*.csv תואם ל-gs://bucket/dir/subdir/file.csv.
דוגמאות לשימוש בתווים כלליים לחיפוש בשילוב עם שמות טבלאות עם פרמטרים זמינות במאמר בנושא פרמטרים של זמן ריצה בהעברות.
מכסות ומגבלות
שירות העברת הנתונים ל-BigQuery משתמש במשימות טעינה כדי לטעון נתונים מ-Cloud Storage ל-BigQuery.
כל המכסות והמגבלות של BigQuery שחלות על משימות טעינה חזרוֹת של Cloud Storage, עם ההיבטים הנוספים הבאים:
| ערך | הגבלה |
|---|---|
| הגודל המקסימלי לכל הפעלה של העברת נתונים של משימת טעינה | 15TB |
| מספר הקבצים המקסימלי להעברה | 10,000 קבצים |
תמחור
אחרי שהנתונים מועברים ל-BigQuery, חלים תעריפי האחסון והשאילתות הרגילים של BigQuery.
במקרה של העברות בין מיקומים שונים מ-Cloud Storage, התמחור נקבע לפי המיקום של הקטגוריה של Cloud Storage והמיקום של מערך הנתונים ב-BigQuery. מידע נוסף זמין במאמר בנושא העברת נתונים בתוך Google Cloud.
מידע נוסף על התמחור של BigQuery
המאמרים הבאים
- מידע על הגדרת העברה ב-Cloud Storage
- מידע על פרמטרים של זמן ריצה בהעברות ב-Cloud Storage
- מידע נוסף על שירות העברת נתונים ל-BigQuery