Para criar conjuntos de dados de IA de AML numa instância, tem de preparar os dados no BigQuery nesse Google Cloud projeto. As secções seguintes mostram uma forma de preparar estes conjuntos de dados e tabelas.
Crie um conjunto de dados de saída do BigQuery
Execute o seguinte comando para criar um conjunto de dados a usar para enviar os resultados da pipeline para o BigQuery. No comando seguinte, selecione um nome para BQ_OUTPUT_DATASET_NAME que contenha apenas letras (maiúsculas ou minúsculas), números e sublinhados. Não pode usar hífenes.
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
Para ver as saídas da IA de AML, consulte o modelo de dados de saída de AML.
Crie o conjunto de dados de entrada do BigQuery
Crie um conjunto de dados de entrada do BigQuery. Posteriormente, vai introduzir os dados de transações da sua instituição financeira neste conjunto de dados.
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
Crie as tabelas do conjunto de dados de entrada do BigQuery e carregue os dados de transações
Disponibilizamos o esquema do modelo de dados de entrada de AML nos seguintes formatos:
- Um único ficheiro CSV
aml-input-data-model.csv
com todas as tabelas incluídas - Um único ficheiro JSON
aml-input-data-model.json
com todas as tabelas incluídas - Ficheiros JSON individuais para cada tabela:
Disponibilizamos a tabela de registo de partes no formato JSON. Vai usar esta tabela mais tarde quando registar partes para criar resultados de previsão.
Para transferir o ficheiro JSON de cada tabela e usá-lo para criar a tabela do BigQuery associada aplicando o esquema, execute o seguinte comando.
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
Carregue os dados das transações da sua instituição financeira nas tabelas do conjunto de dados. Para mais informações, consulte qualquer um dos inícios rápidos do BigQuery.
Conceda acesso aos conjuntos de dados do BigQuery
A API cria automaticamente uma conta de serviço no seu projeto. A conta de serviço precisa de acesso aos conjuntos de dados de entrada e saída do BigQuery.
Para PROJECT_NUMBER, use o número do projeto associado a PROJECT_ID. Pode encontrar o número do projeto na página Definições de IAM.
- Instale o
jq
na sua máquina de desenvolvimento. Se não conseguir instalar ojq
no seu computador de desenvolvimento, pode usar o Cloud Shell ou um dos outros métodos para conceder acesso a um recurso descritos na documentação do BigQuery. Execute os seguintes comandos para conceder acesso de leitura ao conjunto de dados de entrada e às respetivas tabelas.
# 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
Execute os seguintes comandos para conceder acesso de escrita ao conjunto de dados de saída.
# 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