Menyiapkan arsitektur pelaporan kepada regulator dengan BigQuery

Last reviewed 2022-05-24 UTC

Dokumen ini menunjukkan cara memulai solusi pelaporan kepada regulator untuk cloud dan menjalankan pipeline dasar. Fitur ini ditujukan bagi data engineer di lembaga keuangan yang ingin memahami arsitektur dan praktik terbaik untuk menghasilkan pelaporan kepada regulator yang stabil dan andal.

Dalam tutorial ini, Anda akan membuat contoh nyata platform pemrosesan data regulasi di resource Google Cloud. Platform contoh ini mendemonstrasikan cara mengimplementasikan pipeline pemrosesan data yang menjaga kualitas data, kemampuan audit, dan kemudahan dalam merubah dan men-deploy dan juga memenuhi persyaratan pelaporan kepada regulator berikut:

  • Penyerapan data dari sumber
  • Pemrosesan data terperinci dalam jumlah besar
  • Agregasi data ke dalam laporan.

Dokumen ini mengasumsikan bahwa Anda sudah memahami Terraform versi 1.1.7, alat build data (dbt) versi 1.0.4, Cloud Storage, dan BigQuery.

Tujuan

  • Membuat infrastruktur dari repositori yang di-clone.
  • Memuat data yang sudah diproduksi ke dalam BigQuery.
  • Mengekstrak metrik regulasi dari data terperinci.
  • Menyimpan pipeline ekstraksi ke dalam container.

Biaya

Dalam dokumen ini, Anda menggunakan komponen Google Cloud yang dapat ditagih berikut:

Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda, gunakan kalkulator harga. Pengguna baru Google Cloud mungkin memenuhi syarat untuk mendapatkan uji coba gratis.

Setelah menyelesaikan tugas yang dijelaskan dalam dokumen ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat. Untuk mengetahui informasi selengkapnya, lihat Pembersihan.

Sebelum memulai

  1. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  2. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  3. Di konsol Google Cloud, aktifkan Cloud Shell.

    Aktifkan Cloud Shell

Menyiapkan lingkungan Anda

  1. Di Cloud Shell, tentukan project yang ingin Anda gunakan untuk tutorial ini:

    gcloud config set project PROJECT_ID
    

    Ganti PROJECT_ID dengan ID project yang Anda pilih atau buat untuk tutorial ini.

    Jika muncul sebuah dialog, klik Authorize

  2. Tentukan region default yang akan digunakan untuk pembuatan infrastruktur:

     gcloud config set compute/region REGION
    
  3. Membuat dan mengaktifkan lingkungan virtual Python:

    python -m venv reg-rpt-env
    source reg-rpt-env/bin/activate
    

    Anda akan melihat bahwa perintah command line diawali dengan nama lingkungan virtual.

  4. Meng-cloning repository

    git clone \
    "https://github.com/GoogleCloudPlatform/reg-reporting-blueprint"
    
  5. Menginstal Terraform Untuk mempelajari cara melakukan penginstalan, lihat dokumentasi HashiCorp.

  6. Memverifikasi penginstalan.

  7. Menginstal dbt:

    pip3 install dbt-bigquery --upgrade
    
  8. Memverifikasi penginstalan dbt:

     dbt --version
    

    Anda akan melihat detail penginstalan ditampilkan.

  9. Menginisialisasi variabel lingkungan:

    cd reg-reporting-blueprint && source environment-variables.sh
    
  10. Menjalankan skrip penyiapan:

    cd common_components && ./setup_script.sh
    
  11. Menjalankan terraform untuk membuat infrastruktur yang diperlukan:

    cd orchestration/infrastructure/
    terraform init -upgrade
    terraform plan
    terraform apply
    

    Ketik 'yes' saat Anda melihat permintaan konfirmasi.

  12. Untuk memverifikasi bahwa bucket penyerapan telah dibuat, buka halaman Cloud Storage pada konsol Google Cloud, lalu periksa bucket dengan nama yang mirip dengan nilai PROJECT ID.

  13. Buka halaman BigQuery dan pastikan set data berikut telah dibuat:

    homeloan_dev
    homeloan_data
    homeloan_expectedresults
    

Mengupload data sampel

Pada bagian ini, Anda akan mempelajari isi folder repositori data dan data_load, serta memuat data contoh ke BigQuery.

  1. Di instance Cloud Shell Editor, buka folder data di repositori:

    cd ../../../use_cases/examples/home_loan_delinquency/data/
    

    Folder ini berisi dua subfolder yang bernama input dan expected.

    Periksa konten folder input. Folder ini berisi file CSV dengan contoh data input. Data sampel ini hanya disediakan untuk tujuan pengujian.

    Periksa konten folder expected. Folder ini berisi file CSV yang menentukan hasil yang diharapkan setelah transformasi diterapkan.

  2. Buka dan periksa folder data_load/schema, yang berisi file yang menentukan skema data staging:

    cd ../data_load
    

    Skrip dalam folder ini memungkinkan data dimuat ke Cloud Storage terlebih dahulu, lalu ke BigQuery. Data ini sesuai dengan skema yang diharapkan untuk contoh kasus penggunaan pipeline pelaporan kepada regulator dalam tutorial ini.

  3. Muat data ke Cloud Storage:

    ./load_to_gcs.sh ../data/input
    ./load_to_gcs.sh ../data/expected
    

    Data ini sekarang tersedia dalam bucket penyerapan Cloud Storage Anda.

  4. Muat data dari bucket penyerapan Cloud Storage ke BigQuery:

    ./load_to_bq.sh
    
  5. Untuk memverifikasi bahwa data telah dimuat di BigQuery, pada konsol Google Cloud, buka halaman BigQuery, lalu pilih tabel di set data homeloan_data dan homeloan_expectedresults.

    Pilih tab Preview untuk setiap tabel, dan pastikan setiap tabel memiliki data.

Menjalankan pipeline pelaporan kepada regulator

  1. Di lingkungan pengembangan, lakukan inisialisasi dependensi dbt:

    cd ../dbt/
    dbt deps
    

    Tindakan ini akan menginstal dependensi dbt yang diperlukan dalam project dbt Anda.

  2. Uji koneksi antara penginstalan dbt lokal dengan set data BigQuery Anda:

    dbt debug
    

    Di akhir informasi jaringan, konfigurasi, dan dependensi yang ditampilkan oleh perintah, Anda akan melihat pesan berikut: All checks passed!

    Di folder models, buka file SQL dan periksa logika sampel transformasi pelaporan yang diterapkan di dbt.

  3. Menjalankan transformasi pelaporan untuk membuat metrik pelaporan kepada regulator:

    dbt run
    
  4. Menjalankan transformasi untuk tanggal yang Anda pilih:

    dbt run --vars '{"reporting_day": "2021-09-03"}'
    

    Perhatikan variabel yang mengontrol eksekusi transformasi. Variabel reporting_day menunjukkan nilai tanggal yang harus dimiliki portofolio. Saat Anda menjalankan perintah dbt run, praktik terbaiknya adalah menyediakan nilai ini.

  5. Pada konsol Google Cloud, buka halaman BigQuery dan periksa set data homeloan_dev. Perhatikan cara data diisi, dan cara variabel reporting_day yang Anda teruskan digunakan di kolom control.reporting_day pada tampilan wh_denormalised.

  6. Memeriksa file models/schema.yml:

    models:
     - <<: *src_current_accounts_attributes
       name: src_current_accounts_attributes
       columns:
         - name: ACCOUNT_KEY
           tests:
             - unique
                  - not_null
    

    Perhatikan cara file menentukan definisi kolom dan pengujian kualitas data terkait. Misalnya, kolom ACCOUNT_KEY di tabel src_current_accounts_attributes harus unik dan bukan null.

  7. Menjalankan pengujian kualitas data yang ditentukan dalam file konfigurasi:

    dbt test -s test_type:generic
    
  8. Periksa kode pada folder use_cases/examples/home_loan_delinquency/dbt/tests, yang berisi pengujian singular. Perhatikan bahwa pengujian dalam folder ini mengimplementasikan perbandingan tabel antara hasil sesungguhnya yang di-output oleh perintah dbt run, dan hasil yang diharapkan yang tersimpan dalam set data homeloan_expectedresults.

  9. Menjalankan pengujian tunggal:

    dbt test -s test_type:singular
    
  10. Membuat dokumentasi untuk project:

    dbt docs generate && dbt docs serve
    
  11. Pada output yang Anda lihat, telusuri, lalu klik URL berikut: http://127.0.0.1:8080

    Browser Anda akan membuka tab baru yang menampilkan web antarmuka dokumentasi dbt.

  12. Periksalah silsilah model dan dokumentasinya. Anda akan melihat bahwa dokumentasi ini menyertakan semua kode dan dokumentasi untuk model (seperti yang ditentukan dalam file models/schema.yml).

  13. Di Cloud Shell, masukkan:

    Ctrl + c
    

    Cloud Shell berhenti menghosting web antarmuka dbt.

Opsional: Memasukkan transformasi ke dalam container

  1. Di Cloud Shell, buat container untuk langkah memuat data BigQuery, lalu kirim container tersebut ke repositori Google Container:

    cd ../../../../  # the gcloud command should be executed from the root
    gcloud builds submit --config use_cases/examples/home_loan_delinquency/data_load/cloudbuild.yaml
    

    Dockerfile di direktori data_load memungkinkan containerization, yang mana menyederhanakan orkestrasi alur kerja.

  2. Masukkan kode untuk langkah transformasi data ke dalam container, lalu mengirimkan container tersebut ke Container Registry:

    gcloud builds submit --config use_cases/examples/home_loan_delinquency/dbt/cloudbuild.yaml
    

    Containerization membantu Anda membuat paket yang dapat dibuat berversi dan dapat di-deploy.

  3. Mengambil jalur halaman Airflow dan bucket Cloud Storage untuk dag, lalu menyimpan mereka ke dalam variabel lingkungan:

    cd common_components/orchestration/infrastructure/
    AIRFLOW_DAG_GCS=$(terraform output --raw airflow_dag_gcs_prefix)
    AIRFLOW_UI=$(terraform output --raw airflow_uri)
    
  4. Mengupload data dag home loan delinquency

    cd ../../../use_cases/examples/home_loan_delinquency/deploy/
    gsutil cp run_homeloan_dag.py $AIRFLOW_DAG_GCS
    
  5. Buka halaman Airflow dengan menjalankan perintah berikut untuk mendapatkan UI, lalu mengklik link:

    echo $AIRFLOW_UI
    

Pembersihan

Agar tidak perlu membayar biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.

  1. Di konsol Google Cloud, buka halaman Manage resource.

    Buka Manage resource

  2. Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
  3. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.

Menghapus resource satu per satu

Agar tidak menimbulkan biaya lebih lanjut, hapuslah setiap resource yang Anda gunakan dalam tutorial ini:

cd ../../../../common_components/orchestration/infrastructure/
terraform destroy

Langkah selanjutnya