如需在实例中创建 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
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 设置页面上找到项目编号。
- 在以下设备上安装
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