תבנית ההמרה של פורמט קובץ היא צינור להעברת נתונים באצווה שממיר קבצים שמאוחסנים ב-Cloud Storage מפורמט נתמך אחד לפורמט נתמך אחר.
המערכת תומכת בהמרות הבאות של פורמטים:
- CSV to Avro
- CSV ל-Parquet
- Avro to Parquet
- Parquet ל-Avro
הדרישות לגבי צינורות עיבוד נתונים
- קטגוריית הפלט של Cloud Storage צריכה להתקיים לפני שמריצים את צינור העיבוד.
פרמטרים של תבניות
| פרמטר | תיאור |
|---|---|
inputFileFormat |
פורמט קובץ הקלט. הערך חייב להיות אחד מהערכים הבאים: [csv, avro, parquet]. |
outputFileFormat |
פורמט קובץ הפלט. הערך חייב להיות אחד מהערכים הבאים: [avro, parquet]. |
inputFileSpec |
תבנית הנתיב של קובצי הקלט ב-Cloud Storage. לדוגמה, gs://bucket-name/path/*.csv |
outputBucket |
תיקיית Cloud Storage שבה ייכתבו קובצי הפלט. הנתיב הזה חייב להסתיים בלוכסן.
לדוגמה, gs://bucket-name/output/ |
schema |
הנתיב ב-Cloud Storage לקובץ סכימת Avro. לדוגמה, gs://bucket-name/schema/my-schema.avsc |
containsHeaders |
(אופציונלי) קובצי ה-CSV של הקלט מכילים רשומת כותרת (true/false). ערך ברירת המחדל הוא false. נדרש רק כשקוראים קובצי CSV. |
csvFormat |
(אופציונלי) מפרט פורמט ה-CSV שבו יש להשתמש לניתוח רשומות. ערך ברירת המחדל הוא Default.
פרטים נוספים זמינים במאמר בנושא פורמט CSV של Apache Commons. |
delimiter |
(אופציונלי) התו המפריד בין השדות בקובצי ה-CSV של הקלט. |
outputFilePrefix |
(אופציונלי) הקידומת של קובץ הפלט. ערך ברירת המחדל הוא output. |
numShards |
(אופציונלי) מספר הרסיסים של קובץ הפלט. |
הפעלת התבנית
המסוף
- עוברים לדף Dataflow Create job from template (יצירת משימה מתבנית). כניסה לדף Create job from template
- בשדה שם המשימה, מזינים שם ייחודי למשימה.
- אופציונלי: בשדה Regional endpoint (נקודת קצה אזורית), בוחרים ערך מהתפריט הנפתח. אזור ברירת המחדל הוא
us-central1.רשימת האזורים שבהם אפשר להריץ משימת Dataflow מופיעה במאמר מיקומי Dataflow.
- בתפריט הנפתח Dataflow template (תבנית של העברת נתונים), בוחרים באפשרות the Convert file formats template.
- בשדות הפרמטרים שמופיעים, מזינים את ערכי הפרמטרים.
- לוחצים על הפעלת העבודה.
gcloud
במעטפת או בטרמינל, מריצים את התבנית:
gcloud dataflow flex-template run JOB_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/File_Format_Conversion \ --parameters \ inputFileFormat=INPUT_FORMAT,\ outputFileFormat=OUTPUT_FORMAT,\ inputFileSpec=INPUT_FILES,\ schema=SCHEMA,\ outputBucket=OUTPUT_FOLDER
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שבו רוצים להריץ את משימת Dataflow Google Cloud -
JOB_NAME: שם ייחודי של המשימה לפי בחירתכם -
REGION_NAME: האזור שבו רוצים לפרוס את עבודת Dataflow, לדוגמה:us-central1 -
VERSION: הגרסה של התבנית שבה רוצים להשתמשאפשר להשתמש בערכים הבאים:
-
latestכדי להשתמש בגרסה העדכנית של התבנית, שזמינה בתיקיית ההורה ללא תאריך בדלי – gs://dataflow-templates-REGION_NAME/latest/ - שם הגרסה, כמו
2023-09-12-00_RC00, כדי להשתמש בגרסה ספציפית של התבנית, שאפשר למצוא אותה בתיקיית האב המתאימה עם התאריך בדלי – gs://dataflow-templates-REGION_NAME/
-
-
INPUT_FORMAT: פורמט הקובץ של קובץ הקלט. הערך חייב להיות אחד מהערכים הבאים:[csv, avro, parquet] -
OUTPUT_FORMAT: פורמט הקובץ של קובצי הפלט. הערך חייב להיות אחד מהערכים הבאים:[avro, parquet] -
INPUT_FILES: דפוס הנתיב לקובצי קלט -
OUTPUT_FOLDER: תיקיית Cloud Storage לקובצי פלט -
SCHEMA: הנתיב לקובץ סכימת Avro
API
כדי להריץ את התבנית באמצעות API בארכיטקטורת REST, שולחים בקשת HTTP POST. מידע נוסף על ה-API ועל היקפי ההרשאות שלו זמין במאמר projects.templates.launch.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch { "launch_parameter": { "jobName": "JOB_NAME", "parameters": { "inputFileFormat": "INPUT_FORMAT", "outputFileFormat": "OUTPUT_FORMAT", "inputFileSpec": "INPUT_FILES", "schema": "SCHEMA", "outputBucket": "OUTPUT_FOLDER" }, "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/File_Format_Conversion", } }
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שבו רוצים להריץ את משימת Dataflow Google Cloud -
JOB_NAME: שם ייחודי של המשימה לפי בחירתכם -
LOCATION: האזור שבו רוצים לפרוס את עבודת Dataflow, לדוגמה:us-central1 -
VERSION: הגרסה של התבנית שבה רוצים להשתמשאפשר להשתמש בערכים הבאים:
-
latestכדי להשתמש בגרסה העדכנית של התבנית, שזמינה בתיקיית ההורה ללא תאריך בדלי – gs://dataflow-templates-REGION_NAME/latest/ - שם הגרסה, כמו
2023-09-12-00_RC00, כדי להשתמש בגרסה ספציפית של התבנית, שאפשר למצוא אותה בתיקיית האב המתאימה עם התאריך בדלי – gs://dataflow-templates-REGION_NAME/
-
-
INPUT_FORMAT: פורמט הקובץ של קובץ הקלט. הערך חייב להיות אחד מהערכים הבאים:[csv, avro, parquet] -
OUTPUT_FORMAT: פורמט הקובץ של קובצי הפלט. הערך חייב להיות אחד מהערכים הבאים:[avro, parquet] -
INPUT_FILES: דפוס הנתיב לקובצי קלט -
OUTPUT_FOLDER: תיקיית Cloud Storage לקובצי פלט -
SCHEMA: הנתיב לקובץ סכימת Avro