Preparar conjuntos de dados e tabelas do BigQuery

Para criar conjuntos de dados de IA antilavagem de dinheiro em uma instância, é necessário organizar dados no BigQuery nesse 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 é permitido usar hifens.

bq mk \
  --location=LOCATION \
  --project_id=PROJECT_ID \
  BQ_OUTPUT_DATASET_NAME

Para conferir as saídas da IA antilavagem de dinheiro, consulte o modelo de dados de saída da antilavagem de dinheiro.

crie o conjunto de dados de entrada do BigQuery

Criar um conjunto de dados de entrada do BigQuery Depois, você vai inserir os dados de transações da sua instituição financeira nesse conjunto de dados.

bq mk \
  --location=LOCATION \
  --project_id=PROJECT_ID \
  BQ_INPUT_DATASET_NAME

criar as tabelas do conjunto de dados de entrada do BigQuery e fazer upload dos dados da transação;

Fornecemos o esquema do modelo de dados de entrada AML nos seguintes formatos:

Fornecemos a tabela de registro de terceiros no formato JSON. Você usará essa tabela mais tarde ao registrar partes para criar resultados de previsão.

Execute o comando a seguir para fazer o download do arquivo JSON de cada tabela e usá-lo para criar a tabela do BigQuery associada aplicando o esquema.

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

Faça upload dos dados de transações da sua instituição financeira para as tabelas do conjunto de dados. Para mais informações, consulte os guias de início rápido do BigQuery.

Conceder acesso aos conjuntos de dados do BigQuery

A API cria automaticamente uma conta de serviço no projeto. Essa conta 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. Você encontra esse número na página Configurações do IAM.

  1. Instale o jq na sua máquina de desenvolvimento. Se não for possível instalar jq na sua máquina de desenvolvimento, use o Cloud Shell ou um dos outros métodos para conceder acesso a um recurso encontrado na documentação do BigQuery.
  2. Execute os comandos a seguir para conceder acesso de leitura ao conjunto de dados de entrada e às tabelas dele.

    # 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
    
  3. Execute os comandos a seguir para conceder acesso de gravação 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