Databricksとは? データ基盤・AI基盤を一元化するLakehouseプラットフォームを解説
はじめに
データエンジニアリング、BI分析、機械学習、生成AIを別々のツールで管理していると、データの分断やガバナンスの複雑化が生じやすくなります。
Databricks は、これらすべてを単一プラットフォームで扱うことを目指したクラウド型のデータ/AIプラットフォームです。本記事では、Databricksの概要・アーキテクチャ・主な機能を整理して解説します。
Databricksとは
Databricksは「Databricks Data Intelligence Platform」として展開されており、AWS・Azure・Google Cloudで利用できるマルチクラウド対応のプラットフォームです。
Databricks = データ基盤 + AI基盤
主な用途
- データエンジニアリング:バッチ・ストリーミングETLの構築
- BI/分析:SQL Warehouseを使ったダッシュボードや集計
- データサイエンス:ノートブック上での特徴量作成・学習・評価
- 生成AI:社内データを活用したAIエージェントやモデル提供基盤
- ガバナンス:データ・AI資産・アクセス制御の一元管理
料金について
Databricksの料金は「Databricks費用」と「クラウド基盤費用」の2本立てになっています。月額固定のSaaSとは異なり、使った分だけ課金される従量課金が基本です。
費用の構造
総費用 = Databricks利用料(DBU課金)+ クラウド基盤費用(AWS/Azure/GCPのVM・ストレージ代)
DBU(Databricks Unit) が請求の単位で、1DBUは一定量の処理能力を表します。ワークロードの種類によってDBU消費レートが異なります。
ワークロード別の料金区分
Databricksの課金はワークロード(用途)ごとに分かれています。
| ワークロード | 主な用途 | 特徴 |
|---|---|---|
| All-Purpose Compute | ノートブックでの対話的な開発・分析 | DBU単価が最も高い |
| Jobs(Data Engineering) | ETLジョブ・自動化パイプライン | All-Purposeより安価 |
| Databricks SQL | SQL分析・BIダッシュボード | SQL Warehouseのタイプで変わる |
| Delta Live Tables | 宣言的パイプライン | Pro / Core の2グレード |
| Model Serving | MLモデルのデプロイ | リクエスト数・トークン数で課金 |
SQL Warehouseのタイプ比較
SQL分析用のSQL Warehouseは3タイプあり、コストとパフォーマンスのトレードオフがあります。
| タイプ | インフラ管理 | 起動速度 | 単価感 |
|---|---|---|---|
| Serverless | Databricks側が管理 | 最速(秒単位) | 高め |
| Pro | 自分のクラウド上 | 数分 | 中程度 |
| Classic | 自分のクラウド上 | 数分 | 低め |
Serverlessは「起動の待ち時間ゼロ」を重視するチーム向け。Classicはコストを抑えたい場合に向いています。
プランの種類
Databricksにはライセンスプランがあり、使える機能が異なります。
| プラン | 対象 | 主な違い |
|---|---|---|
| Standard | 個人・スモールチーム | 基本機能のみ |
| Premium | 企業向け | Unity Catalog・Row-level security など |
| Enterprise | 大規模企業向け | SLA保証・専任サポートなど |
料金を理解するうえで重要なポイント
- Databricksの費用とクラウド費用は別請求:Databricks費用は使った機能・DBU量で、クラウド費用はVMやストレージの使用量でそれぞれ発生します
- All-Purpose Computeは高い:対話的な開発環境は便利ですが単価が高く、不要なクラスターを起動しっぱなしにするとコストが膨らみます
- ジョブクラスターで自動終了を活用する:バッチ処理はジョブクラスターを使い、終了後に自動停止させることでコストを抑えられます
- Serverless SQLは見かけより安くなる場合がある:管理コストがゼロで使った分だけ課金されるため、使用頻度が低い場合はClassicより総額が安くなることがあります
- 企業向けコミット割引あり:年間利用量をコミットすることで割引を受けられる契約(Committed Use Agreement)があります
無料トライアル
Databricks公式サイトから無料トライアルに登録できます。AWS・Azure・GCPのいずれかのクラウドアカウントがあれば、Databricksワークスペースをすぐに試せます。
コアコンセプト:Lakehouseアーキテクチャ
Databricksの根本思想は次の一言に集約されます。
Data Lake + Data Warehouse = Lakehouse
| 従来の課題 | Lakehouseによる解決 |
|---|---|
| データレイクは柔軟だがガバナンスが弱い | Delta LakeでACIDトランザクションを実現 |
| データウェアハウスはコストが高くスケールしにくい | クラウドネイティブな分散処理で大規模データに対応 |
| ETL・SQL・MLが別基盤に分散 | 単一プラットフォームで横断利用 |
Databricksプラットフォームの構成は以下のイメージです。
Databricks Data Intelligence Platform
└ Lakehouse Architecture
├ Delta Lake(ストレージレイヤー)
├ Apache Spark(計算エンジン)
├ Data Engineering(ETL・パイプライン)
├ Data Analytics(SQL・BI)
└ Machine Learning(ML・生成AI)
ハイレベルアーキテクチャ
Databricksは大きく2つのプレーンに分かれます。
| プレーン | 役割 | 主なコンポーネント |
|---|---|---|
| Control Plane | Databricks側が管理するサービス層 | Web UI・REST API・Workspace・Cluster Manager |
| Data Plane | 実際の計算処理が行われる層 | Driver Node・Worker Node |
| Customer Cloud | ユーザーのクラウドストレージ | DBFS Data・Delta Lake Data |
アカウントとワークスペース
- Databricksアカウントが最上位の管理単位
- アカウント配下に複数のワークスペースを作成できる
- Unity Catalogメタストアをワークスペースにアタッチして利用
主要コンポーネント詳解
1. Delta Lake(ストレージレイヤー)
Databricksが推奨するデータ形式で、データレイク上のファイルに対して信頼性の高いデータ管理を実現します。
主な機能
| 機能 | 説明 |
|---|---|
| ACIDトランザクション | 安全な読み書き・更新を保証 |
| Time Travel | 過去バージョンのデータを参照できる |
| Schema Enforcement | スキーマの整合性チェックを強制 |
| Schema Evolution | スキーマの段階的な変更に対応 |
| Liquid Clustering | クエリ性能を向上させる動的クラスタリング |
Time Travelの使い方
-- 1日前のスナップショットを参照
SELECT * FROM table_name TIMESTAMP AS OF date_sub(current_date(), 1)
-- バージョン番号で指定
SELECT * FROM table_name VERSION AS OF 3
テーブル操作のよく使うコマンド
-- 変更履歴の確認
DESCRIBE HISTORY table_name
-- ファイルの圧縮(小さいファイルをまとめる)
OPTIMIZE table_name
-- 古い不要ファイルの物理削除(デフォルト7日以前)
VACUUM table_name
2. Unity Catalog(ガバナンスレイヤー)
ワークスペース全体でアクセス制御・監査・データリネージ・品質モニタリングを提供する一元化されたデータカタログです。
オブジェクト階層
Metastore
└ Catalog(カタログ)
└ Schema / Database(スキーマ)
└ Table / View / Function(テーブル等)
Unity Catalog内のテーブルへのアクセスは3段階の名前で行います。
SELECT * FROM catalog_name.schema_name.table_name
3. Apache Spark(計算エンジン)
Databricksの計算エンジンの中核です。大規模データを分散処理し、SQL・Python・Scala・Javaから同一データを扱えます。
クラスターの構成
クラスター
├ Driver Node(指揮官:処理計画を作りWorkerに指示する)
└ Worker Node × N(作業員:実際のデータ処理を分散実行)
クラスターの種類
| 種類 | 用途 |
|---|---|
| 汎用クラスター | 対話的な開発・分析 |
| ジョブクラスター | ジョブ実行専用(都度起動) |
| SQL Warehouse | SQLクエリ・BIツール接続専用 |
4. Spark Structured Streaming(ストリーミング処理)
流れてくるデータをリアルタイムに近い形で処理できる機能です。
基本的な書き方
df = spark.readStream.format("json").load("/input/path")
result = df.groupBy("customer_id").count()
query = result.writeStream \
.outputMode("update") \
.format("delta") \
.option("checkpointLocation", "/checkpoint/path") \
.start()
出力モードの違い
| モード | 動作 |
|---|---|
| Append | 新しく追加された行だけを書き込む |
| Complete | 集計結果全体を毎回出力する |
| Update | 前回から更新があった行だけを書き込む |
5. Auto Loader(インクリメンタルデータ取り込み)
クラウドストレージに到着した新規ファイルを自動的に検知・処理する機能です。Spark Structured Streamingがベースになっています。
df = spark.readStream \
.format("cloudFiles") \
.option("cloudFiles.format", "csv") \
.option("cloudFiles.schemaLocation", "dbfs:/location/schema/") \
.load("/data/source/")
-
cloudFilesフォーマットを指定するだけでAuto Loaderが有効になる - チェックポイントにより、前回処理した場所を記録して再処理を防ぐ
- ノートブックが失敗していた期間のデータも自動的に再処理される
6. Delta Live Tables(宣言的パイプライン)
データパイプラインを宣言的に定義し、品質管理・監視・自動運用を一体化して実行できる機能です。
2つの実行モード
| モード | 動作 | ユースケース |
|---|---|---|
| Triggered | 実行時点のデータを処理して完了 | 定期バッチ、コスト重視 |
| Continuous | 新しいデータを継続監視しながら処理 | リアルタイム処理、IoT・イベントログ |
-- Delta Live Tablesでのテーブル参照
SELECT * FROM LIVE.sales_orders_cleaned
テーブルの種類
Databricksでは2種類のテーブルがあります。
| 種類 | データ管理 | DROP TABLE時の動作 |
|---|---|---|
| Managed Table | Databricksが管理 | データもメタデータも削除 |
| External Table | 外部ストレージを参照 | メタデータのみ削除、データは残る |
テーブル種別の確認方法:
DESCRIBE EXTENDED table_name
-- "Type" の列を確認
Databricksの強みと弱み
強み
- ETL・SQL・ML・生成AIを単一プラットフォームで扱えるため、データ基盤の分断を減らしやすい
- Lakehouseアーキテクチャにより、データレイクの柔軟性とDWHの管理性を両立
- オープンなデータ基盤志向で、既存のクラウド資産と組み合わせやすい
- Unity Catalogによりガバナンスと分析基盤・AI基盤を一体管理できる
- サーバレス機能で大規模運用時のコスト最適化余地がある
弱み
- 従量課金のため、運用ルールが弱いとコストが膨らみやすい
- 機能範囲が広く、学習コストが高い
- 小規模用途では専用BIツールや軽量ETL基盤よりオーバースペックになりやすい
- クラウド構成・権限・ネットワーク・コスト管理まで含めた設計力が必要
まとめ
Databricksは「データ基盤とAI基盤を一体化する」というコンセプトのもと、ETLからML・生成AIまでを単一プラットフォームで扱えることが最大の特徴です。
| レイヤー | 技術 |
|---|---|
| ストレージ | Delta Lake |
| ガバナンス | Unity Catalog |
| 計算エンジン | Apache Spark |
| バッチ取り込み | Auto Loader |
| パイプライン | Delta Live Tables |
| SQL分析 | SQL Warehouse |
導入を検討する際は、まずどのユースケース(ETL・SQL・ML)から着手するかを絞り込み、段階的に適用範囲を広げていくアプローチが実践的です。