使用範本處理資料

Dataplex Universal Catalog 提供以 Dataflow 為基礎的範本,可執行常見的資料處理工作,例如擷取、處理資料,以及管理資料生命週期。本指南說明如何設定及執行資料處理範本。

事前準備

Dataplex Universal Catalog 範本採用 Dataflow 技術。 使用範本前,請先啟用 Dataflow API。

啟用 Dataflow API

注意事項:

  • 所有範本都支援常見的 Dataflow 管道選項

  • Dataplex Universal Catalog 會使用資料管道,排定範本定義的工作。

  • 您只能在 Google Cloud 控制台的「Dataplex Universal Catalog」頁面中,查看透過 Dataplex Universal Catalog 排定的工作。

範本:將原始資料轉換為收錄資料

Dataplex Universal Catalog 檔案格式轉換範本會將 Dataplex Universal Catalog Cloud Storage 資產中的資料,或以 CSV 或 JSON 格式儲存的 Dataplex Universal Catalog 實體清單,轉換為 Parquet 或 Avro 格式,並儲存在另一個 Dataplex Universal Catalog 資產中。轉換時會保留分區配置。並支援壓縮輸出檔案。

範本參數

參數 說明
inputAssetOrEntitiesList 包含輸入檔案的 Dataplex Universal Catalog 資產或 Dataplex Universal Catalog 實體。這個參數必須採用以下格式: 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 中的輸出檔案格式。這個參數必須採用 PARQUETAVRO 格式。
outputAsset Dataplex Universal Catalog 資產的名稱,其中包含要儲存輸出檔案的 Cloud Storage bucket。這個參數的格式必須為 projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name>。您可以在 outputAsset 控制台的 Dataplex Universal Catalog 資產 Details 分頁中找到 Google Cloud 。
outputFileCompression 選用:輸出檔案壓縮。這個參數的預設值為 SNAPPY。參數的其他值可以是 UNCOMPRESSEDSNAPPYGZIPBZIP2BZIP2 不支援 PARQUET 檔案。
writeDisposition 選用:指定目的地檔案已存在時要執行的動作。這個參數的預設值為 SKIP,表示只處理目的地目錄中不存在的檔案。這個參數的其他值可以是 OVERWRITE (覆寫所有現有檔案) 或 FAIL (不處理任何項目,且如果至少有一個目的地檔案已存在,就會產生錯誤)。
updateDataplexMetadata

選用:是否要更新新建立實體的 Dataplex Universal Catalog 中繼資料。這個參數的預設值是 false

啟用後,管道會自動將來源的結構定義複製到目的地 Dataplex 實體,且系統不會為這些實體執行自動 Dataplex Universal Catalog 探索作業。如果來源 (原始) 資料的結構定義是由 Dataplex 管理,請使用這個旗標。

執行範本

控制台

  1. 在 Google Cloud 控制台中,前往「Dataplex Universal Catalog」頁面。

    前往 Dataplex Universal Catalog

  2. 前往「Process」(程序) 檢視畫面。

  3. 點選「建立工作」

  4. 在「轉換為已收錄格式」下方,按一下「建立工作」

  5. 選擇 Dataplex Universal Catalog 湖泊。

  6. 提供工作名稱。

  7. 選擇執行工作的區域。

  8. 填寫必要參數。

  9. 按一下「繼續」

gcloud

在殼層或終端機中執行範本:

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

更改下列內容:

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 Universal Catalog output asset ID

REST

提交 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",
 }
}

更改下列內容:

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 Universal Catalog output asset ID

範本:將資料從 BigQuery 資產分層到 Cloud Storage 資產

Dataplex Universal Catalog BigQuery 至 Cloud Storage 範本會將資料從 Dataplex Universal Catalog BigQuery 資產複製到 Dataplex Universal Catalog Cloud Storage 資產,並採用 Dataplex Universal Catalog 相容的版面配置和格式。您可以指定要複製的 BigQuery 資料集或 BigQuery 資料表清單。為提供更多彈性,這個範本可讓您複製指定修改日期之前的資料,並在成功複製後選擇刪除 BigQuery 中的資料。

從 BigQuery 複製分區資料表至 Cloud Storage 時:

  • 範本會在 Cloud Storage bucket 上建立 Hive 樣式的分割區。 BigQuery 的 Hive 樣式分區鍵不得與現有資料欄相同。您可以透過 enforceSamePartitionKey 選項建立新的分割區鍵,或保留相同的分割區鍵,但重新命名現有資料欄。
  • 建立 BigQuery 資料表 (和 Dataproc Metastore 中的資料表) 時,Dataplex Universal Catalog Discovery 會將分割區類型註冊為 string。這可能會影響現有的分割區篩選條件。

單一範本執行作業可轉換的資料表和分區數量有限,約為 300 個。確切數量取決於資料表名稱的長度和其他因素。

範本參數

參數 說明
sourceBigQueryDataset 要分層儲存資料的 BigQuery 資料集。這個參數必須包含格式為 projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name> 的 Dataplex Universal Catalog 資產名稱,或是格式為 projects/<name>/datasets/<dataset-id> 的 BigQuery 資料集 ID。
destinationStorageBucketAssetName 要將資料分層儲存的 Cloud Storage bucket 的 Dataplex Universal Catalog 資產名稱。這項參數必須採用 projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name> 格式。
tables 選用:以半形逗號分隔的 BigQuery 資料表清單,用於分層。如未提供清單,系統會將所有資料表分層。資料表只能依名稱指定 (不得有專案或資料集前置字串),且會區分大小寫。
exportDataModifiedBeforeDateTime 選用:使用這個參數可移動早於這個日期 (和選用時間) 的資料。如果是 BigQuery 分區資料表,請移動在這個日期/時間前最後修改的分區。如果是未分區的資料表,請在資料表上次修改時間早於這個日期/時間時移動。如未指定,則會移動所有表格/分割區。系統預設會以預設時區剖析日期/時間,但支援選填的 Z+HH:mm 後置字元。這個參數必須採用 YYYY-MM-DDYYYY-MM-DDTHH:mm:ssYYYY-MM-DDTHH:mm:ss+03:00 格式。系統也支援相對日期/時間,且必須採用 -PnDTnHnMn.nS 格式 (必須以 -P 開頭,表示過去的時間)。
fileFormat 選用:Cloud Storage 中的輸出檔案格式。這個參數的預設值為 PARQUET。參數的另一個值可以是 AVRO
fileCompression 選用:輸出檔案壓縮。這個參數的預設值為 SNAPPY。參數的其他值可以是 UNCOMPRESSEDSNAPPYGZIPBZIP2。系統不支援 BZIP2 檔案。PARQUET
deleteSourceData 選用:是否要在成功匯出後,從 BigQuery 刪除來源資料。值可以是 truefalse。這個參數的預設值是 false
partitionIdRegExp 選用:只處理分區 ID 符合此規則運算式的分區。如未提供值,這個參數預設為處理所有項目。
writeDisposition 選用:指定目的地檔案已存在時的動作,也就是一或多個資料表/分區已預先分層。這個參數的預設值是 SKIP,表示只處理尚未預先分層的資料表/資料分割。這個參數的其他值可以是 OVERWRITE (覆寫所有現有檔案) 或 FAIL (不處理任何項目,且如果至少有一個目的地檔案已存在,就會產生錯誤)。
enforceSamePartitionKey

選用:是否強制使用相同的分割區金鑰。由於 BigQuery 的限制,分區外部資料表中的分區鍵 (位於檔案路徑中) 無法與檔案中的其中一個資料欄同名。如果這個參數為 true (預設值),目標檔案的分區鍵會設為原始分區資料欄名稱,且檔案中的資料欄會重新命名。如果為 false,系統會重新命名分區鍵。

舉例來說,如果原始資料表是依據名為 TSenforceSamePartitionKey=true 的資料欄分區,則目的地檔案路徑為 gs://<bucket>/TS=<partition ID>/<file>,且檔案中的資料欄會重新命名為 TS_pkey。這樣一來,現有查詢就能針對舊資料表或新資料表中的相同分區執行。

如果是 enforceSamePartitionKey=false,則目的地檔案路徑為 gs://<bucket>/TS_pid=<partition ID>/<file>,但檔案中的資料欄名稱仍為 TS

updateDataplexMetadata

選用:是否要更新新建立實體的 Dataplex Universal Catalog 中繼資料。這個參數的預設值是 false

啟用後,管道會自動將來源的結構定義複製到目的地 Dataplex 實體,且系統不會為這些實體執行自動 Dataplex Universal Catalog 探索作業。如果您要管理來源 BigQuery 資料表的結構定義,請使用這個標記。

執行範本

控制台

  1. 在 Google Cloud 控制台中,前往「Dataplex Universal Catalog」頁面。

    前往 Dataplex Universal Catalog

  2. 前往「Process」(程序) 檢視畫面。

  3. 按一下「建立工作」

  4. 在「從 BQ 資產到 GCS 資產層級」下方,按一下「建立工作」

  5. 選擇 Dataplex Universal Catalog 湖泊。

  6. 提供工作名稱。

  7. 選擇執行工作的區域。

  8. 填寫必要參數。

  9. 按一下「繼續」

gcloud

在殼層或終端機中執行範本:

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

更改下列內容:

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 Universal Catalog asset
name for the source BigQuery dataset, or the dataset ID
DESTINATION_ASSET_NAME: your Dataplex Universal Catalog asset name for
the destination Cloud Storage bucket

REST

提交 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",
 }
}

更改下列內容:

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 Universal Catalog asset
name for the source BigQuery dataset, or the dataset ID
DESTINATION_ASSET_NAME: your Dataplex Universal Catalog asset name for
the destination Cloud Storage bucket
REGION_NAME: region in which to run the job

排定其他 Google Cloud提供的或自訂的 Dataflow 範本

您可以在控制台中,排定及監控任何Google Cloud提供的 Dataflow 範本,或自訂 Dataflow 範本。

排程

控制台

  1. 在 Google Cloud 控制台中,前往「Dataplex Universal Catalog」頁面。

    前往 Dataplex Universal Catalog

  2. 前往「Process」(程序) 檢視畫面。

  3. 按一下「建立工作」

  4. 在「撰寫 Dataflow 管道」下方,按一下「建立 Dataflow 管道」

  5. 選擇 Dataplex Universal Catalog 湖泊。

  6. 提供工作名稱。

  7. 選擇要執行工作的區域。

  8. 選擇 Dataflow 範本。

  9. 填寫必要參數。

  10. 按一下「繼續」

監控

控制台

  1. 在 Google Cloud 控制台中,前往「Dataplex Universal Catalog」頁面。

    前往 Dataplex Universal Catalog

  2. 前往「Process」(程序) 檢視畫面。

  3. 按一下「Dataflow pipelines」

  4. 依湖泊或管道名稱篩選。