Traffine I/O

Bahasa Indonesia

2022-06-06

Transformasi dalam Meltano

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:

bash
$ 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:

bash
$ meltano add transformer dbt-bigquery

Verifikasi konfigurasi untuk dbt-bigquery:

bash
$ meltano config dbt-bigquery list

Alternatifnya, Anda dapat merujuk ke dokumentasi resmi:

https://hub.meltano.com/transformers/dbt-bigquery

Konfigurasikan pengaturan untuk dbt-bigquery, termasuk project, dataset, auth_method, dan keyfile, menggunakan perintah berikut. (Anda juga dapat mengedit langsung file meltano.yml.)

bash
$ 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:

meltano.yml
.
.
.
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:

bash
$ 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:

meltano.yml
.
.
.
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.
bash
$ 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:

transform/package.yml
packages:
  - git: https://github.com/your_repo/your-dbt-project.git
    revision: 1.0.0

Referensi

https://docs.meltano.com/getting-started
https://docs.meltano.com/guide/transformation

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!