🎄

dbt Cloud CLIのプロダクト内での位置付けと狙い

2023/12/08に公開

dbt Cloud CLIとは

dbt Cloud CLIは、dbt cloudの機能をコマンドラインから利用できるようにするツールである。

  • dbt Cloudの認証情報をそのまま使えること
  • dbt Meshと称される、dbt Cloud固有の機能を利用できること
  • 任意のターミナルやIDEからdbt Cloudの環境を操作できること

が特長とされている。dbt Cloud上からダウンロードできるymlファイルなどを元に設定を行うと、dbt coreと全く同じdbt buildなどのコマンドを実行すると、dbt Cloud上でその処理が実行される。

現状できないこと

23年12月時点でpublic previewなので、まだまだ機能の追加や変更は行われるはずだが、現状だと以下のことができない。

  • dbt coreと同じくdbtコマンドで動くこともあり、dbt coreと共存できない
  • dbt-power-userなど、vscodeのdbt core向け拡張機能と互換性がない
    • この点については、dbt Cloud CLI自体がオープンソースではないので、当面対応はできないだろうというSlack Communityでの議論を見かけた

(23年5月更新)

プロダクト側からのアナウンスで、dbt cloud cliがdbt-power-userにも対応することが発表された。

現在はβ版として提供されている。セットアップ方法はこちら

dbt Cloud CLIのプロダクト内での位置付け

現時点のβ版のdbt Cloud CLIを触った感想としては、正直なところ開発体験が何か劇的に変化したというものではなかった。vscodeだとGitHub Copilotなどの汎用拡張機能を使えるというメリットはあるのだが、dbt core専用の拡張機能が使えないとなるとdbt cloud IDEにしかない機能もあるので、dbt Cloudを使い続ける限りにおいてはどちらもベストな選択ではない。

とはいえ、このコマンドラインツールが生まれたのは単に好きな環境でdbt cloudの認証情報を使いたいというユーザーの要望に応えるためだけではないのも間違いないだろう。そもそもvscodeの拡張機能が完全に使えるようになってしまうと、未だ発展途上のdbt cloud IDEの存在意義がほぼなくなってしまうので、dbt cloudも普及させたい開発元としてはマイナスになってしまう。

つまるところ、このdbt Cloud CLIを始めとして直近のプロダクト開発では、基本的な機能強化だけでなく何らかのマネタイズに繋がる機能を追加しているはずなので、今後の利用方法を理解するためにもその辺りをもう少し深く考えてみたい。

dbt Cloudとマネタイズの歴史

dbtの開発元であるdbt Labsもスタートアップとしてマネタイズについては100%順調とは言えず、苦労が垣間見える。2023年には他のtech企業の例に漏れず、15%の人員削減となるレイオフを実施し、dbt cloud自体も元々のpricingが安すぎただけであるが、値上げや従量課金の導入などを繰り返している。

dbt cloud自体のターゲット層にも変化が見られている。元々はマネージドサービスとしてインフラ構築が難しいSMEをターゲットにしているようなプロダクト仕様と価格設定だった。dbt Cloud Enterpriseという大企業向けの最上位プランも以前から用意されていたが、正直なところ最近まではセキュリティ面の機能くらいしか差分がなく、プランとしての目玉となる機能がなかった。仕事でも過去にEnterpriseプランの導入を検討したことはあるが、利用ユーザー数が増えるだけなのに異様に値段が跳ね上がるという印象が当時は強かった。

しかし、直近ではdbt Cloud Enterprise限定の機能が追加され始めている。dbt core v1.5辺りからはdbt Meshと称される機能が追加され、一部機能はdbt Cloud Enterpriseでのみ試験的に利用できる状態になっている。その後の低価格プランの機能制限や価格改定についても、Enterpriseプランへの移行を促すような形で行われている。公には出てこない方針だが、プロダクトの開発動向や価格改定を見る限りは大企業をターゲットに切り替えていることはほぼ間違いないと思う。競合のDataformも23年5月に一般公開となり追いかけてきているが、将来的にはアナリティクスエンジニアリング業界のGitHubのような、大企業でも必要とされるインフラとしての立ち位置を狙っているのだろう。

dbt Cloud CLIが狙う市場

先述の通り、直近のプロダクト開発がEnterpriseプラン向けの機能強化を重視しているならば、dbt Cloud CLIも大企業をターゲットにした機能である可能性が高い。dbt Cloud固有の機能がさらに追加され、利用するメリットが増えてくれば、すでにdbt coreで大規模にデータパイプラインを構築している大企業もdbt Cloudに移行するケースも生まれる。その際にdbt Cloud CLIを使えば、dbt coreで構築したデータパイプラインをそのままdbt Cloudに移行できる、というのが一番の開発モチベーションではないだろうか。要はEnterpriseプランの利用アカウント数拡大のために、既にdbt Cloudの下位プランを利用しているユーザーのアップセルだけでなく、dbt coreのユーザーも狙っているのではないかと思う。

β版の現段階で提供されている機能だけでは、何のためのツールなのかが分からなかったが、このような背景を考えると、あと1~2年もすれば個々に独立して作られている機能群が結合し、プロダクトとしてのdbt Cloudも大企業が導入するにふさわしい価値を提供できるのではないかと思う。

とはいえ、今回のCLI実装でvscodeでdbtを動かしてみて改めて感じたことではあるが、dbt Cloud IDEがアップデートを繰り返されつつもまだIDEとしてはまだまだ物足りないというのは事実なので、とりあえずGitHub copilot連携などの機能を早く実装して欲しいところではある。

P.S.

本記事はdbt Advent Calender 2023に投稿しています。

https://qiita.com/advent-calendar/2023/dbt

参考資料

dbt Cloud CLIのインストール方法

https://dev.classmethod.jp/articles/dbt-cloud-cli-try/

https://docs.getdbt.com/docs/cloud/cloud-cli-installation

dbt Meshとは

https://docs.getdbt.com/best-practices/how-we-mesh/mesh-1-intro

https://docs.getdbt.com/docs/collaborate/govern/project-dependencies

dbt Cloudでのプランの違い

https://dev.classmethod.jp/articles/differences-between-plans-in-dbt-cloud/

dbt Cloudの直近の価格改定

https://www.getdbt.com/blog/consumption-based-pricing-and-the-future-of-dbt-cloud

dbt Cloudの機能追加に関するアナウンス

https://www.getdbt.com/blog/dbt-labs-announces-major-enhancements-to-dbt-cloud-to-enable-collaboration-at-scale

Discussion