Para crear conjuntos de datos de IA de AML en una instancia, debe almacenar los datos en BigQuery dentro de ese proyecto de Google Cloud . En las siguientes secciones se muestra una forma de preparar estos conjuntos de datos y tablas.
Crear un conjunto de datos de salida de BigQuery
Ejecuta el siguiente comando para crear un conjunto de datos que se usará para enviar las salidas de la canalización a BigQuery. En el siguiente comando, selecciona un nombre para BQ_OUTPUT_DATASET_NAME que solo contenga letras (mayúsculas o minúsculas), números y guiones bajos. No puedes usar guiones.
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 los resultados de AML AI, consulta el modelo de datos de salida de AML.
Crear el conjunto de datos de entrada de BigQuery
Crea un conjunto de datos de entrada de BigQuery. Más adelante, introducirás los datos de las transacciones de tu entidad financiera en este conjunto de datos.
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
Crear las tablas del conjunto de datos de entrada de BigQuery y subir los datos de las transacciones
Proporcionamos el esquema del modelo de datos de entrada de la lucha contra el blanqueo de dinero en los siguientes formatos:
- Un solo archivo CSV
aml-input-data-model.csv
con todas las tablas incluidas - Un solo archivo JSON
aml-input-data-model.json
con todas las tablas incluidas - Archivos JSON individuales para cada tabla:
Proporcionamos la tabla de registro de terceros en formato JSON. Usará esta tabla más adelante cuando registre a los participantes para crear resultados de predicción.
Para descargar el archivo JSON de cada tabla y usarlo para crear la tabla de BigQuery asociada aplicando el esquema, ejecuta el siguiente 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
Suba los datos de las transacciones de su institución financiera a las tablas del conjunto de datos. Para obtener más información, consulta cualquiera de las guías de inicio rápido de BigQuery.
Conceder acceso a los conjuntos de datos de BigQuery
La API crea automáticamente una cuenta de servicio en tu proyecto. La cuenta de servicio debe tener acceso a los conjuntos de datos de entrada y salida de BigQuery.
En el caso de PROJECT_NUMBER, usa el número de proyecto asociado a PROJECT_ID. Puedes encontrar el número de proyecto en la página Configuración de gestión de identidades y accesos.
- Instala
jq
en tu máquina de desarrollo. Si no puedes instalarjq
en tu máquina de desarrollo, puedes usar Cloud Shell o uno de los otros métodos para conceder acceso a un recurso que se describen en la documentación de BigQuery. Ejecuta los siguientes comandos para conceder acceso de lectura al conjunto de datos de entrada y a sus tablas.
# 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
Ejecuta los siguientes comandos para conceder acceso de escritura al conjunto de datos de salida.
# 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