Meltano のコマンドについて
この記事では、Meltano のコマンドついて紹介します。
add
meltano.add
はプラグインをプロジェクトに追加するコマンドです。以下の流れの動作をします。
- Meltano Hubにあるプラグイン定義を参照
- プラグインを
meltano.yml
ファイルのplugins
セクションに追加
- プラグイン定義を
./plugins
ディレクトリに保存
meltano install
を使用してプラグインをインストール
meltano install
コマンドとは異なり、meltano add
コマンドは依存関係の欠落を回避するためにプラグインを連続的にインストールします。例えば、meltano add transformer
は dbt プラグインを最初にインストールするように要求します。
meltano add 例
elt
meltano elt
は ELT パイプラインを実行するコマンドです。
各 ELT パイプラインは増分レプリケーションのステートを保存し、参照するための State ID を持っています。そのため、同じ E・L・T の組み合わせで後続のパイプラインを実行すると、前回の実行で中断したところからすぐに再開することができます。安定した識別子が--state-id
フラグまたは環境変数MELTANO_STATE_ID
を使用して提供されない場合、データ抽出は常にゼロから始まり、現在の日付と時刻を使用して一度限りの State ID が自動生成されます。このコマンドで生成された出力は、.meltano/logs/elt/{state_id}/{run_id}/elt.log
に記録されます。run_id
は自動生成される UUID です。
パラメータ
--state-id
- 増分レプリケーションのステートを保存したり検索する際の関連 ELT を識別
--transform:run
--transform:skip
--transform:only
- E・L をスキップして Transform を実行
--full-refresh
--force
--state
- State ID に基づいて状態を検索する代わりに Extractor にステートファイルを手動で提供
--dump
- 実際にパイプラインを実行する代わりにパイプライン固有の生成ファイルの内容をダンプ
meltano elt 例
install
meltano install
はmeltano.yml
ファイルに基づいてプロジェクトの依存関係をインストールするコマンドです。引数を指定すると特定のプラグインのみがインストールされます。また、meltano install
を続けて実行するとプラグインがすでに存在する場合は最新バージョンにアップグレードされます。
パラメータ
--include-related
- インストールされた Extractor に関連した Transformer を自動インストール
--clean
- プラグインを完全にアンインストールして再インストール
--parallelism
- 並行してインストールするプラグイン数(デフォルトはマシンの CPU 数)を制御
--parallelism=1
にするとプラグインを一つずつインストール
meltano install 例
run
meltano run
は一連のコマンドブロックを直列に実行するコマンドです。例えば、meltano run foo_tap bar_target hoge_target
と指定すると左から右に順に実行されます。どのブロックでも失敗すると実行全体が中断されます。
アクティブな環境が定義されている場合は、State ID が各 Extractor/Loader ペアに自動生成され、システムデータベース内の増分レプリケーションのステートを保存して検索に利用されます。そのため、同じ Extractor と Loader の組み合わせで次回実行する場合、前回の実行が終了したところから開始することができます。生成される ID の形式は、<environment_name>:<tap_name>-to-<target_name>
です。なお、環境がアクティブでない場合、meltano run
は State ID を生成せず、ステートを追跡しません。
公式ドキュメントでは、ELT を含むクロスプラグインのワークフローを自由に組み合わせる方法で実行するには、meltano elt
よりもmeltano run
コマンドを推奨しています。
パラメータ
--dry-run
--no-state-update
--full-refresh
--force
- 同じ生成 ID の競合ジョブが進行中であってもジョブを強制的に実行
meltano run 例
job
meltano job
は一つまたは複数のタスクの順序を定義するコマンドです。meltano run
にジョブ名を引数に渡すことで指定したジョブを実行することができます。
meltano job 例
schedule
meltano schedule
は定期的に実行される ELT やジョブのパイプラインを定義するコマンドです。Orchestrator プラグインのインストールが必要になります。
meltano schedule 例
参考

備考
Hakky ではエンジニアを募集中です!まずは話してみたいなどでも構いませんので、ぜひお気軽に採用ページからお問い合わせくださいませ。
