Transformasi dalam Meltano
Di Meltano, bagian T (Transform) dari ELT dilengkapi oleh dbt. Dalam artikel ini, saya akan memperkenalkan bagaimana melakukan transformasi menggunakan Meltano.
Menginstal dbt
Untuk memeriksa instalasi dbt yang tersedia, gunakan perintah berikut:
$ meltano discover transformers
dbt-bigquery
dbt-postgres
dbt-redshift
dbt-snowflake
dbt
Meskipun memungkinkan untuk menginstal dbt, disarankan untuk menginstal plugin dbt tertentu seperti dbt-snowflake. Untuk demonstrasi ini, kita akan menggunakan dbt-bigquery untuk menjalankan transformasi. Instal dbt-bigquery dengan perintah berikut:
$ meltano add transformer dbt-bigquery
Verifikasi konfigurasi untuk dbt-bigquery:
$ meltano config dbt-bigquery list
Alternatifnya, Anda dapat merujuk ke dokumentasi resmi:
Konfigurasikan pengaturan untuk dbt-bigquery, termasuk project, dataset, auth_method, dan keyfile, menggunakan perintah berikut. (Anda juga dapat mengedit langsung file meltano.yml.)
$ meltano config dbt-bigquery set project "YOUR_PROJECT_ID"
$ meltano config dbt-bigquery set dataset "YOUR_DATASET"
$ meltano config dbt-bigquery set auth_method "service-account"
$ meltano config dbt-bigquery set keyfile "PATH/TO/YOUR/KEYFILE"
File meltano.yml Anda harus seperti berikut:
.
.
.
environments:
- name: dev
config:
plugins:
transformers:
- name: dbt-bigquery
config:
project: YOUR_PROJECT_ID
dataset: YOUR_DATASET
auth_method: service-account
keyfile: PATH/TO/YOUR/KEYFILE
Koding Proses dbt
Direktori /transform berisi file-file berikut:
$ ls /transform
dbt_project.yml
profile
models
Tulis pernyataan SQL Anda di direktori /transform/models/ dan jika perlu, sunting file /transform/dbt_project.yml.
Menjalankan dbt
Anda dapat menjalankan dbt dengan dua cara:
- Jalankan perintah run sebagai bagian dari pipeline ELT, seperti
meltano run tap-github target-bigquery dbt-bigquery:run. - Jalankan perintah invoke sebagai operasi mandiri, misalnya
meltano invoke dbt-bigquery run.
Selain itu, Anda dapat membuat perintah kustom dengan mengedit file meltano.yml sebagai berikut:
.
.
.
plugins:
transformers:
- name: dbt-bigquery
commands:
my_models:
args: run --select +YOUR_MODEL_NAME
description: Run dbt, selecting model `YOUR_MODEL_NAME` and all upstream models.
$ meltano run tap-github target-bigquery dbt-bigquery:my_models
$ meltano invoke dbt-bigquery:my_models
Merujuk ke Proyek dbt dari Repositori Eksternal
Selain menulis kode dbt langsung di direktori /transform/, Anda dapat memisahkan proyek Meltano dan proyek dbt dengan membuat file package.yml di direktori /transform/. Dengan menyertakan konfigurasi berikut, Anda dapat merujuk ke proyek dbt dari repositori eksternal:
packages:
- git: https://github.com/your_repo/your-dbt-project.git
revision: 1.0.0
Referensi