Preparare set di dati e tabelle BigQuery

Per creare set di dati di IA AML in un'istanza, devi eseguire lo staging dei dati in BigQuery all'interno del progetto Google Cloud. Le sezioni riportate di seguito illustrano un modo per preparare questi set di dati e tabelle.

Crea un set di dati di output BigQuery

Esegui il seguente comando per creare un set di dati da utilizzare per inviare gli output della pipeline a BigQuery. Nel seguente comando, seleziona un nome per BQ_OUTPUT_DATASET_NAME che contenga solo lettere (maiuscole o minuscole), numeri e trattini bassi. Non puoi utilizzare i trattini.

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

Per visualizzare gli output dell'IA AML, consulta il modello di dati di output AML.

Crea il set di dati di input BigQuery

Crea un set di dati di input BigQuery. In un secondo momento, inserirai i dati sulle transazioni della tua istituto finanziario in questo set di dati.

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

Crea le tabelle del set di dati di input BigQuery e carica i dati sulle transazioni

Forniamo lo schema del modello dei dati di input AML nei seguenti formati:

Forniamo la tabella di registrazione del partito in formato JSON. Utilizzerai questa tabella in un secondo momento quando registri le parti per creare risultati di previsione.

Per scaricare il file JSON per ogni tabella e utilizzarlo per creare la tabella BigQuery associata applicando lo schema, esegui il seguente comando.

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

Carica i dati sulle transazioni della tua azienda finanziaria nelle tabelle del set di dati. Per ulteriori informazioni, consulta uno dei comandi iniziali di BigQuery.

Concedi l'accesso ai set di dati BigQuery

L'API crea automaticamente un account di servizio nel progetto. L'account servizio deve avere accesso ai set di dati di input e di output BigQuery.

Per PROJECT_NUMBER, utilizza il numero di progetto associato a PROJECT_ID. Puoi trovare il numero del progetto nella pagina Impostazioni IAM.

  1. Installa jq sulla tua macchina di sviluppo. Se non riesci a installare jq sulla tua macchina di sviluppo, puoi utilizzare Cloud Shell o uno degli altri metodi per concedere l'accesso a una risorsa descritti nella documentazione di BigQuery.
  2. Esegui i seguenti comandi per concedere l'accesso in lettura al set di dati di input e alle sue tabelle.

    # 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. Esegui i seguenti comandi per concedere l'accesso in scrittura al set di dati di output.

    # 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