dbt Cloudにおけるプランの違いについて(Developer, Team, Enterprise) #dbt
アライアンス事業部 エンジニアグループ モダンデータスタック(MDS)チームの しんや です。
先日、dbtに関する下記エントリを公開しました。dbtにおけるプロダクトである「dbt Core」と「dbt Cloud」に関する違いについて整理した内容となっています。
当エントリでは「dbt Cloud」側をもう少し深掘りする形、dbt Cloudで現在選択可能な3つのプランについて、その違いや特徴などについて見ていきたいと思います。(dbt公式サイトの利用費に関する基本的な情報は下記ページを参照ください)
目次
dbt Cloud 個別プラン概要
まずはじめに、dbt Cloudで展開、提供されているプランの概要について見ていきます。dbtでは「Developer」「Team」「Enterprise」の3つのプランを設けており、段階的な機能利用制限と価格設定が為されています。
ちなみにdbtでは「シート」という単位が費用に関する説明で出てきます。これは「ユーザー」と読み替えてもらって差し支えないです。「1シート=1ユーザー」という形ですね。
Developerプラン
- 無料。
- 開発者シートが1つ含まれる。
- IDE、ジョブ スケジューリング、CI、GitHub/GitLab統合などが利用可能。
- データチーム(dbtを扱うユーザーの)規模が1人のケースに適している。
- dbtを手っ取り早く試してみる・始めるには最速の方法ではある。
Teamプラン
- 有償/1シートあたり100ドル。
- 最大8つの開発者シート(=開発者用ライセンスは最大8名まで契約可能)。
- 5名分の読み取り専用シートが付随(=5名の読み取り専用ユーザーが付いてくる)。
- 読み取り専用シート:生成されたプロジェクトドキュメントとソースの鮮度レポートを表示可能
- Developerプランの全ての機能に加えて以下の機能を利用可能。
- APIアクセス
- セマンティックレイヤー
- データチーム規模が、小規模から中規模のデータチームに適している。
- 新しく立ち上げたdbtチーム向けの従量課金制プランな位置付け。
Enterpriseプラン
- 有償/カスタム価格設定。詳細は要問い合わせ。
- 以下に列挙するような多くの企業顧客が要求する機能を提供。
- シングルサインオン(SSO)
- 複数の展開リージョン
- サービスレベルアグリーメント(SLA)
- 監査ログ
- 無制限のプロジェクトをサポート。
- 大規模な組織の場合、複数のプロジェクトにより、単一のモノリスプロジェクトにはない柔軟性が得られる。
- データチーム規模が中規模かつ組織全体での制御や管理が期待されている場合、またdbtドキュメントの広範な使用が期待されている場合は、Enterpriseプランに該当する可能性がある。
プラン毎の詳細比較
ここからはdbt Cloudにおけるそれぞれのプランの詳細に関する内容を見ていきます。
※dbt Coreとdbt Cloudに関する比較、違いについては下記エントリをご参照ください。
まずはマトリクスとしての機能有無、利用可否の比較です。表の後に個別トピックに関する詳細をまとめていきます。
項目 | Developerプラン | Teamプラン | Enterpriseプラン |
---|---|---|---|
前提・準備に関して | |||
トライアル | ◯(利用可能) ※Teamプラン/14日間 |
ー(利用不可) | ー(利用不可) |
基本的な機能 | |||
ブラウザベースのIDE | ◯(利用可能) | ◯(利用可能) | ◯(利用可能) |
ジョブスケジューリング&レポーティング | ◯(利用可能) | ◯(利用可能) | ◯(利用可能) |
ジョブ実行可能回数 | 制限あり | 制限あり | 無制限 |
ロギング&アラート | ◯(利用可能) | ◯(利用可能) | ◯(利用可能) |
ドキュメント | ◯(利用可能) | ◯(利用可能) | ◯(利用可能) |
GitHub,GitLab連携 | ◯(利用可能) | ◯(利用可能) | ◯(利用可能) |
ソースデータの「鮮度」に関するレポート | ◯(利用可能) | ◯(利用可能) | ◯(利用可能) |
利用可能なdbtプロジェクトの数 | 最大1個 | 最大1個 | 無制限 |
高度な機能 | |||
CI(継続的インテグレーション) | ◯(利用可能) | ◯(利用可能) | ◯(利用可能) |
セマンティックレイヤー | ー(利用不可) | ◯(利用可能) | ◯(利用可能) |
dbt CloudへのAPIアクセス | ー(利用不可) | ◯(利用可能) | ◯(利用可能) |
Outbound Webhooks | ー(利用不可) | ◯(利用可能) | ◯(利用可能) |
Azure DevOpsサポート | ー(利用不可) | ー(利用不可) | ◯(利用可能) |
セキュリティ・コントロール | |||
シングルサインオン(SSO) | ー(利用不可) | ー(利用不可) | ◯(利用可能) |
ロールベースのACL(アクセスコントロール) | ー(利用不可) | ー(利用不可) | ◯(利用可能) |
きめ細やかなGitパーミッション設定 | ー(利用不可) | ー(利用不可) | ◯(利用可能) |
監査ログ | ー(利用不可) | ー(利用不可) | ◯(利用可能) |
環境をホストするリージョンを選択可能 | ー(利用不可) | ー(利用不可) | ◯(利用可能) |
プレミアムサポート | |||
実施支援 | ー(利用不可) | ー(利用不可) | ◯(利用可能) |
専用アカウント管理 | ー(利用不可) | ー(利用不可) | ◯(利用可能) |
優先的な技術サポート | ー(利用不可) | ー(利用不可) | ◯(利用可能) |
dbt Labsセキュリティレビュー | ー(利用不可) | ー(利用不可) | ◯(利用可能) |
カスタムデプロイメント | |||
サービス・レベル・アグリーメント(SLA) | ー(利用不可) | ー(利用不可) | ◯(利用可能) |
シングルテナント用オプション(アドオン) | ー(利用不可) | ー(利用不可) | ◯(利用可能) |
プロフェッショナル・サービスへのアクセス(アドオン) | ー(利用不可) | ー(利用不可) | ◯(利用可能) |
請求書発行(例:AWSマーケットプレイス) | ー(利用不可) | ー(利用不可) | ◯(利用可能) |
ブラウザベースのIDE
プロジェクトのビルド(build), テスト(test), モデルの実行(run)やバージョン管理といった操作をブラウザを介して行うことが出来る機能。機能というか画面。
ジョブスケジューリング&レポーティング
WebhookとAPIを使用して、スケジュールに従ってジョブを実行することが可能です。これにより運用コストを削減することが出来ます。
ジョブ実行可能回数
「1ヶ月あたりのモデル実行成功回数」という指標において、DeveloperプランとTeamプランでは制限が掛かっています。
- Developerプラン: 3,000回/月:さらに多くのモデルを構築する必要がある場合は、チームプランを検討してください。
- Teamプラン: 15,000回/月:これ以上の実行に関しては、0.01 ドル掛かる形となります。
- Enterpriseプラン: 無制限
ロギング&アラート
実行したdbt進行中及び履歴ログを表示し、アラートを受信するように通知を設定することが可能です。
ドキュメント
チームメイトと共同作業するためのdbtプロジェクトのデータドキュメントを生成し閲覧環境可能なコンテンツとして提供します。
GitHub,GitLab連携
Gitプロバイダーを dbt Cloud環境にシームレスに連携・接続します。
ソースデータの「鮮度」に関するレポート
データ パイプラインが正常な状態にあり、SLAを満たしているかどうかを把握するために「ソースの鮮度」を利用します。
利用可能なdbtプロジェクトの数
継続的インテグレーション(CI)
プルリクエスト経由で処理が実行されるように継続的統合ジョブを構成することが可能です。
セマンティックレイヤー
外部ツールでメトリクスとモデルをクエリする、所謂「セマンティックレイヤー」機能を提供します。
dbt CloudへのAPIアクセス
ワークフローを強化することが出来る、幾つかのdbt Cloud API を使用することが可能です。
Outbound Webhooks
dbt ジョブに関するイベント(通知)を他のシステムに送信することが出来ます。送信された側の他のシステムは、これらのイベントをリッスン(サブスクライブ)することでワークフローをさらに自動化したり、設定した自動化フローをトリガーしたりすることが出来るようになります。
Azure DevOpsサポート
シングルサインオン(SSO)
チームのアクセスを管理し、情報をより安全に保つことが出来ます。
ロールベースのACL
ロールベースのアクセス制御を使用し、きめ細かい権限管理が出来るようになります。
きめ細かなgitパーミッション
Enterpriseプランのみで提供されている機能のようですが、dbtの前身であるSinterというプロジェクトでこのフレーズ(Fine-grained git permissions)を見つけることが出来たものの直近dbtでの情報は見つけられませんでした。
監査ログ
ユーザーおよびシステムのイベントログを確認することが出来ます。
環境をホストするリージョンを選択可能
dbt Cloudは複数のリージョンでホストされています。Enterpriseプランでは、アカウントを下記ドキュメントに記載のいずれかのリージョンでホストすることを選択可能です。
ホストの際は、dbt Cloudアカウントごとに1つのリージョンを選択する必要があります。dbt Cloudを複数のリージョンで実行する必要がある場合は、複数のdbt Cloudアカウントを使用することをお勧めします。
プレミアムサポート
料金表には都合4つの項目が記載されており、いずれもEnterpriseプランでのみ利用可能なものとなっています。(Webで参照可能な関連項目に関する情報は現状見当たりませんでした)
カスタムデプロイメント
こちらも「プレミアムサポート」同様、4つの項目が記載されています。Enterpriseプランでのみ利用可能な部分も同じです。SLAに関するドキュメントは下記の形で展開されています。
FAQ
利用費に関するページには幾つかのトピックに関するFAQも記載されていました。ここではその質問内容のみ一覧でまとめておきます。
dbt製品に関するFAQ:
- dbtではどのようなサポートを提供しているか?
- 無料トライアルには何が含まれるか?
- dbt コミュニティ Slackへのアクセスについて
- dbt初心者の学習ガイド情報
- dbtを使う際、コマンドライン操作習熟は必要か?
dbtの請求とセキュリティに関するFAQ:
- 請求が行われる流れについて
- 請求書支払いに関して
- プランのアップグレード・ダウングレードについて
- アカウントのキャンセルについて
- dbtと「dbtが保存するデータ」の関連、詳細について
- dbt IDEによって処理されたデータの扱い
まとめ
という訳で、dbt Cloudにおける3つのプラン(Developer, Team, Enterprise)の違いについての紹介でした。
色々な観点でそれぞれのプランを比較する形となりますが、Enterpriseプランでないと出来ないことも多く、対応する機能が必須となるようであれば自ずとEnterpriseプランを選択していく形になるのでは、と思われます。ただEnterpsierプランはdbtの最上位プランでもあるのええ費用面の問題や課題も立ちはだかってくることも予想されます。なのでまず最初の使い勝手や基本的な部分での検証をDeveloperプランやTeamプランで確認しつつ、Enterpiseプランへの移行も検討・実践していく方向で検討頂くのが良いかな、というのが情報を整理した上での私の所感でした
このエントリがdbt Cloudのプラン選択の参考になりましたら幸いです。
参考情報: