從 Cloud Storage 到 BigQuery 的資料遮蓋/代碼化 (使用 Cloud DLP) 範本

「從 Cloud Storage 到 BigQuery 的資料遮蓋/代碼化」範本會使用 Sensitive Data Protection,並建立串流管道,執行下列步驟:

  1. 從 Cloud Storage bucket 讀取 CSV 檔案。
  2. 呼叫 Cloud Data Loss Prevention API (已併入 Sensitive Data Protection) 進行去識別化。
  3. 將去識別化資料寫入指定的 BigQuery 資料表。

此範本支援使用 Sensitive Data Protection 檢查範本及 Sensitive Data Protection 去識別化範本。因此,範本支援下列兩項工作:

  • 檢查是否有潛在的私密資訊,並將資料去識別化。
  • 去識別化結構化資料 (其中有資料欄指定要去識別化,並且不需要檢驗)。

這個範本不支援去識別化範本位置的區域路徑。系統僅支援全域路徑。

管道相關規定

  • 要符記化的輸入資料必須存在。
  • Sensitive Data Protection 範本必須存在 (例如 DeidentifyTemplate 和 InspectTemplate)。詳情請參閱「Sensitive Data Protection 範本」。
  • BigQuery 資料集必須存在。

範本參數

必要參數

  • inputFilePattern:要讀取輸入資料記錄所在的 CSV 檔案。也接受萬用字元。例如:gs://mybucket/my_csv_filename.csv or gs://mybucket/file-*.csv。
  • deidentifyTemplateName:用於 API 要求的 Sensitive Data Protection 去識別化範本,以模式 projects/<PROJECT_ID>/deidentifyTemplates/<TEMPLATE_ID> 指定。例如:projects/your-project-id/locations/global/deidentifyTemplates/generated_template_id。
  • datasetName:傳送代碼化結果時要使用的 BigQuery 資料集。資料集必須在執行作業前就已存在。
  • dlpProjectId:擁有 DLP API 資源的 Google Cloud 專案 ID。此專案可為擁有 Sensitive Data Protection 範本的相同專案或不同專案。

選用參數

  • inspectTemplateName:用於 API 要求的 Sensitive Data Protection 檢查範本,以模式 projects/<PROJECT_ID>/identifyTemplates/<TEMPLATE_ID> 指定。例如:projects/your-project-id/locations/global/inspectTemplates/generated_template_id。
  • batchSize:傳送檔案以檢驗及代碼化的區塊切割大小/批量。如為 CSV 檔案,batchSize 則為批次中的列數。根據記錄大小和檔案大小,判斷批次大小。DLP API 每次 API 呼叫的酬載大小上限為 524 KB。

執行範本

控制台

  1. 前往 Dataflow 的「Create job from template」(依據範本建立工作) 頁面。
  2. 前往「依範本建立工作」
  3. 在「Job name」(工作名稱) 欄位中,輸入專屬工作名稱。
  4. 選用:如要使用區域端點,請從下拉式選單中選取值。預設區域為 us-central1。

    如需可執行 Dataflow 工作的區域清單,請參閱「Dataflow 位置」。

  5. 從「Dataflow template」(Dataflow 範本) 下拉式選單中,選取「Data Masking/Tokenization from Cloud Storage to BigQuery (using Cloud DLP)」(使用 Cloud DLP 將 Cloud Storage 中的資料遮蓋/代碼化至 BigQuery) 範本。
  6. 在提供的參數欄位中輸入參數值。
  7. 按一下「Run Job」(執行工作)。

gcloud

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

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/Stream_DLP_GCS_Text_to_BigQuery \
    --region REGION_NAME \
    --staging-location STAGING_LOCATION \
    --parameters \
inputFilePattern=INPUT_DATA,\
datasetName=DATASET_NAME,\
batchSize=BATCH_SIZE_VALUE,\
dlpProjectId=DLP_API_PROJECT_ID,\
deidentifyTemplateName=projects/TEMPLATE_PROJECT_ID/deidentifyTemplates/DEIDENTIFY_TEMPLATE,\
inspectTemplateName=projects/TEMPLATE_PROJECT_ID/identifyTemplates/INSPECT_TEMPLATE_NUMBER

更改下列內容:

  • DLP_API_PROJECT_ID:您的 DLP API 專案 ID
  • JOB_NAME:您選擇的不重複工作名稱
  • REGION_NAME:您要部署 Dataflow 工作的區域,例如 us-central1
  • VERSION:您要使用的範本版本

    您可以使用下列值:

    • latest,使用範本的最新版本,該版本位於 bucket 中非依日期命名的上層資料夾:gs://dataflow-templates/latest/
    • 版本名稱,例如 2023-09-12-00_RC00,可使用特定版本的範本,該範本會以巢狀結構存放在 bucket 中相應的依日期命名上層資料夾中:gs://dataflow-templates/
  • STAGING_LOCATION:用於暫存本機檔案的位置 (例如 gs://your-bucket/staging)
  • INPUT_DATA:輸入檔案路徑
  • DEIDENTIFY_TEMPLATE:Sensitive Data ProtectionDeidentify 範本編號
  • DATASET_NAME:BigQuery 資料集名稱
  • INSPECT_TEMPLATE_NUMBER:Sensitive Data Protection 檢查範本編號
  • BATCH_SIZE_VALUE:批量大小 (CSV 檔案每 API 列數)

REST

如要使用 REST API 執行範本,請傳送 HTTP POST 要求。如要進一步瞭解 API 和授權範圍,請參閱 projects.templates.launch。

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Stream_DLP_GCS_Text_to_BigQuery
{
   "jobName": "JOB_NAME",
   "environment": {
       "ipConfiguration": "WORKER_IP_UNSPECIFIED",
       "additionalExperiments": []
   },
   "parameters": {
      "inputFilePattern":INPUT_DATA,
      "datasetName": "DATASET_NAME",
      "batchSize": "BATCH_SIZE_VALUE",
      "dlpProjectId": "DLP_API_PROJECT_ID",
      "deidentifyTemplateName": "projects/TEMPLATE_PROJECT_ID/deidentifyTemplates/DEIDENTIFY_TEMPLATE",
      "inspectTemplateName": "projects/TEMPLATE_PROJECT_ID/identifyTemplates/INSPECT_TEMPLATE_NUMBER"
   }
}

更改下列內容:

  • PROJECT_ID:您要執行 Dataflow 工作的 Google Cloud 專案 ID
  • DLP_API_PROJECT_ID:您的 DLP API 專案 ID
  • JOB_NAME:您選擇的不重複工作名稱
  • LOCATION:您要部署 Dataflow 工作的區域,例如 us-central1
  • VERSION:您要使用的範本版本

    您可以使用下列值:

    • latest,使用範本的最新版本,該版本位於 bucket 中非依日期命名的上層資料夾:gs://dataflow-templates/latest/
    • 版本名稱,例如 2023-09-12-00_RC00,可使用特定版本的範本,該範本會以巢狀結構存放在 bucket 中相應的依日期命名上層資料夾中:gs://dataflow-templates/
  • STAGING_LOCATION:用於暫存本機檔案的位置 (例如 gs://your-bucket/staging)
  • INPUT_DATA:輸入檔案路徑
  • DEIDENTIFY_TEMPLATE:Sensitive Data ProtectionDeidentify 範本編號
  • DATASET_NAME:BigQuery 資料集名稱
  • INSPECT_TEMPLATE_NUMBER:Sensitive Data Protection 檢查範本編號
  • BATCH_SIZE_VALUE:批量 (CSV 檔案中每個 API 的列數)

後續步驟