如要在執行個體中建立 AML AI 資料集,您需要在該 Google Cloud 專案的 BigQuery 中暫存資料。以下各節將說明準備這些資料集和資料表的方法。
建立 BigQuery 輸出資料集
執行下列指令建立資料集,用於將管道輸出內容傳送至 BigQuery。在下列指令中,選取只包含字母 (大寫或小寫)、數字和底線的名稱。BQ_OUTPUT_DATASET_NAME你無法使用連字號。
bash
bq mk \
--location=LOCATION \
--project_id=PROJECT_ID \
BQ_OUTPUT_DATASET_NAME
powershell
bq mk `
--location=LOCATION `
--project_id=PROJECT_ID `
BQ_OUTPUT_DATASET_NAME
如要查看 AML AI 輸出內容,請參閱 AML 輸出資料模型。
建立 BigQuery 輸入資料集
建立 BigQuery 輸入資料集。稍後,您會將金融機構的交易資料輸入這個資料集。
gcloud
bq mk \
--location=LOCATION \
--project_id=PROJECT_ID \
BQ_INPUT_DATASET_NAME
Powershell
bq mk `
--location=LOCATION `
--project_id=PROJECT_ID `
BQ_INPUT_DATASET_NAME
建立 BigQuery 輸入資料集資料表,並上傳交易資料
我們提供下列格式的 AML 輸入資料模型結構定義:
- 包含所有表格的單一 CSV 檔案
aml-input-data-model.csv - 包含所有表格的單一 JSON 檔案
aml-input-data-model.json - 每個表格的個別 JSON 檔案:
我們提供 JSON 格式的政黨登記表。您稍後註冊當事人時會使用這個表格,以便建立預測結果。
如要下載每個資料表的 JSON 檔案,並使用該檔案套用結構定義來建立相關聯的 BigQuery 資料表,請執行下列指令。
for table in party_registration party account_party_link transaction risk_case_event party_supplementary_data interaction_event
do
curl -O "https://cloud.google.com/financial-services/anti-money-laundering/docs/reference/schemas/${table}.json"
bq mk --table --project_id PROJECT_ID BQ_INPUT_DATASET_NAME.$table $table.json
done
將金融機構的交易資料上傳至資料集表格。 詳情請參閱任一 BigQuery 快速入門導覽課程。
授予 BigQuery 資料集存取權
API 會在專案中自動建立服務帳戶。服務帳戶必須有權存取 BigQuery 輸入和輸出資料集。
請將 PROJECT_NUMBER 替換為與 PROJECT_ID 相關聯的專案編號。您可以在「IAM Settings」(IAM 設定) 頁面中找到專案編號。
- 在開發機器上安裝
jq。如果無法在開發機器上安裝jq,可以使用 Cloud Shell 或 BigQuery 說明文件中授予資源存取權的其他方法。 執行下列指令,授予輸入資料集及其資料表的讀取權限。
# The BigQuery input dataset name. You created this dataset and # uploaded the financial data into it in a previous step. This dataset should be # stored in the Google Cloud project. export BQ_INPUT_DATASET_NAME="BQ_INPUT_DATASET_NAME" # The BigQuery tables in the input dataset. These tables should # be part of the same project as the intended instance. # Make sure to replace each table variable with the appropriate table name. export PARTY_TABLE="PARTY_TABLE" export ACCOUNT_PARTY_LINK_TABLE="ACCOUNT_PARTY_LINK_TABLE" export TRANSACTION_TABLE="TRANSACTION_TABLE" export RISK_CASE_EVENT_TABLE="RISK_CASE_EVENT_TABLE" # Optional table export PARTY_SUPPLEMENTARY_DATA_TABLE="PARTY_SUPPLEMENTARY_DATA_TABLE" # Registered parties table export PARTY_REGISTRATION_TABLE="PARTY_REGISTRATION_TABLE" # Grant the API read access to the BigQuery dataset. # Update the current access permissions on the BigQuery dataset and store in a temp file. # Note: This step requires jq as a dependency. # If jq is not available, the file /tmp/mydataset.json may be created manually. bq show --format=prettyjson "PROJECT_ID:BQ_INPUT_DATASET_NAME" | jq '.access+=[{"role":"READER","userByEmail":"service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com" }]'> /tmp/mydataset.json # Update the BigQuery dataset access permissions using the temp file. bq update --source /tmp/mydataset.json "PROJECT_ID:BQ_INPUT_DATASET_NAME" # Grant the API read access to the BigQuery table if the table is provided. for TABLE in $PARTY_TABLE $TRANSACTION_TABLE $ACCOUNT_PARTY_LINK_TABLE $RISK_CASE_EVENT_TABLE $PARTY_SUPPLEMENTARY_DATA_TABLE $PARTY_REGISTRATION_TABLE; do [ -n TABLE ] && bq add-iam-policy-binding \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com" --role="roles/bigquery.dataViewer" \ PROJECT_ID:BQ_INPUT_DATASET_NAME.${TABLE} done執行下列指令,授予輸出資料集的寫入權限。
# Note: This step requires jq as a dependency. # If jq isn't available, the file /tmp/mydataset.json may be created manually. bq show --format=prettyjson PROJECT_ID:BQ_OUTPUT_DATASET_NAME | jq '.access+=[{"role":"roles/bigquery.dataEditor","userByEmail":"service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com" }]'> /tmp/perms.json bq update --source /tmp/perms.json PROJECT_ID:BQ_OUTPUT_DATASET_NAME