Para criar conjuntos de dados de IA do AML em uma instância, é necessário organizar os dados no BigQuery dentro desse projeto do Google Cloud. As seções a seguir mostram uma maneira de preparar esses conjuntos de dados e tabelas.
Criar um conjunto de dados de saída do BigQuery
Execute o comando a seguir para criar um conjunto de dados a ser usado para enviar as saídas do pipeline para o BigQuery. No comando a seguir, selecione um nome para BQ_OUTPUT_DATASET_NAME que contenha apenas letras (maiúsculas ou minúsculas), números e sublinhados. Não é possível usar hífens.
bq mk \
--location=LOCATION \
--project_id=PROJECT_ID \
BQ_OUTPUT_DATASET_NAME
Para ver as saídas da AML AI, consulte Modelo de dados de saída do AML.
Criar o conjunto de dados de entrada do BigQuery e fazer upload dos dados da transação
Depois de organizar os dados de transações da sua instituição financeira usando o modelo de dados de entrada AML, crie um conjunto de dados de entrada do BigQuery.
bq mk \
--location=LOCATION \
--project_id=PROJECT_ID \
BQ_INPUT_DATASET_NAME
Carregue os dados da transação no conjunto de dados. Para mais informações, consulte qualquer um dos guias de início rápido do BigQuery.
(Opcional) Conceder acesso aos conjuntos de dados do BigQuery para envolvidos no projeto
A API cria automaticamente uma conta de serviço no projeto. A conta de serviço precisa de acesso ao conjunto de dados de entrada e de saída do BigQuery. Há duas maneiras de conceder acesso:
- Conceda acesso a todos os conjuntos de dados do BigQuery no seu projeto (exige a execução de apenas dois comandos).
- Restringir o acesso a cada tabela específica em um determinado conjunto de dados do BigQuery (exige a execução de vários comandos para cada conjunto de dados)
Para conceder acesso a todos os conjuntos de dados no seu projeto, execute os dois comandos a seguir. Para um acesso mais restrito, consulte a seção Conceder acesso ao conjunto de dados de entrada do BigQuery.
Conceda acesso de leitura a todos os conjuntos de dados de entrada.
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com" \
--role=roles/bigquery.dataViewer
Conceda acesso de gravação a todos os conjuntos de dados de saída.
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com" \
--role=roles/bigquery.dataEditor
Para mais informações, consulte a página do IAM do BigQuery.
Conceder acesso ao conjunto de dados de entrada do BigQuery
Conceda à conta de serviço acesso de leitura ao conjunto de dados de entrada do BigQuery. Execute os seguintes comandos depois de alterar as variáveis de substituição:
# 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
Para mais informações, consulte a página do IAM do BigQuery.
Conceder acesso ao conjunto de dados de saída do BigQuery
Conceda à conta de serviço acesso de leitura ao conjunto de dados de saída do BigQuery. Execute os seguintes comandos depois de alterar as variáveis de substituição:
# 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