はじめに
Azure Databricksは、Microsoft Azure上で提供される高度なデータ分析および機械学習プラットフォームです。ビッグデータ処理に適したApache Sparkを基盤とし、データサイエンティストやデータエンジニアが効率的にコラボレーションできる環境を提供します。
今回Databricksを会社で使うか検討する際に、料金や使用感を調べたので、それらについて記述していきます。
Databricks関連の日本語書籍などはほとんどないですが、下記書籍がオススメです。どっちも格安なので購入して読んでみることをオススメします。
Azure Databricksの特徴
一般的に言われるAzure Databricksの特徴は下記になります。
Apache Sparkベースの高速処理
Azure Databricksは、分散処理エンジンであるApache Sparkを基盤にしており、ビッグデータの処理やリアルタイム分析が高速かつ効率的に行えます。データの規模や構造に依存せず、大規模データでも短時間で処理が可能です。
複数言語に対応
Python、R、Scala、SQLなどの複数のプログラミング言語をサポートしており、データサイエンスやデータエンジニアリングの幅広いニーズに対応しています。
Azureとのシームレスな統合
Azure Storage、Azure Machine Learning、Azure Synapse Analyticsなど、Azureの他のサービスと簡単に連携できます。これにより、データの取り込みから分析、モデルデプロイまでの一連の流れを効率化できます。
スケーラブルで柔軟なリソース管理
必要な時に必要なだけリソースをスケールアップ・ダウンできる仕組みを備えています。これにより、コスト効率を最適化しながら高いパフォーマンスを維持できます。
Azure Databricksの料金体系
一般的な料金計算方法
Azure Databricksは主に下記の料金の合計が請求されます。
- Azure VMのインスタンス料金
- Databricksユニット(DBU)料金
- ストレージ料金
私はいくらか自身の環境で使いましたが、下のような形でAzureの請求が来ます。今月はAzure DatabricksとStorageしか活用していません。その中でDatabricks(DBU料金)とVM料金は別で請求が来ていました。
構成次第ですが、Virtual Neworkなども設定する必要がある場合は、併せて請求対象となります。今回は、低額だったため、今回は上にあげた3種類の料金のみがかかる前提で話を進めます。

Azure VMのインスタンス料金 + Databricksユニット(DBU)料金
※2024/11/24時点の情報となります。
データ量によって、適切なインスタンスを設定する必要があると思うので、細かく確認したい際は下記のサイトに行き、各スペックごとの料金を確認する必要があります。
タイプやレベルについても料金が異なりますが、設定は下記にします。All-Purpose、Premiumが何かは後述で説明します。

そして下の方に行くと、AzureのVMインスタンス毎に料金が記載されています。
従量課金制の合計額を見ます。これが「Azure VMのインスタンス料金 + Databricksユニット(DBU)料金」となります。DS3 v2の場合は、1hで126.084円となります。1日8h使い20日稼働した場合は126.084×8×20=20173.44円/月となります。

また、今回はAll-Purposeについて見ていますが、他のComputeも使うことができます。Compute毎には下記のような特徴があります。
- All-Purpose Computeは一般的にNotebookを用いた分析時に使用
- Job Computeは自動Job用に使用、All-Purposeより安い
- SQL ComputeはSQL処理用に使用
All-Purposeに比べてJob Computeは安いので、自動Jobに回せる段階になったら、そっちの方に移した方が料金が安くなります。All-PurposeはNotebookに使われますが、NotebookでもSQLが使えます。SQL Computeとは目的に応じてどちらが安くなるかを考えて活用しましょう。
ストレージ料金
ストレージは設定次第のようですが、一般的にはAzure Data Lake Storageが使われます。
設定やTransaction次第ですが、1TB以下程度だったら1万円以下で済む程度の安さになります。
しかし企業によってデータ量が非常に多く、かつ便利なUnity Catalogを用いてデータ整備していくと、さらにデータが増えると思います。将来的にもどれくらいのデータ量になるかも考えた上で下記のサイトで見積もりましょう。
Sparkの分散処理に用いるマルチノードの料金
DatabricksでSparkを使った分散処理を実施するとき、別のWorker(インスタンス)を立ち上げ、分散処理を実施することができます。インスタンスを追加で立ち上げるわけなので、そのインスタンス料金が加算されます。
どんどん加算されていくわけですが、下記の方法で料金を節約できます。
- 小さいデータの場合はそもそもシングルノードで分析する。
- Spotインスタンスを用いて、安いインスタンスを使う。
- Auto Scaleを用いて、必要な分のWorkerだけ使う。
Spotインスタンスは料金が最大90%OFFとなりますが、途中で止まる可能性もあるため、止まっても問題ないアドホックな分析等に使うのがオススメです。逆に本番用に使うインスタンスでは使わない方がいいと思います。
Azure Databricks全体の料金
DatabricksはSparkによる高速な分散処理が得意ですが、その際にWorker(インスタンス)を多く用いることになるため、使用料金がかさむ可能性があります。
さらに大規模データをStorageするとStorage料金もかかるため、多くの料金がかかる可能性があるため、しっかり見積もる必要があります。
一方、小規模データの場合はシングルノードでも分析できる可能性が高く、かつStorage料金もあまりかからないため、低コストで統合分析環境としてDatabricksを活用できるかと思います。
まとめとして、下記を気にしながら料金を見積もることが必要だと思います。
- Azure VMのインスタンス料金+Databricksユニット(DBU)料金
- スペックにより料金が変化する
- Spark分散処理を使うか(マルチノードを使うか)で変化する
- 従量課金のため、使用時間で変化する
- ストレージ料金
- データ量とTransactionに従い変化する
Azure Databricksの分析環境を立ち上げて分析する
ワークスペースの立ち上げ
まずはAzure Portalに入り、その後Databricksを検索します。
Azure Databricksがあるので、そちらに進みます。

その後、作成というボタンがあるので、設定をしていきます。

その後、リソースグループやワークスペースを選択していきますが、途中でStarndard / Premiumを選ぶドロップダウンがあります。
Standard / Premiumの選択
ここの違いによって料金と機能が変わってきますので注意です。

こちらのサイトに記載されていますが、Premiumには管理系の機能(認証、ログ、ポリシー)が充実しています。ただ、実際に画面に行って確かめたところ、入っている機能が結構異なりました。

Standardの画面
Standardの画面は下記になります。

Premiumの画面
Premiumの画面は下記になります。見ると分かりますが、StandardよりもPremiumの方が機能が多いです。SQLエディタや自然言語で様々な処理を作成できるGenieは、Premiumにしか見当たりません。
これらの機能について、その時々やリージョンによってStandard/Premiumの機能が変わってくると思いますので、実際に触って確認しましょう(ただ、ほとんどの場合はPremiumの方がマッチする気がしました)。


ワークスペースを起動する
画面に戻り、必要情報を入れて作成を押します。数分経つと立ち上げられるようになるので、起動します。
今回とりあえずStandardで作っていきますが、後々Premiumにupgradeすることも可能です。


クラスターを立ち上げる
クラスターをクリックし、コンピューティングを作成していきます。
クラスターとはNotebookとかSQLを動かすものになり、ここにVMなどのリソースが当てられます。
前述したとおり、マルチノードの場合は、分散処理用のワーカーを立てるので、ワーカーとDriverのタイプを設定します。これらはインスタンススペックによって値段も変わるので慎重に設定しましょう。また、料金削減のためにSpotインスタンスやオートスケールを検討し、クラスターを作成します。
非アクティブ状態が○○分継続した後に終了という部分は業務次第ですが、短めに設定した方がいいと思います(30分、60分とか)。
今回はシングルノードで作成してみます。

Notebookで分析する
今度はNotebookを起動します。
先ほど作ったクラスターを紐づけ、分析を開始います。実際にセルを動かすと問題なくPythonが動きました。

以上で、Azure Databrickの立ち上げは終了です。
まとめ
今回はAzure Databricksにかかる料金を調べた上で、実際に立ち上げてみました。従量課金のため、非常に見積もりも難しいですが、Azureの無料トライアル期間などを上手く使って試してみるのが良さそうです。
Databricksは様々な分析環境が整っていて、チームでプロジェクトを進めるには非常に便利なツールになると思います。今後もっと伸びていくかと思いますが、機能も充実していくことを期待したいです。
全体的な流れが分かる書籍や記事はまだまだ日本に少ないと感じています。英語になりますが、Udemyの場合は良い動画もあるので、こちらも検討ください。





コメント