Cloud Service
Azure Databricks
Apache Spark を基盤に ETL から機械学習・BI までを統合する Azure のレイクハウス分析基盤。AWS の EMR や Glue に相当する役割を1つにまとめたフルマネージドサービス。
- 1.Spark ベースで ETL・分析・機械学習を1つの基盤に統合するレイクハウス。
- 2.Delta Lake と Unity Catalog でデータの信頼性とガバナンスを確保する。
- 3.コンピューティングはクラスター/ジョブ単位で課金され、DBU で計量される。
解決する課題
大量の構造化・半構造化・非構造化データに対し、データエンジニアリング、SQL 分析、機械学習を別々の基盤で運用すると、データの重複やパイプラインの分断、ガバナンスの煩雑さが生じます。Azure Databricks は Apache Spark を中核に据え、これらを単一の「レイクハウス」基盤へ統合します。
- 大規模データの ETL / ELT バッチ処理 とストリーミング処理を1つの基盤で実行したい
- データレイク上のファイルに ACID トランザクションと信頼性(Delta Lake)を持たせたい
- データエンジニア・アナリスト・データサイエンティストが 同じデータを共同利用 したい
- 機械学習の 実験管理から本番デプロイ(MLflow)までを一貫して扱いたい
- クラスターの構築・パッチ・スケーリングといった Spark 運用の手間をなくしたい
AWS では EMR や Glue でスパーク基盤や ETL を組み立てますが、Azure Databricks はそれらの役割に加えてノートブック協働、SQL ウェアハウス、MLflow までを束ねた上位レイヤーに近い位置づけです。
主要概念と用語
- ワークスペース(Workspace): ノートブック、ジョブ、クラスター、データなどをまとめる作業環境の単位
- クラスター(Cluster): Spark を実行する仮想マシン群。汎用クラスターとジョブ専用クラスターがある
- ジョブ(Job): ノートブックやスクリプトをスケジュール実行・オーケストレーションする仕組み
- ノートブック(Notebook): Python・SQL・Scala・R を混在実行できる協働用のコード環境
- DBU(Databricks Unit): 処理能力の計量単位。コンピューティングのコストは DBU 消費量で測られる
- Delta Lake: データレイク上のファイルに ACID トランザクション・スキーマ管理・タイムトラベルを与えるストレージレイヤー
- レイクハウス(Lakehouse): データレイクの柔軟性とデータウェアハウスの信頼性を統合するアーキテクチャ概念
- Unity Catalog: 複数ワークスペース横断で権限・系統(リネージ)・カタログを一元管理するガバナンス層
- SQL ウェアハウス(SQL Warehouse): BI / SQL クエリ向けに最適化された計算エンドポイント
- MLflow: 実験追跡・モデル登録・デプロイを担う機械学習ライフサイクル管理ツール
- メダリオンアーキテクチャ: データをブロンズ(生)・シルバー(整形)・ゴールド(集計)の層で段階的に洗練する設計
仕様・制限・クォータ
- コンピューティングは VM のコストと DBU の両方 で課金される。SKU(Standard / Premium など)やワークロード種別で DBU 単価が変わる
- クラスターは オートスケール と アイドル時の自動終了 を設定でき、放置コストを抑えられる
- ジョブクラスターは実行時に起動して終了時に破棄 されるため、常時稼働の汎用クラスターより安価になりやすい
- 作成できるクラスター数や同時実行ジョブ数、ノード数にはサブスクリプションや VM クォータに基づく上限がある
- 利用できる VM サイズやリージョン、機能(Unity Catalog、サーバーレスなど)は提供状況により異なるため、断定せず公式情報で確認する
- Delta Lake はオープンフォーマット(Parquet +トランザクションログ)であり、特定ベンダーにロックインされにくい
定期バッチや本番パイプラインでは、常時起動の汎用クラスターではなく ジョブクラスター を使うのが原則です。実行のたびに起動・破棄されるためコストが読みやすく、ジョブ間の干渉も避けられます。
内部の仕組み
Azure Databricks はコントロールプレーンとコンピューティングプレーンに分かれます。ノートブックやジョブ定義、Web UI などの管理機能は Databricks 側のコントロールプレーンにあり、実際の Spark 処理を行うクラスターの VM は利用者の Azure サブスクリプション側で起動します。データそのものは ADLS Gen2 や Blob Storage などのストレージに置かれ、計算と分離されています。
- Spark のドライバーノードがジョブを タスクへ分割 し、ワーカーノードのエグゼキューターに分散実行させる
- 中間結果はメモリを優先しつつディスクへ退避し、シャッフルでノード間を再分配する
- Delta Lake はデータファイルに加えてトランザクションログを保持し、ACID・スキーマ強制・タイムトラベルを実現する
- Photon などのネイティブ実行エンジンにより、SQL や DataFrame 処理のスループットを高められる
- ストレージと計算が分離されているため、計算をゼロにスケールしてもデータは残る
メダリオンアーキテクチャでは、取り込んだ生データをブロンズ層に置き、クレンジング・結合したものをシルバー層へ、分析や BI 向けに集計したものをゴールド層へと、Delta テーブルを段階的に洗練していきます。
設計パターン / ベストプラクティス
- 取り込み・整形・集計を メダリオンアーキテクチャ(ブロンズ/シルバー/ゴールド)で層別化し、再処理しやすくする
- 信頼性が要るテーブルは Delta Lake を既定とし、生 Parquet や CSV の直接更新を避ける
- 宣言的なパイプラインが必要なら Delta Live Tables で依存関係・品質期待値・再試行を自動化する
- BI / アドホック SQL は専用の SQL ウェアハウス に分離し、ETL クラスターと負荷を分ける
- ガバナンスは早期に Unity Catalog で統一し、ワークスペースごとの権限分散を避ける
- 機械学習は MLflow で実験・モデル・デプロイを一元管理し、再現性を確保する
運用・監視
- ジョブの実行履歴・所要時間・失敗を Databricks の ジョブ UI で確認し、リトライや通知を設定する
- Spark の処理ボトルネックは Spark UI(ステージ・タスク・シャッフル・スピル)で分析する
- クラスターやワークスペースのログ・メトリクスを Azure Monitor / Log Analytics へ送り、横断的に可視化する
- 監査ログや診断設定で操作履歴を保存し、誰がどのデータにアクセスしたかを追跡できるようにする
- 失敗の典型はメモリ不足・データ偏り(スキュー)・小ファイル過多であり、パーティション設計や最適化処理で対処する
ストリーミングや頻繁な追記により小さなファイルが大量に生成されると、読み取り性能が大きく劣化します。Delta テーブルの最適化(コンパクション)やパーティション設計で、ファイルサイズを適正化しておきましょう。
コスト
コストは大きく分けて、ワーカー/ドライバーの VM 利用料 と、それに連動する DBU 消費 の合計です。SKU やワークロード種別、リージョンによって DBU 単価が変わるため、具体的な金額は断定せず構造で捉えるのが要点です。
- オートスケール と 自動終了 を必ず設定し、アイドル状態の課金を防ぐ
- 本番バッチは ジョブクラスター にして常時稼働コストを排除する
- スポット/低優先度 VM を許容できるワークロードで採用し、VM 単価を下げる
- 計算とストレージが分離されているため、計算を止めてもデータ保管コストだけにできる
| 削減策 | 効果 | 向いている場面 |
|---|---|---|
| 自動終了 | アイドル時間の課金をなくす | 対話的な開発・検証クラスター |
| オートスケール | 負荷に応じてノード数を調整 | 負荷が変動するワークロード |
| ジョブクラスター | 実行時のみ起動し破棄する | 定期バッチ・本番パイプライン |
| スポット系VM | VM単価を下げる | 中断を許容できる処理 |
セキュリティ
- 認証は Microsoft Entra ID と統合し、ワークスペースやデータへのアクセスを一元管理する
- データアクセス権限は Unity Catalog でカタログ・スキーマ・テーブル単位に細かく制御する
- ストレージへのアクセスは マネージド ID を用い、資格情報のハードコードを避ける
- VNet インジェクション やプライベートリンクでネットワークを閉域化し、公開アクセスを制限する
- 保存データと転送データは暗号化され、Premium 系では カスタマーマネージドキー にも対応する
ストレージアカウントのキーやアクセストークンをノートブックに直書きするのは厳禁です。マネージド ID と Unity Catalog の権限 を使えば、資格情報の管理・ローテーション・漏洩リスクを排除できます。
Well-Architected の観点
性能効率(Performance Efficiency)の観点では、Azure Databricks は計算リソースをワークロードに合わせて伸縮できる点が中心になります。
- オートスケールと適切な VM サイズ選択で、負荷に対して過不足のない計算量を割り当てる
- Photon や Delta の最適化(データスキッピング、コンパクション)でクエリスループットを高める
- ETL と BI を別クラスター/ウェアハウスに分離し、相互の性能干渉を避ける
- ジョブクラスターと自動終了により、性能とコストのバランスを保つ
試験で問われるポイント
- Azure Databricks は Apache Spark ベース の統合分析・機械学習基盤であり、ETL・SQL 分析・ML を1つで扱える点を押さえる
- Delta Lake がデータレイクに ACID・スキーマ強制・タイムトラベルを与えるストレージレイヤーであること
- Unity Catalog が複数ワークスペース横断のガバナンス(権限・系統・カタログ)を担うこと
- コンピューティングは DBU で計量され、VM 料金と合算で課金されること
- 本番バッチには常時稼働の汎用クラスターではなく ジョブクラスター が適すること
- 大規模データ変換は Databricks、ノーコード寄りのデータ統合は Azure Data Factory という棲み分け
関連サービス・比較
データ加工・分析の選択肢として Azure Synapse Analytics や Azure Data Factory と比較されます。AWS では EMR や Glue が近い役割を担います。
| 観点 | Azure Databricks | Azure Synapse Analytics |
|---|---|---|
| 中核エンジン | Apache Spark 中心 | SQL とSpark の両プール |
| 主な強み | Spark処理・機械学習・協働ノートブック | データウェアハウス・統合分析 |
| 機械学習 | MLflow で一貫管理 | 外部サービスと連携が中心 |
| データ信頼性 | Delta Lake が標準 | 専用SQLプール/Delta対応 |
| AWSの相当 | EMR や Glue の統合上位に近い | Redshift と関連分析群に近い |
ノーコード/ローコードでデータ移動やオーケストレーションを組むなら Azure Data Factory、大規模なコードベースのデータ変換や機械学習なら Azure Databricks。両者を組み合わせ、Data Factory から Databricks ノートブックを呼び出す構成も一般的です。
ハンズオン / CLI例
# リソースグループを作成
az group create --name demo-rg --location japaneast
# Azure Databricks ワークスペースを作成(Premium SKU)
az databricks workspace create \
--resource-group demo-rg \
--name demo-adb-ws \
--location japaneast \
--sku premium
# 作成したワークスペースの情報を確認(URL などを取得)
az databricks workspace show \
--resource-group demo-rg \
--name demo-adb-ws \
--query "{name:name, url:workspaceUrl, sku:sku.name}" \
--output table
# 不要になったら削除してコストを止める
az databricks workspace delete \
--resource-group demo-rg \
--name demo-adb-ws \
--yes
Azure Service
Azure Databricksを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
分析
比較で見る軸
クラウド: Azure / カテゴリ: 分析 / 難易度: intermediate
導入後に効く点
Delta Lake と Unity Catalog でデータの信頼性とガバナンスを確保する。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- Azure
- カテゴリ
- 分析
- 難易度
- intermediate
- 関連資格
- —
- 設計柱
- performance
判断チェックリスト
- 自社の用途が「分析 / performance」に近いか確認する。
- 強みである「Spark ベースで ETL・分析・機械学習を1つの基盤に統合するレイクハウス。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。