💨

dbt Tokyo Meetup #10 レポート

こんにちわ!
がく@ちゅらデータエンジニアです

久々に、オフラインイベントに参加してきたました。
参加してきたのは、dbt Tokyo Meetup #10

https://www.meetup.com/ja-JP/tokyo-dbt-meetup/events/303873810/

今回は、dbtCloud の話題に関するパネルディスカッションが主な話題
先日、開催された dbt Coaleasce 2024(発音できないw)の話題も入ってきてとても楽しい時間を過ごせました

ずっとTwitterなどでは存じ上げていた方々にもリアルでお会いできて、dbt談義に花を咲かすことができて、とてもとても楽しい時間を過ごせました。かつ、dbtに関するモチベーションがまた高まったイベントでした♪

※ちなみに、発表時にがーーーっとメモったものなので、間違いなどがあるやもしれません。その際は優しくコメントなどで指摘いただけると嬉しいです♪

【追記】
https://speakerdeck.com/dbttokyo/tokyo-dbt-meetup-number-10-dbt-cloudli-yong-zhe-niyorudbt-cloudno

当日の発表の際に映されていた資料が公開されていたので追加させてもらいます

登壇者自己紹介

たぬさん(谷口健太)

and roots株式会社
福岡の会社、300人ほどの会社
この日は、福岡からいらしたそうです
※かれこれTwitterでフォロー・フォローされてから3年ぐらい経ってやっとお会いできました♪

土川さん

株式会社タイミー DRE G PdM
2021年頃からdbtを使っているとのこと
いやー、イケボでしたね!落ち着いた声、落ち着いた語り口だけど、熱さを感じました

宮崎さん(ikkiさん)

stable株式会社 一人でやってる会社
主にスタートアップのお客さんにデータエンジニアリングや分析
dbtは、かれこれ3年ほど使っている。dbt Coreもdbt Cloudも
dbtCoreとdbtCloudの両刀遣いということで得られる知見を熱く語ってらっしゃいました

吉本さん

アナリティクスエンジニアリンググループマネージャー
株式会社MonotaRO
昔からデータの利活用が進んでいる。部署間で数値が合わないとか起きている
データ管理を進める部署を作った
dbt Cloudをいれた、40アカウントほど発行して活用している

改めて、モノタロウさんがデータ文化の醸成がすごく高いレベルで行われているし、Data Mesh的な使い方をなさっていると、扱うデータの種類・量ともに凄さを感じました

たきもさん

株式会社10X
データプロダクトエンジニア

dbt Tokyoを立ち上げ、ずっと運営なさっていてて、感謝しか無いです。
dbtに関しては、日本での第一人者ではないでしょうか。その知見がほんとdbtを使い倒してらっしゃるからの重さがとてもとても参考になりました
dbt歴は3年〜4年、会社では10人ぐらいがdbtを使って開発している

アイスブレイク

Q. dbt Core を使っている人?
→ 8割ぐらい
Q. dbt Cloud を使ってる人?
→ 6割ぐらい
Q. どっちも使ってる人?
→ 2割ぐらい
※後ろの席に座っていたので、大体の感覚です(数えたわけではない

パネルディスカッション

自己紹介を行った方々が交互にモデレータをやりながら、約1時間半のパネルディスカッションをなさいました。

教えて!dbt Cloudの利便性と利点 (モデレーター:土川さん)

  • (谷口さん)Job Scheduler機能がいい!これがあるからdbtCloudを導入した
    • dbtコマンドの実行を、cronやevent triggerで実行できる
    • ワークフローのインフラを作る必要がないのが良き
    • (インフラ整備運用しなくてよくて)データ活用やデータコントロールに専念できる!
    • データ文化形成期(初期)にいれるのが良い
    • Q.祝祭日を指定して実行は可能ですか?
      • という機能はデフォルトではない。外部の何らかの機能を組み合わせて実現するなどが必要と思われる
  • (吉本さん)オンプレの自作ツールやその他のツールと比較して、dbt Cloudを選んだ理由は?
    • 手軽にエンジニアリングプロセスを踏める。all in one パッケージであること
    • エディタ、差分、レビュー管理 が容易に可能
    • データメッシュを意識した機能(dbt mesh)があること
      • Cross-Project reference
      • dbt Explorer
    • Q.dbt Cloudの課金体系的に、多くの人に使ってほしいけど、使うとお金が・・・どう考えますか?
      • 今のフェーズは、データ管理が重要というのを周知するステージなので、使いたい!というニーズがあれば使ってもらうことにしている。
  • (ikkiさん)dbt Cloudを使用する前後で、作業効率や品質等にどのような変化がありますか?
    • gitに慣れてなくても、ある程度使える。データアナリストの方でも
    • dbt Cloudは、Artifactsの管理が全部勝手にやってくれるので、便利機能が最初から使える
    • ExplorerやIDEで色んな情報が見れる
      • リネージの画像がPRに乗ったりしてるので判断しやすい
      • dbt power userのリネージよりも見やすい
      • ※dbt docs はこれ以上機能追加しない・・という話もTwitterで観測されました
    • 直接データ品質向上につながる機能はないけれども
      • coreとCloudでの明確な差はなさそう
      • 上流だけのリネージを出したいとか、①レベルしただけのリネージを出したり、そのあたりの自由度が高いUIをもっている(たきもさん)

CI/CDの工夫と運用上のベスプラは?(モデレータ:たきもさん)

  • (土川さん)CI/CDの導入において、どのような課題に直面しましたか?それをどう解決しましたか?

    • 権限を与えてたけど、人数が増えてきて、想定外の設定でエラーや障害につながった
    • 環境設定が複雑なのでミスが起こりがちだった
    • 解決方法
      • Terraformでjob, scheduleを設定するとCI/CDで設定が反映するようにした
      • Terraform経由なのでレビューが入り、エラーが減った
      • dbtCloudのアカウントなくてもjob, scheduleの設定ができる
      • コード化されているので検索性が上がった
    • terraformでの落とし穴とかあった?(たきもさん)
      • 特になかったかな・・・(土川さん)
    • アナリストがTerraformむずかしくない?
      • すでに、あるものをちょっと触ってもらうぐらい
      • もしくは、エンジニアがヒアリングして対応
  • (たぬさん)dbt CloudをCI/CDに組み込むときに工夫してることは?

    • Webhooksでプチ拡張している
      • dbtのジョブ実行状態を外部システムに通知できる。ジョブの開始、完了、失敗などのイベントが発生したときに指定したエンドポイントにHTTPリクエストを送信する
      • エラーの詳細をslackに投稿してる
      • BIツール(Steep)のエンドポイントを叩いて、更新完了を通知してる。キャッシュクリアみたいなことを自動化できた
  • (ikkiさん)Slack通知、簡単にできました?

    • GraphQLなのであんまり苦労しなかった
    • たまに、2回送信されてしまうのは改善したい
    • Slackの表現力で、テーブルかけないのでそこはきれいに記載してほしい
  • (ikkiさん)ベストプラクティスとして推奨したい設定やフローはありますか?

    • dbtCloudは、Slim CIがある
      • Pull Request作成時に、変更があったモデルのみを実行してくれる、変更内容の確認が簡単にできる
      • これをdbtCoreでやろうとすると、artifacfsで管理する必要がある・・・
      • ブランチを作るとそれ用のDBがCloneされて(例えば、DBNAME_branch名みたいな)、終わると消える(たまに消えない時がある(苦笑))
    • Merge Job
      • PRがマージされたときに変更のあったモデルのみを実行してくれる。この機能が出てくるまでは、手動でやったり翌日?の実行を待たなければならなかった
    • SlimCIとMergeJobは、複雑なdbtプロジェクトだと非常に時間が掛かる。
    • ↑簡単な仕組みのため、複雑な指定が難しく、コストが掛かってしまうことがあった
  • dbt Cloudの注目の機能/改善点は?(モデレーター:ikkiさん)

    • (土川さんへの質問)現在最も注目している機能は?
      • Data Control Planeをがんばっていくよ!というメッセージがあった
      • 一番刺さったのは、Observerbility。
        • model query history
        • Data Delivery Insights
    • (たきもさんへの質問)これまでの機能で、特に効果的だったものはどれですか?
      • dbt Explorerが楽チンで使いやすい
      • 特別な設定無しでカタログサービスの利用が可能。
      • dbtのジョブ実行結果(artifactやcatalog)を利用し、モデルに紐づくドキュメントや最新テスト結果がぽちで確認可能。artifactを外部に送信するような処理の面倒を見なくても良い
      • → artifactを加工して、外部カタログツール向けにいろいろしなくてもいいってこと
      • 使って良いモデルかどうかってのも周知することができる
      • read権限のユーザがある(Enterprise以上)
    • (吉本さんへの質問)dbtCloudがプロジェクトや運用にどう使われていくか?
      • データメッシュ的なデータ管理を進められる
      • モノタロウの事業やドメインの複雑性より、中央集権→自律分散型へ移行していった
      • dbtCloudで自律分散機能を推進
      • Q.CoreからCloudへの乗り換えはどうでしたか?
        • gitの接続先を変えるだけでぱっと移行できた
        • Jobが多いと大変かも・・・
      • dbtCoreでは動くけど、dbtCloudで無いもんが入ってる時はどうです?osmosisとか
        • Cloudもartifactを何処かに落として、osimosisを適用して戻す・・といったことに行き着くのではないか(たきもさん)

感想

  • たきもさん、やっぱりdbtCloudもめちゃくちゃ使い込んでるなー、一つ一つの言葉が深い
  • モノタロウさんは、とてもとてもデータが大きいし、データ活用の文化がすごく浸透してるんだなぁ
  • 聞きながらばーーっとかいたので実際の発表と異なることを書いちゃってるかもしれません、その際はご指摘いただけると嬉しいです!
ちゅらデータ株式会社

Discussion