Préparer les ensembles de données et les tables BigQuery

Pour créer des ensembles de données d'AML basée sur l'IA dans une instance, vous devez préproduire dans BigQuery au sein du projet Google Cloud. Les sections suivantes présentent une façon de préparer ces ensembles de données et tables.

Créer un ensemble de données de sortie BigQuery

Exécutez la commande suivante pour créer un ensemble de données qui sera pour envoyer les résultats du pipeline à BigQuery. Dans les sélectionnez un nom pour BQ_OUTPUT_DATASET_NAME ne contenant que des lettres (majuscules ou minuscules), des chiffres et des traits de soulignement. Vous ne pouvez pas utiliser de traits d'union.

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

Pour afficher les résultats de l'AML basée sur l'IA, consultez la section Modèle de données de sortie d'AML.

Créer l'ensemble de données d'entrée BigQuery

Créer un ensemble de données d'entrée BigQuery Plus tard, vous saisirez votre les données de transaction d'une institution financière dans cet ensemble de données.

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

Créer les tables des ensembles de données d'entrée BigQuery et importer les données de transaction

Nous fournissons le schéma du modèle de données d'entrée AML aux formats suivants:

Nous fournissons tableau des inscriptions des partis au format JSON. Vous utiliserez ce tableau plus tard lorsque vous enregistrerez des parties afin de pour créer des résultats de prédiction.

Télécharger le fichier JSON de chaque table et l'utiliser pour créer les table BigQuery en appliquant le schéma, exécutez la commande suivante : .

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

Importez les données de transaction de votre établissement financier dans les tables des ensembles de données. Pour en savoir plus, consultez l'un des Guides de démarrage rapide de BigQuery

Accorder l'accès aux ensembles de données BigQuery

L'API crée automatiquement un compte de service dans votre projet. Le service a besoin d'accéder aux ensembles de données d'entrée et de sortie BigQuery.

Pour PROJECT_NUMBER, utilisez la méthode numéro de projet associé à PROJECT_ID Vous trouverez le projet sur la page Paramètres IAM.

  1. Installez jq sur votre ordinateur de développement. Si vous ne pouvez pas installer jq sur votre ordinateur de développement, vous pouvez utiliser Cloud Shell ou l'une des autres méthodes accordant l'accès à une ressource dans la documentation BigQuery.
  2. Exécutez les commandes suivantes pour accorder un accès en lecture à l'ensemble de données d'entrée et à ses tableaux.

    # 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. Exécutez les commandes suivantes pour accorder un accès en écriture à l'ensemble de données de sortie.

    # 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