התוסף של מקור BigQuery מאפשר לכם להתחבר לטבלאות BigQuery ולטעון מהן נתונים. הנתונים מטבלה ב-BigQuery מיוצאים למיקום זמני ב-Cloud Storage, ואז נקראים לצינור עיבוד הנתונים משם.
לפני שמתחילים
בדרך כלל יש ל-Cloud Data Fusion שני חשבונות שירות:
- חשבון שירות בזמן התכנון: Cloud Data Fusion API Service Agent
- חשבון שירות בזמן הריצה: חשבון השירות של Compute Engine
לפני שמשתמשים בתוסף BigQuery batch source, צריך להעניק לכל חשבון שירות את התפקידים או ההרשאות הבאים.
סוכן שירות Cloud Data Fusion API
לחשבון השירות הזה כבר יש את כל ההרשאות הנדרשות, ולא צריך להוסיף הרשאות נוספות. לעיון, אלה ההרשאות שנדרשות:
bigquery.datasets.getbigquery.tables.createbigquery.tables.getbigquery.tables.updateDatabigquery.tables.updatebigquery.tables.export
אם אתם משתמשים בחשבון שירות של מרחב שמות בנוסף לחשבון השירות שמוגדר כברירת מחדל בזמן העיצוב, צריך להוסיף לו את ההרשאות מהרשימה הקודמת.
חשבון שירות של Compute Engine
ב Google Cloud פרויקט, מקצים לחשבון השירות של Compute Engine את תפקידי ה-IAM או ההרשאות הבאים:
- BigQuery Job User (
roles/bigquery.jobUser). התפקיד המוגדר מראש הזה כולל את ההרשאה הנדרשתbigquery.jobs.create. BigQuery Data Editor (
roles/bigquery.dataEditor). התפקיד המוגדר מראש הזה כולל את ההרשאות הנדרשות הבאות:bigquery.datasets.getbigquery.tables.createbigquery.tables.getbigquery.tables.updateDatabigquery.tables.updatebigquery.tables.export
אפשר להקצות את התפקידים וההרשאות האלה גם במערך הנתונים או בטבלה ב-BigQuery, בהתאם לתרחיש השימוש.
Storage Legacy Bucket Writer (
roles/storage.legacyBucketWriter). התפקיד המוגדר מראש הזה מכיל את ההרשאות הנדרשות הבאות:storage.buckets.getstorage.objects.getstorage.objects.list
אפשר להקצות את התפקיד וההרשאות האלה גם בקטגוריה של Cloud Storage, בהתאם לתרחיש השימוש.
הגדרת הפלאגין
- עוברים לממשק האינטרנט של Cloud Data Fusion ולוחצים על Studio.
- מוודאים שהאפשרות Data Pipeline - Batch (צינור נתונים – אצווה) נבחרה (ולא Realtime (זמן אמת)).
- בתפריט מקור, לוחצים על BigQuery. צומת BigQuery מופיע בצינור.
- כדי להגדיר את המקור, עוברים לצומת BigQuery ולוחצים על מאפיינים.
מזינים את המאפיינים הבאים. רשימה מלאה זמינה במאמר בנושא מאפיינים.
- מזינים תווית לצומת BigQuery – לדוגמה,
BigQuery tables. מזינים את פרטי החיבור. אתם יכולים להגדיר חיבור חדש וחד-פעמי או חיבור קיים שאפשר להשתמש בו שוב.
חיבור חדש
כדי להוסיף חיבור חד-פעמי ל-BigQuery:
- בשדה מזהה פרויקט, משאירים את הערך כזיהוי אוטומטי.
- אם מערך הנתונים ב-BigQuery נמצא בפרויקט אחר, מזינים את המזהה בשדה מזהה פרויקט של מערך הנתונים.
בשדה Service account type, בוחרים באחת מהאפשרויות הבאות ומזינים את התוכן בשדה הבא:
- נתיב קובץ
- JSON
חיבור לשימוש חוזר
כדי לעשות שימוש חוזר בחיבור קיים, פועלים לפי השלבים הבאים:
- מפעילים את האפשרות שימוש בחיבור.
- לוחצים על Browse connections (עיון בחיבורים).
לוחצים על שם החיבור – לדוגמה, BigQuery Default.
אופציונלי: אם לא קיים חיבור ואתם רוצים ליצור חיבור חדש לשימוש חוזר, לוחצים על הוספת חיבור ופועלים לפי השלבים שבכרטיסייה חיבור חדש בדף הזה.
בשדה שם הפניה, מזינים שם לשימוש בשושלת נתונים.
אופציונלי: אם מערך הנתונים כבר זמין במופע שלכם, לוחצים על עיון ובוחרים את הנתונים לקריאה.
בשדה Dataset, מזינים את שם מערך הנתונים שמכיל את הטבלה.
בשדה Table (טבלה), מזינים את שם הטבלה.
כדי לבדוק את הקישוריות, לוחצים על קבל סכימה.
אופציונלי: בשדה Partition start date (תאריך ההתחלה של המחיצה), מזינים את מחרוזת תאריך ההתחלה כולל – לדוגמה,
2021-01-11.אופציונלי: בשדה Partition end date, מזינים את מחרוזת תאריך הסיום כולל – לדוגמה,
2024-01-11.אופציונלי: בשדה Filter, מזינים פסקה של BigQuery
WHERE.אופציונלי: בשדה Temporary bucket name, מזינים שם לקטגוריה של Cloud Storage.
אופציונלי: בשדה Encryption Key Name (שם מפתח ההצפנה), מזינים את שם מפתח ההצפנה של Cloud Key Management Service (Cloud KMS). מידע נוסף זמין במאמר איך מקבלים את שם המשאב של המפתח.
אופציונלי: מפעילים את האפשרות הפעלת שאילתות בתצוגות. אם מפעילים אותן, צריך לבצע את הפעולות הבאות:
- בשדה פרויקט ליצירת טבלה זמנית, מזינים את שם הפרויקט שבו נוצרת הטבלה הזמנית.
- בשדה Temporary table creation dataset (מערך נתונים ליצירת טבלה זמנית), מזינים את שם מערך הנתונים שבו נוצרת הטבלה הזמנית.
אופציונלי: לוחצים על אימות ופותרים את השגיאות שנמצאו.
לוחצים על סגירה. המאפיינים נשמרים ואפשר להמשיך לבנות את צינור הנתונים בממשק האינטרנט של Cloud Data Fusion.
- מזינים תווית לצומת BigQuery – לדוגמה,
מאפיינים
| מאפיין (property) | יכולות מאקרו | מאפיין חובה | תיאור |
|---|---|---|---|
| תווית | לא | כן | השם של הצומת בצינור הנתונים. |
| שימוש בחיבור | לא | לא | מחפשים חיבור לשימוש חוזר למקור. מידע נוסף על הוספה, ייבוא ועריכה של החיבורים שמופיעים כשמעיינים בחיבורים זמין במאמר ניהול חיבורים. |
| חיבור | כן | כן | אם האפשרות Use connection (שימוש בחיבור) מופעלת, השם של החיבור שאפשר להשתמש בו שוב שבוחרים מופיע בשדה הזה. |
| מזהה הפרויקט | כן | לא | הפרמטר הזה משמש רק כשהאפשרות Use connection (שימוש בחיבור) מושבתת. מזהה ייחודי גלובלי של הפרויקט שבו מופעלת משימת BigQuery. ערך ברירת המחדל הוא auto-detect. |
| מזהה פרויקט של מערך נתונים | כן | לא | הפרמטר הזה משמש רק כשהאפשרות Use connection (שימוש בחיבור) מושבתת. אם מערך הנתונים נמצא בפרויקט אחר מזה שבו מופעלת משימת BigQuery, הערך הזה הוא המזהה הייחודי הגלובלי של הפרויקט עם מערך הנתונים ב-BigQuery. אם לא מציינים ערך, ברירת המחדל של השדה היא הערך של מזהה הפרויקט. צריך להעניק לחשבון השירות שצוין את התפקיד BigQuery Data Viewer כדי לקרוא נתונים מ-BigQuery בפרויקט. |
| סוג חשבון השירות | כן | לא | בוחרים אחת מהאפשרויות הבאות:
|
| נתיב הקובץ של חשבון השירות | כן | לא | הפרמטר הזה משמש רק כשהערך של סוג חשבון השירות הוא נתיב קובץ. הנתיב במערכת הקבצים המקומית של המפתח לחשבון השירות שמשמש להרשאה. אם המשימות מופעלות באשכולות של Managed Service for Apache Spark,
מגדירים את הערך לזיהוי אוטומטי. אם משימות מופעלות בסוגים אחרים של אשכולות, הקובץ
צריך להיות בכל צומת באשכול. ברירת המחדל היא auto-detect. |
| קובץ JSON של חשבון שירות | כן | לא | השדה הזה נמצא בשימוש רק אם הערך של סוג חשבון השירות הוא JSON. התוכן של קובץ ה-JSON של חשבון השירות. |
| שם הפניה | לא | כן | שם שמזהה באופן ייחודי את המקור הזה בשירותים אחרים, כמו שירותי שושלת והוספת הערות למטא-נתונים. |
| מערך נתונים | כן | כן | מערך הנתונים שהטבלה שייכת אליו. מערך נתונים נמצא בתוך פרויקט מסוים. מערכי נתונים הם קונטיינרים ברמה העליונה שמשמשים לארגון ולשליטה על הגישה לטבלאות ולתצוגות (Views). |
| טבלה | כן | כן | הטבלה שרוצים לקרוא ממנה. טבלה מכילה רשומות נפרדות שמסודרות בשורות. כל רשומה מורכבת מעמודות (שנקראות גם שדות). כל טבלה מוגדרת על ידי סכימה שמתארת את שמות העמודות, סוגי הנתונים ופרטים אחרים. |
| תאריך ההתחלה של החלוקה | כן | לא | תאריך ההתחלה של המחיצה, כולל, שצוין כ-yyyy-mm-dd. אם לא מציינים ערך, המערכת קוראת את כל המחיצות עד תאריך הסיום של המחיצה. |
| תאריך הסיום של המחיצה | כן | לא | תאריך הסיום של המחיצה, לא כולל, שצוין כ-yyyy-mm-dd. אם לא מציינים ערך, המערכת קוראת את כל המחיצות החל מתאריך ההתחלה של המחיצה. |
| מסנן | כן | לא | שאילתת SQL שמסננת לפי התנאים שצוינו. לדוגמה, השאילתה הבאה מחזירה את כל השורות מהטבלה Roster שבהן הערך בעמודה SchoolID הוא SchoolID > 52:SELECT * FROM Roster WHERE SchoolID > 52;. זהה לסעיף WHERE ב-BigQuery. |
| שם זמני של קטגוריה | כן | לא | הקטגוריה של Cloud Storage לאחסון נתונים זמני. אם הוא לא קיים, הוא נוצר באופן אוטומטי. נתונים זמניים נמחקים אחרי שהם נקראים. אם לא מספקים שם, נוצרת קטגוריה ייחודית ואז היא נמחקת אחרי שההרצה מסתיימת. |
| שם מפתח ההצפנה | כן | לא | מפתח שמצפין נתונים שנכתבים לכל קטגוריה שנוצרה על ידי התוסף. אם הדלי קיים, המערכת מתעלמת מהערך הזה. מידע נוסף זמין במאמר בנושא CMEK. |
| הפעלת שאילתות בתצוגות | כן | לא | האם לאפשר תצוגות לוגיות וממומשות של BigQuery. תצוגות מפורטות של BigQuery לא מופעלות כברירת מחדל, ולכן שאילתות עליהן עלולות להוביל לעומס יתר על הביצועים. ברירת המחדל היא 'לא'. |
| פרויקט ליצירת טבלה זמנית | כן | לא | ההגדרה הזו רלוונטית רק אם האפשרות הפעלת שאילתות בתצוגות מופעלת. שם הפרויקט שבו צריך ליצור את הטבלה הזמנית. כברירת מחדל, המערכת משתמשת באותו פרויקט שבו נמצאת הטבלה. |
| מערך נתונים ליצירת טבלה זמנית | כן | לא | מערך הנתונים בפרויקט שצוין שבו צריך ליצור את הטבלה הזמנית. ברירת המחדל היא אותו מערך נתונים שבו נמצאת הטבלה. |
| סכימת הפלט | כן | כן | סכימה של הטבלה לקריאה. אפשר לאחזר אותו בלחיצה על קבלת סכימה. |
מיפוי של סוגי נתונים
בטבלה הבאה מפורטים סוגי הנתונים ב-BigQuery והסוגים התואמים ב-CDAP.
| סוג נתונים ב-BigQuery | סוג נתונים של סכימה ב-CDAP |
|---|---|
BOOL |
boolean |
BYTES |
bytes |
DATE |
date |
DATETIME |
datetime, string |
FLOAT64 |
double |
GEO |
unsupported |
INT64 |
long |
NUMERIC |
decimal |
BIGNUMERIC |
decimal |
REPEATED |
array |
STRING |
string, datetime (פורמט ISO 8601) |
STRUCT |
record |
TIME |
time (מיקרו-שניות) |
TIMESTAMP |
timestamp (מיקרו-שניות) |
JSON |
unsupported |