File Format Conversion テンプレートは、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 の [テンプレートからジョブを作成] ページに移動します。 [テンプレートからジョブを作成] に移動
- [ジョブ名] フィールドに、固有のジョブ名を入力します。
- (省略可)[リージョン エンドポイント] で、プルダウン メニューから値を選択します。デフォルトのリージョンは
us-central1
です。Dataflow ジョブを実行できるリージョンのリストについては、Dataflow のロケーションをご覧ください。
- [Dataflow テンプレート] プルダウン メニューから、[ 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 プロジェクトの IDJOB_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 ジョブを実行する Google Cloud プロジェクトの IDJOB_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 提供のテンプレートのリストを確認する。