0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Databricksとは? データ基盤・AI基盤を一元化するLakehouseプラットフォームを解説

0
Posted at

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)から着手するかを絞り込み、段階的に適用範囲を広げていくアプローチが実践的です。


参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?