「檔案格式轉換」範本是一種批次管道,可將儲存在 Cloud Storage 的檔案從一種支援格式轉換為另一種格式。
支援的格式轉換如下:
- CSV 轉換為 Avro
- CSV 轉換為 Parquet
- Avro 轉換為 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 |
Avro 結構定義檔案的 Cloud Storage 路徑。例如 gs://bucket-name/schema/my-schema.avsc 。 |
containsHeaders |
(選用) 輸入的 CSV 檔案是否包含標頭記錄 (true/false)。預設值為 false 。讀取 CSV 檔案時才需要。 |
csvFormat |
(選用) 用於剖析記錄的 CSV 格式規格。預設值為 Default 。
詳情請參閱 Apache Commons CSV 格式。 |
delimiter |
(選用) 輸入 CSV 檔案使用的欄位分隔符號。 |
outputFilePrefix |
(選用) 輸出檔案前置字串。預設值為 output 。 |
numShards |
(選用) 輸出檔案資料分割數。 |
執行範本
控制台
- 前往 Dataflow 的「Create job from template」(透過範本建立工作) 頁面。 前往「依據範本建立工作」
- 在「工作名稱」欄位中,輸入專屬工作名稱。
- 選用:如要使用區域端點,請從下拉式選單中選取值。預設區域為
us-central1
。如需可執行 Dataflow 工作的地區清單,請參閱「Dataflow 位置」。
- 從「Dataflow template」(Dataflow 範本) 下拉式選單中選取 the Convert file formats template。
- 在提供的參數欄位中輸入參數值。
- 按一下「Run Job」(執行工作)。
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 工作的專案 ID Google CloudJOB_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
如要使用 REST API 執行範本,請傳送 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 工作的專案 ID Google CloudJOB_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 結構定義檔案的路徑
後續步驟
- 瞭解 Dataflow 範本。
- 請參閱 Google 提供的範本清單。