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