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

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

  1. 從 Cloud Storage 值區讀取 CSV 檔案。
  2. 呼叫 Cloud Data Loss Prevention API (屬於機密資料保護服務) 進行去識別化。
  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. 在「工作名稱」欄位中,輸入專屬工作名稱。
  4. 選用:如要使用區域端點,請從下拉式選單中選取值。預設區域為 us-central1

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

  5. 從「Dataflow template」(Dataflow 範本) 下拉式選單中選取 the Data Masking/Tokenization from Cloud Storage to BigQuery (using Cloud DLP) template。
  6. 在提供的參數欄位中輸入參數值。
  7. 按一下「Run Job」(執行工作)

gcloud

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

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates-REGION_NAME/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: 您要使用的範本版本

    您可以使用下列值:

  • 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-LOCATION/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 工作的專案 ID Google Cloud
  • DLP_API_PROJECT_ID:您的 DLP API 專案 ID
  • JOB_NAME: 您選擇的不重複工作名稱
  • LOCATION: 您要部署 Dataflow 工作的地區,例如 us-central1
  • VERSION: 您要使用的範本版本

    您可以使用下列值:

  • 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 列數)

後續步驟