如需在实例中创建 AML AI 数据集,您需要在该 Google Cloud 项目的 BigQuery 中暂存数据。以下部分介绍了准备这些数据集和表的一种方法。
创建 BigQuery 输出数据集
运行以下命令创建数据集,以用于将流水线输出发送到 BigQuery。在以下命令中,为 BQ_OUTPUT_DATASET_NAME 选择仅包含字母(大写或小写字母)、数字和下划线的名称。不能使用连字符。
bq mk \
--location=LOCATION \
--project_id=PROJECT_ID \
BQ_OUTPUT_DATASET_NAME
如需查看 AML AI 输出,请参阅 AML 输出数据模型。
创建 BigQuery 输入数据集并上传交易数据
使用 AML 输入数据模型整理金融机构的交易数据后,请创建 BigQuery 输入数据集。
bq mk \
--location=LOCATION \
--project_id=PROJECT_ID \
BQ_INPUT_DATASET_NAME
将交易数据上传到数据集中。如需了解详情,请参阅任意 BigQuery 快速入门。
(可选)授予对 BigQuery 数据集的项目级访问权限
API 会自动在您的项目中创建服务帐号。该服务帐号需要访问 BigQuery 输入数据集和 BigQuery 输出数据集。您可以通过以下两种方式授予访问权限:
- 授予对项目中的每个 BigQuery 数据集的访问权限(只需运行两条命令)
- 限制对给定 BigQuery 数据集中的每个特定表的访问权限(需要为每个数据集运行多条命令)
如需授予对项目中每个数据集的访问权限,请运行以下两个命令。如需了解更多受限的访问权限,请参阅授予对 BigQuery 输入数据集的访问权限部分。
授予对所有输入数据集的读取权限。
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com" \
--role=roles/bigquery.dataViewer
授予对所有输出数据集的写入权限。
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com" \
--role=roles/bigquery.dataEditor
如需了解详情,请参阅 BigQuery IAM 页面。
授予对 BigQuery 输入数据集的访问权限
向服务帐号授予对 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"
# 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 ; 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
如需了解详情,请参阅 BigQuery IAM 页面。
授予对 BigQuery 输出数据集的访问权限
向服务帐号授予对 BigQuery 输出数据集的读取权限。更改替换变量后运行以下命令:
# 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