Dataplex は、データの取り込み、処理、データ ライフサイクルの管理などの一般的なデータ処理タスクを実行するための(Dataflow が供給する)テンプレートを提供します。このガイドでは、データ処理テンプレートを構成して実行する方法について説明します。
始める前に
Dataplex テンプレートは、Dataflow によって提供されます。テンプレートを使用する前に、Dataflow API を有効にします。
メモ
すべてのテンプレートは、共通の Dataflow パイプライン オプションをサポートしています。
Dataplex は、データ パイプラインを使用して、テンプレートで定義されたタスクをスケジュールします。
Google Cloud コンソールの [Dataplex] ページには、Dataplex でスケジュールしたタスクのみが表示されます。
テンプレート: 元データをキュレートされたデータに変換する
Dataplex ファイル形式変換テンプレートは、Dataplex Cloud Storage アセットまたは CSV または JSON 形式に保存されている Dataplex エンティティのリストのデータを、別の Dataplex アセットの Parquet、もしくは Avro 形式データに変換します。パーティション レイアウトは変換時に保持されます。また、出力ファイルの圧縮もサポートしています。
テンプレートのパラメータ
パラメータ | 説明 |
---|---|
inputAssetOrEntitiesList |
入力ファイルを含む Dataplex アセットまたは Dataplex エンティティ。このパラメータは、projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name> または projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/entities/<entity1-name>,projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/entities/<entity 2 name>... の形式で指定します。 |
outputFileFormat |
Cloud Storage の出力ファイル形式。このパラメータは、PARQUET または AVRO の形式で指定する必要があります。 |
outputAsset |
出力ファイルが保存される Cloud Storage バケットを含む Dataplex アセットの名前。このパラメータは、projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name> の形式で指定する必要があります。outputAsset は、Google Cloud コンソール で、Dataplex アセットの Details タブで確認できます。 |
outputFileCompression |
省略可: 出力ファイルの圧縮。このパラメータのデフォルト値は SNAPPY です。パラメータの他の値は UNCOMPRESSED 、SNAPPY 、GZIP 、BZIP2 のいずれかにできます。BZIP2 は PARQUET ファイルではサポートされていません。 |
writeDisposition |
省略可: 宛先ファイルがすでに存在する場合に実施するアクションを指定します。このパラメータのデフォルト値は SKIP で、宛先ディレクトリに存在しないファイルのみを処理するように指示します。パラメータには、OVERWRITE (既存のファイルを上書きする)または FAIL (少なくとも 1 つの宛先ファイルがすでに存在する場合は何も処理せず、エラーが発生する)のいずれかを指定できます。 |
updateDataplexMetadata |
省略可: 新しく作成されたエンティティの Dataplex メタデータを更新するかどうか。このパラメータのデフォルト値は 有効にすると、パイプラインはスキーマをソースからコピー先の Dataplex エンティティに自動的にコピーし、自動化された Dataplex Discovery はそれらのために実行されません。このフラグは、ソース(元の)データのスキーマが Dataplex によって管理されている場合に使用します。 |
テンプレートを実行する
Console
Google Cloud コンソールの [Dataplex] ページに移動します。
[プロセス] ビューに移動します。
[タスクを作成] をクリックします。
[キュレートされた形式に変換する] で、[タスクを作成] をクリックします。
Dataplex レイクを選択します。
タスク名を指定します。
タスクの実行に使用するリージョンを選択します。
必須パラメータを入力します。
[続行] をクリックします。
gcloud
以下を置き換えます。
JOB_NAME: a job name of your choice PROJECT_ID: your template project ID REGION_NAME: region in which to run the job INPUT_ASSET_OR_ENTITIES_LIST: path to your JDBC drivers OUTPUT_FILE_FORMAT: your output file format in Cloud Storage OUTPUT_ASSET: your Dataplex output asset ID
シェルまたはターミナルで、テンプレートを実行します。
gcloud beta dataflow flex-template run JOB_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_File_Format_Conversion_Preview \ --parameters \ inputAssetOrEntitiesList=INPUT_ASSET_OR_ENTITIES_LIST,\ outputFileFormat=OUTPUT_FILE_FORMAT,\ outputAsset=OUTPUT_ASSET
REST API
以下を置き換えます。
PROJECT_ID: your template project ID REGION_NAME: region in which to run the job JOB_NAME: a job name of your choice INPUT_ASSET_OR_ENTITIES_LIST: path to your JDBC drivers OUTPUT_FILE_FORMAT: your output file format in Cloud Storage OUTPUT_ASSET: your Dataplex output asset ID
HTTP POST リクエストの送信:
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/REGION_NAME/flexTemplates:launch { "launch_parameter": { "jobName": "JOB_NAME", "parameters": { "inputAssetOrEntitiesList": "INPUT_ASSET_OR_ENTITIES_LIST", "outputFileFormat": "OUTPUT_FILE_FORMAT", "outputAsset": "OUTPUT_ASSET", }, "containerSpecGcsPath": "gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_File_Format_Conversion_Preview", } }
テンプレート: BigQuery アセットから Cloud Storage アセットにデータを階層化する
Dataplex BigQuery to Cloud Storage テンプレートは、Dataplex 互換のレイアウトと形式で、Dataplex BigQuery アセットから Dataplex Cloud Storage アセットにデータをコピーします。コピーする BigQuery データセットまたは BigQuery テーブルのリストを指定できます。柔軟性を高めるために、このテンプレートを使用すると、指定した変更日より古いデータをコピーできます。また、コピーの成功後に BigQuery からデータを削除することもできます。
パーティション分割テーブルを BigQuery から Cloud Storage にコピーする場合:
- このテンプレートにより、Cloud Storage バケットに Hive スタイルのパーティションが作成されます。BigQuery では、Hive スタイルのパーティション キーを既存の列と同じにすることはできません。オプション
enforceSamePartitionKey
を使用すると、新しいパーティション キーを作成するか、同じパーティション キーを維持したまま既存の列の名前を変更できます。 - Dataplex Discovery は、BigQuery テーブル(および Dataproc Metastore のテーブル)を作成するときに、パーティション タイプを
string
として登録します。これにより、既存のパーティション フィルタに影響する可能性があります。
1 回のテンプレート実行で変換できるテーブルとパーティションの数には上限があり、約 300 個です。正確な数は、テーブル名の長さなどの要因によって異なります。
テンプレートのパラメータ
パラメータ | 説明 |
---|---|
sourceBigQueryDataset |
データを階層化する BigQuery データセット。このパラメータには、projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name> 形式の Dataplex アセット名または projects/<name>/datasets/<dataset-id> 形式の BigQuery データセット ID を含める必要があります。 |
destinationStorageBucketAssetName |
データを階層化する Cloud Storage バケットの Dataplex アセット名。このパラメータは、projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name> 形式で指定する必要があります。 |
tables |
省略可: 階層化する BigQuery テーブルのカンマ区切りのリスト。リストが指定されていない場合、すべてのテーブルは階層化されます。テーブルは名前のみで指定します(プロジェクト/データセット接頭辞なし)。また、大文字と小文字は区別されます。 |
exportDataModifiedBeforeDateTime |
省略可: このパラメータを使用して、この日付(およびオプションの時刻)より古いデータを移動します。BigQuery のパーティション分割テーブルの場合、この日時より前に最終更新されたパーティションを移動します。パーティション分割されていないテーブルの場合、テーブルの最終更新がこの日時より前の場合は移動します。指定しない場合、すべてのテーブル / パーティションを移動します。デフォルトでは、日付と時刻はデフォルトのタイムゾーンで解析されますが、オプションのサフィックス Z と +HH:mm がサポートされています。このパラメータは、YYYY-MM-DD 、YYYY-MM-DDTHH:mm:ss 、YYYY-MM-DDTHH:mm:ss+03:00 の形式に従う必要があります。相対的な日時もサポートされており、-PnDTnHnMn.nS という形式に従う必要があります(-P で始まる必要があります。これは過去の時刻を示します)。 |
fileFormat |
省略可: Cloud Storage の出力ファイル形式。このパラメータのデフォルト値は PARQUET です。パラメータの他の値は AVRO です。 |
fileCompression |
省略可: 出力ファイルの圧縮。このパラメータのデフォルト値は SNAPPY です。パラメータの他の値は UNCOMPRESSED 、SNAPPY 、GZIP 、BZIP2 のいずれかにできます。BZIP2 は PARQUET ファイルではサポートされていません。 |
deleteSourceData |
省略可: エクスポートが正常に完了した後に BigQuery からソースデータを削除するかどうか。値は true または false です。このパラメータのデフォルト値は false です。 |
partitionIdRegExp |
省略可: この正規表現に一致するパーティション ID を持つパーティションのみを処理します。値が指定されていない場合、このパラメータはデフォルトですべてを処理します。 |
writeDisposition |
省略可: 宛先ファイルがすでに存在する場合、つまり 1 つ以上のテーブルまたはパーティションがすでに事前階層化されている場合に実施するアクションを指定します。このパラメータのデフォルト値は SKIP です。これは、まだ事前階層化されていないテーブル / パーティションのみを処理するよう指示します。パラメータには、OVERWRITE (既存のファイルを上書きする)または FAIL (少なくとも 1 つの宛先ファイルがすでに存在する場合は何も処理せず、エラーが発生する)のいずれかを指定できます。 |
enforceSamePartitionKey |
省略可: 同じパーティション キーを適用するかどうか。BigQuery の制限により、外部のパーティション分割テーブルのパーティション キー(ファイルパス内)はファイル内の列のいずれかと同じ名前にすることはできません。このパラメータが true(デフォルト値)の場合、ターゲット ファイルのパーティション キーは元のパーティション列名に設定され、ファイルの列名が変更されます。false の場合、パーティション キーの名前が変更されます。 たとえば、元のテーブルが
|
updateDataplexMetadata |
省略可: 新しく作成されたエンティティの Dataplex メタデータを更新するかどうか。このパラメータのデフォルト値は 有効にすると、パイプラインはスキーマをソースからコピー先の Dataplex エンティティに自動的にコピーし、自動化された Dataplex Discovery はそれらのために実行されません。このフラグは、ソース BigQuery テーブルのスキーマを管理する場合に使用します。 |
テンプレートを実行する
Console
Google Cloud コンソールの [Dataplex] ページに移動します。
[プロセス] ビューに移動します。
[タスクの作成] をクリックします。
[BQ アセットから GCS アセットに階層化する] で、[タスクを作成] をクリックします。
Dataplex レイクを選択します。
タスク名を指定します。
タスクの実行に使用するリージョンを選択します。
必須パラメータを入力します。
[続行] をクリックします。
gcloud
以下を置き換えます。
JOB_NAME: a job name of your choice PROJECT_ID: your template project ID REGION_NAME: region in which to run the job SOURCE_ASSET_NAME_OR_DATASET_ID: your Dataplex asset name for the source BigQuery dataset, or the dataset ID DESTINATION_ASSET_NAME: your Dataplex asset name for the destination Cloud Storage bucket
シェルまたはターミナルで、テンプレートを実行します。
gcloud beta dataflow flex-template run JOB_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_BigQuery_to_GCS_Preview \ --parameters \ sourceBigQueryDataset=SOURCE_ASSET_NAME_OR_DATASET_ID,\ destinationStorageBucketAssetName=DESTINATION_ASSET_NAME
REST API
以下を置き換えます。
PROJECT_ID: your template project ID REGION_NAME: region in which to run the job JOB_NAME: a job name of your choice SOURCE_ASSET_NAME_OR_DATASET_ID: your Dataplex asset name for the source BigQuery dataset, or the dataset ID DESTINATION_ASSET_NAME: your Dataplex asset name for the destination Cloud Storage bucket REGION_NAME: region in which to run the job
HTTP POST リクエストの送信:
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/REGION_NAME/flexTemplates:launch { "launch_parameter": { "jobName": "JOB_NAME", "parameters": { "sourceBigQueryDataset": "SOURCE_ASSET_NAME_OR_DATASET_ID", "destinationStorageBucketAssetName": "DESTINATION_ASSET_NAME", }, "containerSpecGcsPath": "gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_BigQuery_to_GCS_Preview", } }
他の Google Cloud 提供またはカスタム Dataflow テンプレートをスケジュールする
Dataplex を使用すると、Google Cloud 提供の Dataflow テンプレートまたはカスタム Dataflow テンプレートをコンソールでスケジュールしてモニタリングできます。
スケジュール
Console
Google Cloud コンソールの [Dataplex] ページに移動します。
[プロセス] ビューに移動します。
[タスクの作成] をクリックします。
[Dataflow パイプラインの作成] で、[Dataflow パイプラインを作成] をクリックします。
Dataplex レイクを選択します。
タスク名を指定します。
タスクを実行するリージョンを選択します。
Dataflow テンプレートを選択します。
必須パラメータを入力します。
[続行] をクリックします。
モニタリング
Console
Google Cloud コンソールの [Dataplex] ページに移動します。
[プロセス] ビューに移動します。
[Dataflow パイプライン] をクリックします。
レイク名またはパイプライン名でフィルタします。