【dbt】dbt-metabase
$ dbt-metabase --help
Usage: dbt-metabase [OPTIONS] COMMAND [ARGS]...
Options:
--version Show the version and exit.
--config-path PATH Path to config.yml file with default values. [default:
~/.dbt-metabase/config.yml]
--help Show this message and exit.
Commands:
exposures Extract dbt exposures from Metabase.
models Export dbt models to Metabase.
dbt compileを先にしないといけないっぽい
メタベースAPI
すべてのコマンドには、次のいずれかの方法を使用してMetabase APIに対する認証が必要です。
- APIキー(--metabase-api-key)
自動化を強く推奨します。ドキュメントを参照してください(Metabase 49 以降)。 - ユーザー名とパスワード ( --metabase-username/ --metabase-password)
Metabase の古いバージョンおよび小さいインスタンス用のフォールバック。
dbt-metabase models \
--manifest-path target/manifest.json \
--metabase-url https://metabase.example.com \
--metabase-api-key mb_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX= \
--metabase-database business \
--include-schemas public
Metabase エクスポージャーを抽出するときにコレクションを除外できません
dbt-metabase exposures \
--dbt_manifest_path ./target/manifest.json \
--dbt_database {db name} \
--metabase_host metabase.{myhost}.com \
--metabase_user {myuser}@{domain}.com \
--metabase_password {my password} \
--metabase_database {db name} \
--output_path ./models/ \
--output_name metabase_exposures \
--collection_excludes 'Our analytics' ABI-queries_SiHay_DEPRECATED Dashboards_2-1_DEPRECATED Old_KiWi_DEPRECATED x_Dashboards_2-0_DEPRECATED
Concerning your last question first: We deploy on production using a Bitbucket Pipeline (= basically Github Actions) every time we merge into our dbt master branch. We run both dbt-metabase models and exposures.
Concerning parameters, from what I remember / can read quickly from our code:
dbt_database: This is the name of your DWH database = what you run dbt on = what you run analyses on in Metabase. So this is what you probably see in Admin Settitngs > Databases tab.
metabase_database: This is the name of Metabase’s own “meta DB”, or its own production database. If you haven’t explicitly connected this to your Metabase instance, you won’t see it in Admin Settings. (I’ve included a screenshot of some of the tables in this DB so you can check which is which!)
- dbt_database: これは、DWH データベースの名前です = dbt を実行する対象 = Metabase で分析を実行する対象です。したがって、これはおそらく、[管理設定] > [データベース] タブに表示されるものです。
- metabase_database: これは、Metabase 独自の「メタ DB」、つまり独自の本番データベースの名前です。これを Metabase インスタンスに明示的に接続していない場合は、管理設定に表示されません。(どのテーブルがどれであるかを確認できるように、この DB のいくつかのテーブルのスクリーンショットを含めました。)
dbt compile && dbt-metabase exposures \
--manifest-path target/manifest.json \
--metabase-url https://metabase.example.com \
--metabase-api-key mb_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX= \
--dbt_database {db name} \
--metabase_database {db name} \
--output_path models \
--output_name exposure_metabase
$ dbt-metabase exposures --help
Usage: dbt-metabase exposures [OPTIONS]
Metabase から dbt の exposure を抽出します。
Options:
--manifest-path FILE dbt の manifest.json のパス。通常はコンパイル後に
target/ ディレクトリにあります。 [環境変数:
MANIFEST_PATH; 必須]
--metabase-url URL Metabase の URL 例:
'https://metabase.example.com'。 [環境変数:
METABASE_URL; 必須]
--metabase-api-key API_KEY Metabase の API キー (ユーザー名/パスワードを
提供しない場合は必須)。 [環境変数: METABASE_API_KEY]
--metabase-username USERNAME Metabase のユーザー名 (API キーを提供しない
場合は必須)。 [環境変数: METABASE_USERNAME]
--metabase-password PASSWORD Metabase のパスワード (API キーを提供しない
場合は必須)。 [環境変数: METABASE_PASSWORD]
--skip-verify TEXT TLS 証明書の検証をスキップ (推奨しません)。 [環境 変数: SKIP_VERIFY]
--cert CERT TLS 証明書バンドルのパス。 [環境変数: CERT]
--http-timeout SECS HTTP タイムアウト(秒)。 [環境変数: HTTP_TIMEOUT; デフォルト: 15]
--http-header <TEXT TEXT>... 追加の HTTP リクエストヘッダー。
-v, --verbose 詳細なログを有効にします。
--output-path DIRECTORY exposure YAML ファイルの出力パス。 [環境変数: OUTPUT_PATH; デフォルト: .]
--output-grouping [collection|type]
exposure YAML ファイルのグループ化キー。 [環境 変数: OUTPUT_GROUPING]
--include-collections COLLECTIONS
特定の Metabase コレクションのみを含めます。
[環境変数: INCLUDE_COLLECTIONS]
--exclude-collections COLLECTIONS
特定の Metabase コレクションを除外します。 [環境 変数: EXCLUDE_COLLECTIONS]
--allow-personal-collections 個人用 Metabase コレクションを含めます。 [環境 変数: ALLOW_PERSONAL_COLLECTIONS]
--exclude-unverified 未検証の項目を除外します。検証をサポートしている
エンティティタイプにのみ適用されます。 [環境変数: EXCLUDE_UNVERIFIED]
--help このヘルプメッセージを表示して終了します。
depends_onが取得できない問題
-- `がついてるとdepends_on取得できないっぽい
select * from `dataset.table`
-- 正しくは↓
select * from dataset.table