dbt Projects on SnowflakeのDocs generateを使用しSnowflakeのStreamlitで確認してみた

dbt Projects on SnowflakeのDocs generateを使用しSnowflakeのStreamlitで確認してみた

2025.10.06

かわばたです。

タイトルの通りでありますが、dbt Projects on SnowflakeのDocs generateを使用しSnowflakeのStreamlitで確認してみました。
現状の確認方法としては下記が主流かと思っております。

  1. Gitリポジトリと紐づけてローカルで確認する
  2. GitHub ActionsとPagesを使用する。

なんとかdbtのdocsをSnowflake上で確認できれば良いと思い試してみました。

【参考資料】
こちらそのまま流用させていただいております。
https://dev.classmethod.jp/articles/tips-dbt-docs-with-streamlit/

dbt Projects on Snowflakeの設定は下記を参考にしました。
https://dev.classmethod.jp/articles/try-dbt-projects-on-snowflake-with-github/

対象読者

  • dbt docsをSnowflake上で確認したい方
  • dbt docsでどのようなものが確認できるか気になる方

検証環境

  • Snowflakeトライアルアカウント

事前準備

下記資料を参考にワークスペースとGitHubの連携をしています。
https://dev.classmethod.jp/articles/try-dbt-projects-on-snowflake-with-github/

また、データはdbtのサンプルでも使用されているjaffle_shopを使用しています。

Streamlitまでの流れ

  1. Docs generateを実行
  2. GitHubへプッシュ
  3. GitHub連携済みのStreamlitでプル
  4. Streamlitの確認

Docs generate

各種モデルを作成し、下記のようにDocs generateをプルダウンメニューから選択します。

スクリーンショット 2025-10-06 125307

実行ボタンの横の▽ボタンを押下すると下記ポップアップします。

表示されたエディターに下記入力します。

			
			--static

		

2025-10-06_10h24_13

--staticを使用すると、ドキュメントをクラウドストレージプロバイダーでホスティングするための静的ページとして生成することができます。

https://docs.getdbt.com/reference/commands/cmd-docs#dbt-docs-serve

2025-10-06_13h08_07

上記のようにtargetフォルダにstatic_index.htmlが作成されます。

GitHubへプッシュ

変更タブをクリックし、プッシュを押下しGitHubへ最新情報を反映させます。

2025-10-06_13h13_41

2025-10-06_16h59_15

Streamlit

Streamlitについて、この記事では詳細には触れないため、下記弊社のStreamlitに関する記事をご確認いただければと思います。

https://dev.classmethod.jp/tags/streamlit/

  1. Streamlitの画面から「+ Streamlitアプリ」ボタンを押下しStreamlitアプリを作成していきます。

2025-10-06_13h33_22

  1. Gitリポジトリを接続します。
    2025-10-06_13h38_26

dbt Projects on SnowflakeでGitHub連携した時と同様に記載していきます。

2025-10-06_13h38_39

  1. 下記のようにGitリポジトリが反映されます。リポジトリ内にstreamlit_app.pyを作成しています。

2025-10-06_13h56_39

streamlit_app.pyの内容は下記になります。

			
			import json
import streamlit as st
import streamlit.components.v1 as components

# HTMLファイルのパス
html_file_path = 'target/static_index.html'

st.set_page_config(
    page_title="dbt App",
    page_icon="🧊",
    layout="wide",
    initial_sidebar_state="expanded",
    menu_items={
        'Get Help': 'https://dev.classmethod.jp/',
        'Report a bug': "https://classmethod.jp/",
        'About': "Classmethod,Inc"
    }
)

st.markdown(
    r"""
    <style>
    .stDeployButton {
            visibility: hidden;
        }
    </style>
    """, unsafe_allow_html=True
)

# StreamlitでHTMLを表示
with open(html_file_path, 'r', encoding='utf-8') as file:
    html_content = file.read()
components.html(html_content, height=1024, scrolling=False)


		

dbt docs

下記のような形でStreamlitのアプリ上でdbt docsを確認することができました。

2025-10-06_14h07_26

リネージも確認できます。
2025-10-06_14h07_45

検索も問題なさそうです。

2025-10-06_14h08_45

下記のようなテストに関する項目を押下すると、エラーとなってしまいます。

2025-10-06_14h07_59

2025-10-06_14h08_09

ページの下部に移動するとエラーとなるページもあるため注意が必要です。

【小ネタ】Docs generateのデフォルト値で出来ないかの検討

結論から言うと、私の環境では実現できませんでした。

下記記事にあるmanifest.json,catalog.jsonをhtmlにインサートして単一ファイルを生成してくれるコードを使用してみましたが、manifest.json,catalog.jsonがうまく読み込むことができませんでした。

https://zenn.dev/persona/articles/d191d285062997

index.html,manifest.json,catalog.jsonを使用すれば、dbt docs generateコマンドの--staticオプションなしでも可能だと考えましたが、私の環境では難しかったです。
もし出来た方がいらっしゃいましたらご連絡いただけると嬉しいです!

最後に

dbt Projects on SnowflakeではSnowflake上でdbt docsを直接Snowflake上で確認する機能は現時点ではありませんが、プレビュー版のため、近いうちに何らかの方法で確認できるようになるのではないかと期待しています。
当記事の方法では確認できない項目もあるため、Snowflake上で確認したいというケースで活用いただければと思います。
この記事が何かの参考になれば幸いです!

この記事をシェアする

FacebookHatena blogX

関連記事