Traffine I/O

Bahasa Indonesia

2022-06-08

Perintah-perintah Meltano

Perintah Meltano

Dalam artikel ini, saya akan memperkenalkan perintah-perintah utama Meltano.

meltano add

Perintah meltano add digunakan untuk menambahkan plugin ke dalam proyek. Perintah ini melakukan langkah-langkah berikut:

  1. Mengacu pada definisi plugin yang tersedia di Meltano Hub.
  2. Menambahkan plugin ke bagian plugins dalam file meltano.yml.
  3. Menyimpan definisi plugin dalam direktori ./plugins.
  4. Menginstal plugin menggunakan perintah meltano install.

Berbeda dengan perintah meltano install, perintah meltano add secara terus-menerus menginstal plugin agar tidak ada dependensi yang terlewat. Sebagai contoh, meltano add transformer akan meminta instalasi plugin dbt terlebih dahulu.

Contoh meltano add

bash
$ meltano add extractor tap-github
$ meltano add loader target-bigquery
$ meltano add transformer dbt-redshift

meltano elt

Perintah meltano elt digunakan untuk menjalankan pipeline ELT (Extract, Load, Transform). Setiap pipeline ELT memiliki ID status yang menyimpan dan mengacu pada status replikasi bertahap. Ini memungkinkan Anda melanjutkan pipeline dari titik terakhir jika Anda menjalankan pipeline berikutnya dengan kombinasi yang sama dari Extractors dan Loaders. Jika tidak ada pengenal stabil yang diberikan menggunakan opsi --state-id atau variabel lingkungan MELTANO_STATE_ID, ekstraksi data selalu dimulai dari awal, dan ID status satu kali secara otomatis dibuat menggunakan tanggal dan waktu saat ini. Keluaran yang dihasilkan oleh perintah ini dicatat dalam file .meltano/logs/elt/{state_id}/{run_id}/elt.log. run_id adalah UUID yang dihasilkan secara otomatis.

Parameter

  • --state-id: Mengidentifikasi ELT terkait saat menyimpan atau mengambil status replikasi bertahap.
  • --transform:run: Menjalankan langkah Transform.
  • --transform:skip: Melewati langkah Transform (default).
  • --transform:only: Melewati langkah EL dan hanya menjalankan langkah Transform.
  • --full-refresh: Melakukan refresh penuh, mengabaikan status sebelumnya.
  • --force: Memaksa run baru.
  • --state: Secara manual menyediakan file status kepada Extractor daripada mencari status berdasarkan ID Status.
  • --dump: Mencetak konten file yang dihasilkan khusus untuk pipeline daripada menjalankan pipeline.

Contoh meltano elt

bash
$ meltano elt tap-gitlab target-postgres --transform=run --state-id=gitlab-to-postgres
$ meltano elt tap-gitlab target-postgres --state-id=gitlab-to-postgres --full-refresh
$ meltano elt tap-gitlab target-postgres --state extract/tap-gitlab.state.json
$ meltano elt tap-gitlab target-postgres --state-id=gitlab-to-postgres --dump=state > extract/tap-gitlab.state.json

meltano install

Perintah meltano install digunakan untuk menginstal dependensi proyek berdasarkan file meltano.yml. Jika plugin tertentu ditentukan sebagai argumen, hanya plugin-plugin tersebut yang akan diinstal. Selain itu, menjalankan meltano install beberapa kali akan mengupgrade plugin ke versi terbaru jika plugin tersebut sudah ada.

Parameter

  • --include-related: Secara otomatis menginstal Transformers yang terkait dengan Extractors yang diinstal.
  • --clean: Menghapus sepenuhnya plugin-plugin dan menginstal ulang mereka.
  • --parallelism: Mengontrol jumlah plugin yang diinstal secara paralel (defaultnya adalah jumlah CPU pada mesin). Mengatur --parallelism=1 menginstal plugin satu per satu.

Contoh meltano install

bash
$ meltano install
$ meltano install extractors
$ meltano install extractor tap-gitlab
$ meltano install extractors tap-gitlab tap-adwords
$ meltano install --include-related
$ meltano install --parallelism=16
$ meltano install --clean

meltano run

Perintah meltano run digunakan untuk menjalankan serangkaian blok perintah secara berurutan. Misalnya, ketika Anda menentukan meltano run foo_tap bar_target hoge_target, mereka akan dieksekusi sesuai urutan dari kiri ke kanan. Jika ada blok yang gagal, seluruh eksekusi akan dihentikan.

Jika lingkungan aktif ditentukan, ID Status secara otomatis dihasilkan untuk setiap pasangan Extractor/Loader, yang digunakan untuk menyimpan dan mengambil status replikasi bertahap dalam database sistem. Oleh karena itu, saat menjalankan kombinasi Extractor dan Loader yang sama di waktu berikutnya, Anda dapat memulai dari titik terakhir eksekusi sebelumnya. ID yang dihasilkan memiliki format <environment_name>:<tap_name>-to-<target_name>. Jika tidak ada lingkungan yang aktif, meltano run tidak menghasilkan ID Status dan tidak melacak statusnya.

Parameter

  • --dry-run: Menganalisis, memvalidasi, dan mendeskripsikan panggilan tanpa menjalankannya.
  • --no-state-update: Menonaktifkan penyimpanan status untuk panggilan tersebut.
  • --full-refresh: Melakukan refresh penuh, mengabaikan status sebelumnya.
  • --force: Memaksa eksekusi pekerjaan meskipun ada pekerjaan yang konflik dengan ID yang dihasilkan yang sama.

Contoh meltano run

# Run the pipeline in series and
# The auto-generated ID for the first EL pair is 'dev:tap-gitlab-to-target-postgres'
# The auto-generated ID for the second EL pair is 'dev:tap-salesforce-to-target-mysql'
$ meltano --environment=prod run tap-gitlab target-postgres tap-salesforce target-mysql

# Run pipeline in series, full refresh run
$ meltano --environment=stg run --full-refresh tap-gitlab target-postgres tap-salesforce target-mysql ...

# Run pipelines in series, forcing each one to run if a strong job is found
$ meltano --environment=dev run --force tap-gitlab target-postgres tap-salesforce target-mysql ...

meltano job

Perintah meltano job digunakan untuk mendefinisikan urutan satu atau beberapa tugas. Dengan memasukkan nama pekerjaan sebagai argumen ke meltano run, Anda dapat menjalankan pekerjaan yang ditentukan.

Contoh meltano job

# Add job "simple-demo" with two tasks
# Task 1: tap-gitlab target-mysql dbt-postgres:run
# Task 2: tap-gitlab target-csv
$ meltano job add simple-demo --tasks "[tap-gitlab target-postgres dbt-postgres:run, tap-gitlab target-csv]"

# list job "simple-demo"
$ meltano job list simple-demo --format=json

# Run job "simple-demo
$ meltano run simple-demo

# Run job "simple-demo" and other EL pairs
$ meltano run simple-demo tap-mysql target-bigquery

# Delete job "simple-demo"
$ meltano job remove simple-demo

meltano schedule

Perintah meltano schedule digunakan untuk mendefinisikan jadwal untuk menjalankan pipeline ELT atau pekerjaan secara berkala. Ini memerlukan instalasi plugin Orchestrator.

Contoh meltano schedule

# Add schedule "gitlab-sync" to run job "gitlab-to-mysql" daily
$ meltano schedule add gitlab-sync --job gitlab-to-mysql --interval "@daily"

# Dry run schedule "gitlab-sync" $ meltano schedule run gitlab-sync --job gitlab-to-mysql --interval "@daily
$ meltano schedule run gitlab-sync --dry-run

# Change schedule "gitlab-sync" job to "gitlab-to-postgres" $ meltano schedule set gitlab-sync --dry-run
$ meltano schedule set gitlab-sync --job gitlab-to-postgres

# Change schedule "gitlab-sync" to weekly
$ meltano schedule set gitlab-sync --interval "@weekly"

Referensi

https://docs.meltano.com/reference/command-line-interface

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!