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 entreposer les données dans BigQuery au sein de ce projet Google Cloud. Les sections suivantes présentent une façon de préparer ces ensembles de données et ces tables.

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

Exécutez la commande suivante pour créer un ensemble de données à utiliser pour envoyer les résultats du pipeline à BigQuery. Dans la commande suivante, 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 voir les résultats de l'AML basée sur l'IA, consultez Modèle de données de sortie 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 les données de transaction de votre établissement financier dans ce jeu de données.

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

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

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

Pour télécharger le fichier JSON de chaque table et l'utiliser afin de créer la table BigQuery associée en appliquant le schéma, exécutez la commande suivante.

for table in 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

Téléchargez les données de transaction de votre établissement financier dans les tableaux du jeu 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 compte de service a besoin d'accéder aux ensembles de données d'entrée et de sortie BigQuery.

  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 permettant d'accorder l'accès à une ressource disponible dans la documentation BigQuery.
  2. Exécutez les commandes suivantes pour accorder l'accès en lecture à l'ensemble de données d'entrée et à ses tables.

    # 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
    
  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