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.
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
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Menyiapkan lingkungan Anda
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
Tentukan region default yang akan digunakan untuk pembuatan infrastruktur:
gcloud config set compute/region REGION
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.
Meng-cloning repository
git clone \ "https://github.com/GoogleCloudPlatform/reg-reporting-blueprint"
Menginstal Terraform Untuk mempelajari cara melakukan penginstalan, lihat dokumentasi HashiCorp.
Memverifikasi penginstalan.
Menginstal dbt:
pip3 install dbt-bigquery --upgrade
Memverifikasi penginstalan dbt:
dbt --version
Anda akan melihat detail penginstalan ditampilkan.
Menginisialisasi variabel lingkungan:
cd reg-reporting-blueprint && source environment-variables.sh
Menjalankan skrip penyiapan:
cd common_components && ./setup_script.sh
Menjalankan terraform untuk membuat infrastruktur yang diperlukan:
cd orchestration/infrastructure/ terraform init -upgrade terraform plan terraform apply
Ketik 'yes' saat Anda melihat permintaan konfirmasi.
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
.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.
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
danexpected
.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.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.
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.
Muat data dari bucket penyerapan Cloud Storage ke BigQuery:
./load_to_bq.sh
Untuk memverifikasi bahwa data telah dimuat di BigQuery, pada konsol Google Cloud, buka halaman BigQuery, lalu pilih tabel di set data
homeloan_data
danhomeloan_expectedresults
.Pilih tab Preview untuk setiap tabel, dan pastikan setiap tabel memiliki data.
Menjalankan pipeline pelaporan kepada regulator
Di lingkungan pengembangan, lakukan inisialisasi dependensi dbt:
cd ../dbt/ dbt deps
Tindakan ini akan menginstal dependensi dbt yang diperlukan dalam project dbt Anda.
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.Menjalankan transformasi pelaporan untuk membuat metrik pelaporan kepada regulator:
dbt run
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 perintahdbt run
, praktik terbaiknya adalah menyediakan nilai ini.Pada konsol Google Cloud, buka halaman BigQuery dan periksa set data
homeloan_dev
. Perhatikan cara data diisi, dan cara variabelreporting_day
yang Anda teruskan digunakan di kolomcontrol.reporting_day
pada tampilanwh_denormalised
.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 tabelsrc_current_accounts_attributes
harus unik dan bukan null.Menjalankan pengujian kualitas data yang ditentukan dalam file konfigurasi:
dbt test -s test_type:generic
Periksa kode pada folder
use_cases/examples/home_loan_delinquency/dbt/tests
, yang berisi pengujiansingular
. Perhatikan bahwa pengujian dalam folder ini mengimplementasikan perbandingan tabel antara hasil sesungguhnya yang di-output oleh perintahdbt run
, dan hasil yang diharapkan yang tersimpan dalam set datahomeloan_expectedresults
.Menjalankan pengujian tunggal:
dbt test -s test_type:singular
Membuat dokumentasi untuk project:
dbt docs generate && dbt docs serve
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.
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
).Di Cloud Shell, masukkan:
Ctrl + c
Cloud Shell berhenti menghosting web antarmuka dbt.
Opsional: Memasukkan transformasi ke dalam container
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.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.
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)
Mengupload data dag home loan delinquency
cd ../../../use_cases/examples/home_loan_delinquency/deploy/ gsutil cp run_homeloan_dag.py $AIRFLOW_DAG_GCS
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.
- Di konsol Google Cloud, buka halaman Manage resource.
- Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
- 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
- Pelajari lebih lanjut solusi Google Cloud untuk layanan keuangan.
- Untuk referensi arsitektur, diagram, dan praktik terbaik lainnya, jelajahi Pusat Arsitektur Cloud.