התוסף Cloud Storage batch source מאפשר לקרוא נתונים מקטגוריות של Cloud Storage ולהעביר אותם אל Cloud Data Fusion לעיבוד ולטרנספורמציה נוספים. הוא מאפשר לכם לטעון נתונים מכמה פורמטים של קבצים, כולל:
- מובנה: CSV, Avro, Parquet, ORC
- חצי מובנה: JSON, XML
- אחרים: טקסט, בינארי
לפני שמתחילים
בדרך כלל יש ל-Cloud Data Fusion שני חשבונות שירות:
- חשבון שירות בזמן התכנון: Cloud Data Fusion API Service Agent
- חשבון שירות בזמן הריצה: חשבון השירות של Compute Engine
לפני שמשתמשים בתוסף של מקור אצווה ב-Cloud Storage, צריך להעניק לכל חשבון שירות את התפקיד או ההרשאות הבאים.
סוכן שירות Cloud Data Fusion API
לחשבון השירות הזה כבר יש את כל ההרשאות הנדרשות, ולא צריך להוסיף הרשאות נוספות.
חשבון שירות של Compute Engine
ב Google Cloud פרויקט, מקצים לחשבון השירות של Compute Engine את תפקידי ה-IAM או ההרשאות הבאים:
- Storage Legacy Bucket Reader (
roles/storage.legacyBucketReader). התפקיד המוגדר מראש הזה מכיל את ההרשאה הנדרשתstorage.buckets.get. צפייה באובייקטים באחסון (
roles/storage.legacyBucketReader). התפקיד המוגדר מראש הזה מכיל את ההרשאות הנדרשות הבאות:storage.objects.getstorage.objects.list
הגדרת הפלאגין
- עוברים לממשק האינטרנט של Cloud Data Fusion ולוחצים על Studio.
- מוודאים שהאפשרות Data Pipeline - Batch (צינור נתונים – אצווה) נבחרה (ולא Realtime (זמן אמת)).
- בתפריט מקור, לוחצים על GCS. הצומת Cloud Storage מופיע בצינור.
- כדי להגדיר את המקור, עוברים לצומת Cloud Storage ולוחצים על Properties (מאפיינים).
מזינים את המאפיינים הבאים. רשימה מלאה זמינה במאמר בנושא מאפיינים.
- מזינים תווית לצומת Cloud Storage – לדוגמה,
Cloud Storage tables. מזינים את פרטי החיבור. אתם יכולים להגדיר חיבור חדש וחד-פעמי או חיבור קיים שאפשר להשתמש בו שוב.
חיבור חדש
כדי להוסיף חיבור חד-פעמי ל-Cloud Storage, פועלים לפי השלבים הבאים:
- משאירים את ההגדרה שימוש בחיבור מושבתת.
- בשדה מזהה פרויקט, משאירים את הערך כזיהוי אוטומטי.
בשדה סוג חשבון שירות, משאירים את הערך נתיב קובץ, ובשדה נתיב קובץ חשבון שירות משאירים את הערך auto-detect.
חיבור לשימוש חוזר
כדי לעשות שימוש חוזר בחיבור קיים, פועלים לפי השלבים הבאים:
- מפעילים את האפשרות שימוש בחיבור.
- לוחצים על Browse connections (עיון בחיבורים).
לוחצים על שם החיבור – לדוגמה, Cloud Storage Default.
אופציונלי: אם לא קיים חיבור ואתם רוצים ליצור חיבור חדש לשימוש חוזר, לוחצים על Add connection (הוספת חיבור) ופועלים לפי השלבים בכרטיסייה New connection (חיבור חדש) בדף הזה.
בשדה Reference name (שם הפניה), מזינים שם לשימוש ב-שושלת נתונים, למשל
data-fusion-gcs-campaign.בשדה נתיב, מזינים את הנתיב לקריאה – לדוגמה,
gs://BUCKET_PATH.בשדה פורמט, בוחרים אחד מפורמטי הקבצים הבאים לנתונים שנקראים:
- avro
- blob (פורמט ה-blob דורש סכימה שמכילה שדה בשם body מסוג bytes)
- csv
- מופרד באמצעות תו
- json
- parquet
- text (פורמט הטקסט מחייב סכימה שמכילה שדה בשם body מסוג מחרוזת)
- tsv
- השם של כל פלאגין פורמט שהטמעתם בסביבה שלכם
אופציונלי: כדי לבדוק את הקישוריות, לוחצים על קבלת סכימה.
אופציונלי: בשדה גודל המדגם, מזינים את מספר השורות המקסימלי לבדיקה עבור סוג הנתונים שנבחר – לדוגמה,
1000.אופציונלי: בשדה Override, מזינים את שמות העמודות ואת סוגי הנתונים שלהן כדי לדלג עליהן.
אופציונלי: מזינים מאפיינים מתקדמים, כמו גודל פיצול מינימלי או מסנן נתיבים של ביטוי רגולרי (ראו מאפיינים).
אופציונלי: בשדה שם הקטגוריה הזמנית, מזינים שם לקטגוריה של Cloud Storage.
- מזינים תווית לצומת Cloud Storage – לדוגמה,
אופציונלי: לוחצים על אימות ופותרים את השגיאות שנמצאו.
לוחצים על Close. המאפיינים נשמרים ואפשר להמשיך לבנות את צינור הנתונים ב-Cloud Data Fusion Studio.
מאפיינים
| מאפיין (property) | יכולות מאקרו | מאפיין חובה | תיאור |
|---|---|---|---|
| תווית | לא | כן | השם של הצומת בצינור הנתונים. |
| שימוש בחיבור | לא | לא | מחפשים חיבור לשימוש חוזר למקור. מידע נוסף על הוספה, ייבוא ועריכה של החיבורים שמופיעים כשמעיינים בחיבורים זמין במאמר ניהול חיבורים. |
| חיבור | כן | כן | אם האפשרות Use connection (שימוש בחיבור) מופעלת, השם של החיבור שאפשר להשתמש בו שוב שבוחרים מופיע בשדה הזה. |
| מזהה הפרויקט | כן | לא | השדה הזה משמש רק כשהאפשרות Use connection מושבתת. מזהה ייחודי גלובלי של הפרויקט. ברירת המחדל היא auto-detect. |
| סוג חשבון השירות | כן | לא | בוחרים אחת מהאפשרויות הבאות:
|
| נתיב הקובץ של חשבון השירות | כן | לא | הפרמטר הזה משמש רק כשערך הסוג של חשבון השירות הוא File path. הנתיב במערכת הקבצים המקומית של המפתח לחשבון השירות שמשמש להרשאה. אם המשימות מופעלות באשכולות של Managed Service for Apache Spark,
מגדירים את הערך לזיהוי אוטומטי. אם משימות מופעלות בסוגים אחרים של אשכולות, הקובץ
צריך להיות בכל צומת באשכול. ברירת המחדל היא auto-detect. |
| קובץ JSON של חשבון שירות | כן | לא | השדה הזה נמצא בשימוש רק אם הערך של סוג חשבון השירות הוא JSON. התוכן של קובץ ה-JSON של חשבון השירות. |
| שם הפניה | לא | כן | שם שמזהה באופן ייחודי את המקור הזה בשירותים אחרים, כמו שירותי שושלת והוספת הערות למטא-נתונים. |
| נתיב | כן | כן | הנתיב לקבצים שצריך לקרוא. אם מציינים ספריה, צריך לסיים את הנתיב בלוכסן הפוך (/). לדוגמה, gs://bucket/path/to/directory/. כדי להתאים לתבנית של שם קובץ, אפשר להשתמש בכוכבית (*) כתו כללי לחיפוש. אם לא נמצאים קבצים או שלא נמצאת התאמה, הצינור נכשל. |
| אופן הלימוד | לא | כן | הפורמט של הנתונים לקריאה. הפורמט חייב להיות אחד מהבאים:
|
| גודל הדגימה | כן | לא | מספר השורות המקסימלי שנבדקות לצורך זיהוי אוטומטי של סוג הנתונים. ברירת המחדל היא 1000. |
| Override | כן | לא | רשימת עמודות עם הנתונים התואמים שמהם דילוג על זיהוי אוטומטי של סוג הנתונים. |
| תו מפריד | כן | לא | תו מפריד שבו צריך להשתמש כשהפורמט הוא ערכים מופרדים. המערכת מתעלמת מהמאפיין הזה בפורמטים אחרים. |
| הפעלת ערכים במירכאות | כן | לא | האם להתייחס לתוכן שבין מירכאות כאל ערך. המאפיין הזה משמש רק לפורמטים csv, tsv או delimited. לדוגמה, אם המאפיין הזה מוגדר כ-true, הפלט הבא כולל שני שדות: 1, "a, b, c".
השדה הראשון מכיל את הערך 1. השנייה כוללת
a, b, c. המערכת תחתוך את המירכאות. התו
למעבר לשורה חדשה לא יכול להיות בתוך מרכאות.התוסף מניח שהמירכאות סגורות בצורה נכונה, למשל, "a, b, c". אם לא סוגרים מרכאות ("a,b,c,), תופיע שגיאה.ערך ברירת המחדל הוא False. |
| שימוש בשורה הראשונה ככותרת | כן | לא | האם להשתמש בשורה הראשונה של כל קובץ ככותרת של העמודה. הפורמטים הנתמכים הם text, csv, tsv ו-delimited. ברירת המחדל היא False. |
| גודל מינימלי של פיצול | כן | לא | הגודל המינימלי בבייטים של כל מחיצת קלט. מחיצות קטנות יותר מגדילות את רמת המקביליות, אבל דורשות יותר משאבים ותקורה.
אם הערך של Format הוא blob, אי אפשר לפצל את הנתונים. |
| גודל הפיצול המקסימלי | כן | לא | הגודל המקסימלי בבייטים של כל מחיצת קלט. מחיצות קטנות יותר מגדילות את רמת המקביליות, אבל דורשות יותר משאבים ותקורה.
אם הערך של Format הוא blob, אי אפשר לפצל את הנתונים.ברירת המחדל היא 128MB. |
| מסנן נתיבים של ביטוי רגולרי | כן | לא | ביטוי רגולרי שנתיבי הקבצים צריכים להתאים לו כדי להיכלל בקלט. ההשוואה מתבצעת לפי הנתיב המלא, ולא רק לפי שם הקובץ. אם לא מציינים קובץ, לא מתבצע סינון של קבצים. מידע נוסף על התחביר של ביטויים רגולריים זמין במאמר בנושא תבנית. |
| שדה הנתיב | כן | לא | שדה הפלט שבו יוצג הנתיב של הקובץ שממנו הרשומה נקראה. אם לא מציינים נתיב, הוא לא נכלל ברשומות הפלט. אם מציינים את השדה, הוא חייב להופיע בסכימת הפלט כמחרוזת. |
| Path filename only | כן | לא | אם מוגדר מאפיין Path field, צריך להשתמש רק בשם הקובץ ולא ב-URI של הנתיב. ברירת המחדל היא False. |
| קריאת קבצים באופן רקורסיבי | כן | לא | האם הקבצים ייקראו באופן רקורסיבי מהנתיב. ברירת המחדל היא False. |
| אישור להזנת קלט ריק | כן | לא | האם לאפשר נתיב קלט שלא מכיל נתונים. אם המדיניות מוגדרת כ-False, תופיע שגיאה בתוסף אם אין נתונים לקריאה. אם המדיניות מוגדרת כ-True, לא מוצגת שגיאה ולא נרשמים רשומות. ברירת המחדל היא False. |
| קובץ הנתונים מוצפן | כן | לא | אם הקבצים מוצפנים. מידע נוסף זמין במאמר בנושא הצפנת קובצי נתונים. ברירת המחדל היא False. |
| סיומת של קובץ מטא-נתונים של הצפנה | כן | לא | הסיומת של שם הקובץ של קובץ המטא-נתונים של ההצפנה. ברירת המחדל היא metadata. |
| מאפיינים של מערכת הקבצים | כן | לא | מאפיינים נוספים לשימוש עם InputFormat כשקוראים את הנתונים. |
| קידוד הקובץ | כן | לא | קידוד התווים של הקבצים שצריך לקרוא. ברירת המחדל היא UTF-8. |
| סכימת הפלט | כן | לא | אם מוגדר מאפיין Path field, הוא חייב להופיע בסכימה כמחרוזת. |
הצפנה של קובץ נתונים
בקטע הזה מתואר המאפיין הצפנה של קובץ נתונים. אם מגדירים את הערך ל-true, הקבצים מפוענחים באמצעות ה-Streaming AEAD שסופק על ידי ספריית Tink. לכל קובץ נתונים
צריך לצרף קובץ מטא-נתונים שמכיל את פרטי ההצפנה. לדוגמה, אם יש קובץ נתונים מוצפן בנתיב gs://BUCKET/PATH_TO_DIRECTORY/file1.csv.enc
, צריך להיות קובץ מטא-נתונים בנתיב gs://BUCKET/
PATH_TO_DIRECTORY/file1.csv.enc.metadata. קובץ המטא-נתונים מכיל אובייקט JSON עם המאפיינים הבאים:
| מאפיין (property) | תיאור |
|---|---|
kms |
כתובת ה-URI של Cloud Key Management Service ששימשה להצפנה של המפתח להצפנת נתונים. |
aad |
נתונים נוספים מאומתים שמקודדים ב-Base64 ומשמשים בהצפנה. |
key set |
אובייקט JSON שמייצג את המידע של קבוצת המפתחות שעבר סריאליזציה מספריית Tink. |
דוגמה
/* Counting example */ { "kms": "gcp-kms://projects/my-key-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/mykey", "aad": "73iT4SUJBM24umXecCCf3A==", "keyset": { "keysetInfo": { "primaryKeyId": 602257784, "keyInfo": [{ "typeUrl": "type.googleapis.com/google.crypto.tink.AesGcmHkdfStreamingKey", "outputPrefixType": "RAW", "keyId": 602257784, "status": "ENABLED" }] }, "encryptedKeyset": "CiQAz5HH+nUA0Zuqnz4LCnBEVTHS72s/zwjpcnAMIPGpW6kxLggSrAEAcJKHmXeg8kfJ3GD4GuFeWDZzgGn3tfolk6Yf5d7rxKxDEChIMWJWGhWlDHbBW5B9HqWfKx2nQWSC+zjM8FLefVtPYrdJ8n6Eg8ksAnSyXmhN5LoIj6az3XBugtXvCCotQHrBuyoDY+j5ZH9J4tm/bzrLEjCdWAc+oAlhsUAV77jZhowJr6EBiyVuRVfcwLwiscWkQ9J7jjHc7ih9HKfnqAZmQ6iWP36OMrEn" } }