Menyiapkan set data dan tabel BigQuery

Untuk membuat set data AI AML dalam instance, Anda perlu melakukan staging data di BigQuery dalam project Google Cloud tersebut. Bagian berikut menunjukkan salah satu cara menyiapkan set data dan tabel ini.

Membuat set data output BigQuery

Jalankan perintah berikut untuk membuat set data yang akan digunakan untuk mengirim output pipeline ke BigQuery. Dalam perintah berikut, pilih nama untuk BQ_OUTPUT_DATASET_NAME yang hanya berisi huruf (huruf besar atau kecil), angka, dan garis bawah. Anda tidak dapat menggunakan tanda hubung.

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

Untuk melihat output AML AI, lihat Model data output AML.

Membuat set data input BigQuery

Buat set data input BigQuery. Nanti, Anda akan memasukkan data transaksi lembaga keuangan ke dalam set data ini.

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

Membuat tabel set data input BigQuery dan mengupload data transaksi

Kami menyediakan skema model data input AML dalam format berikut:

Kami menyediakan tabel pendaftaran pihak dalam format JSON. Anda akan menggunakan tabel ini nanti saat mendaftarkan pihak untuk membuat hasil prediksi.

Untuk mendownload file JSON untuk setiap tabel dan menggunakannya untuk membuat tabel BigQuery terkait dengan menerapkan skema, jalankan perintah berikut.

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

Upload data transaksi lembaga keuangan Anda ke tabel set data. Untuk informasi selengkapnya, lihat salah satu panduan memulai BigQuery.

Memberikan akses ke set data BigQuery

API akan otomatis membuat akun layanan di project Anda. Akun layanan memerlukan akses ke set data input dan output BigQuery.

Untuk PROJECT_NUMBER, gunakan nomor project yang terkait dengan PROJECT_ID. Anda dapat menemukan nomor project di halaman IAM Settings.

  1. Instal jq di komputer pengembangan Anda. Jika tidak dapat menginstal jq di komputer pengembangan, Anda dapat menggunakan Cloud Shell atau salah satu metode lain untuk memberikan akses ke resource yang ditemukan dalam dokumentasi BigQuery.
  2. Jalankan perintah berikut untuk memberikan akses baca ke set data input dan tabelnya.

    # 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. Jalankan perintah berikut untuk memberikan akses tulis ke set data 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