Skip to content

MS_AzureDatabricks

nishi_74322014 edited this page Aug 19, 2026 · 1 revision

Azure Databricks

概要

  • 分散処理基盤である Apache Spark(.NET for Apache Spark)ベースの
    ビッグデータ、統合データ分析プラットフォーム

  • Apache Spark、Delta Lake、および MLflow の作成者によって設立

用途

ビッグデータ分析ワークロードで利用する。

  • ETL のようなバッチ処理

  • データ・パイプラインの過程

  • データ・サイエンティスト向けのフル稼働の計算資源
    には向かない(→ Data Science Virtual Machines)。

コンセプト

Data と AI の民主化

「Data と AI の民主化」を実現する機能

レイクハウス

  • データレイク(DNET_BusinessIntelligence.md)と
    データウェアハウス(DNET_BusinessIntelligence.md)の特徴を併せ持つ。

  • ただ、

    • ブロンズ
    • シルバー
    • ゴールド

    データ領域とか、そう言う概念はあるらしい。

補足(メダリオン アーキテクチャ): 原文が触れている
ブロンズ/シルバー/ゴールドは、Databricks が提唱する
メダリオン アーキテクチャというデータ品質の段階分けである。

[ブロンズ] 生データをそのまま取り込む(追記のみ・変更しない)
     │ クレンジング、重複排除、型付け
     ▼
[シルバー] 検証済み・結合済みの整ったデータ
     │ 集計、ビジネス ロジックの適用
     ▼
[ゴールド] 業務・BI がそのまま使える集計済みデータ

ブロンズを消さずに残すのが要点で、
後から変換ロジックを直したときに再処理できる
「データ レイクに生のまま貯める」という利点を、
品質の段階分けで実務に耐える形にしたもの、と理解するとよい。

詳細

機能

業務領域

  • ビジネス分析(BI/レポート)
  • 自由検索(SQL アナリティクス)
  • 機械学習(+深層学習)

データ種類

  • 構造化(CRM(の RDB)など)
  • 半構造化(JSON/XML など)
  • 非構造化(画像・動画など)

処理タイプ

  • バッチ処理(DNET_DistributedProcessing.md
  • ストリーミング処理(DNET_DistributedProcessing.md

拡張性

  • ストレージ拡張
  • リソース拡張
  • クラウド(マネージドサービス)

コラボレーション

同時編集・コメント・ロギング機能にて、チームでの開発を加速

  • ビジネス・アナリスト
  • データ・サイエンティスト
  • データ・エンジニア

→ デジタルイニシアティブ実行体制(DNET_UseCaseVerificationDX.md

言語

多言語対応にて、スキルの壁を跨いでコラボレーション

  • SQL
  • Python/R
  • Scala

アーキテクチャ

コントロール プレーン

  • MSFT サブスクリプションにデプロイされる。
  • クラスタを構成するドライバーとワーカー両方のノードに使用する VM を管理する。

データ プレーン

  • 自サブスクリプションの VNET にデプロイされる。

    • MSFT が管理する VNET
    • 自身で管理する VNET
  • サーバーレス プールを使用することもできる?

  • データ プレーンでは、Azure Kubernetes Service (AKS) が使用される。
  • NvMe SSD を使用する Dv3 VM 上で動作するコンテナ上で動作する。

補足(この 2 プレーン構成が閉域設計の要): AKS と同様、
管理面(コントロール プレーン)は Microsoft/Databricks 側、
計算面(データ プレーン)は利用者側
という分離になっている。

┌── Databricks 管理のサブスクリプション ──┐
│  コントロール プレーン                    │
│  (Web UI、ジョブ管理、ノートブック保存)  │
└───────────────┬──────────────────────────┘
                │ 制御
┌───────────────▼── 利用者のサブスクリプション ──┐
│  データ プレーン(VNET 内のクラスタ VM)        │
│  → 実データはここでしか処理されない             │
└────────────────────────────────────────────────┘

したがって閉域構成では、

  • VNET インジェクションでデータ プレーンを自社 VNET に置き、
  • Private Link でコントロール プレーンへの経路も閉じる、

という 2 段構えになる(後述の「ネットワーク」節)。

なお「サーバーレス プール」は現在 サーバーレス コンピュートとして
正式に提供されている(クラスタ起動待ちが不要になる)。

スタック

データレイク

DELTA LAKE

  • 高信頼性、高性能 ≒ 高品質なデータレイク ≒ レイクハウスの構築

  • 以下を実現する

    • 高信頼性

      • ACID トランザクション
      • タイムトラベル / スナップショット
      • バッチとストリーミング統合(Apache Spark
      • スキーマ妥当性検証とエボリューション
    • 高性能
      Apache Spark Optimized Engine

      • インデックス
      • コンパクション
      • データスキッピング
      • キャッシング
    • オープンソースのオープンな形式をベース(Parquet)

補足(Delta Lake が何を解決したか): 素の Parquet ファイルを
データ レイクに置いただけでは、

  • 書き込み中のファイルを読まれる(中途半端な状態が見える)、
  • UPDATE / DELETE ができない(追記しかできない)、
  • 過去の状態に戻せない

という問題があった。
Delta Lake は Parquet に**トランザクション ログ(_delta_log)**を
付け加えることでこれらを解決している。

テーブル/
  ├─ part-0001.parquet    ← 実データ(Parquet のまま)
  ├─ part-0002.parquet
  └─ _delta_log/
       ├─ 00000000000000000000.json   ← 「この時点で有効なファイルはこれ」
       └─ 00000000000000000001.json

タイムトラベルVERSION AS OF)はログを遡ることで実現される。
「データ レイクなのに DWH のように扱える」というレイクハウスの主張は、
この仕組みに支えられている。

DELTA ENGINE

  • SQL 分析・ダッシュボード(要するにウワモノ)の高速化を支える。

  • 高性能なクエリ・エンジン。

    • Apache Spark 3.0 で開発されている。

    • Spark SQL と DataFrame API のワークロードを加速させる。

      • インプットを自動的にキャッシュ化
      • Apache Spark のオプティマイザを拡張
      • ネイティブ(C++)でベクトル化された実行エンジン(Photon)

セキュリティ

暗号化

  • 保存時の暗号化
    ストレージ系サービスの標準的な方式

    • サービス マネージド キー(Microsoft が管理)
    • ユーザー マネージド キー(Key Vault と併用して管理)
  • 転送中の暗号化(TLS
    コントロール プレーン → データ プレーンへのトラフィック

AzAD を使用

RBAC と IAM を利用可能。

  • アクセス制御

    • クラスタ
    • ノートブックとフォルダー
    • テーブルとビュー
    • Azure Data Lake Storage (ADLS)
    • ジョブの実行結果
  • AzAD トークンのサポート

補足(最新化): 現在は Unity Catalog により、
カタログ / スキーマ / テーブル / 列 / 行の単位で
一元的にアクセス制御と系譜(リネージ)管理ができるようになっている。
ワークスペースをまたいだガバナンスが可能になった点が大きい。

ネットワーク

  • VNet ピアリング(標準デプロイ時)

  • VNet インジェクション

    • データ プレーン リソースを独自 VNet にデプロイ
    • 以下が利用可能になる。
      • 独自 VNet へのネットワーク・アクセス
      • 独自 VNet からのネットワーク・アクセス

違い

OSS 版との違い

...

クラウド・サービス OSS
DELTA LAKE DELTA LAKE
DELTA ENGINE

補足: 「Delta Lake は OSS、Delta Engine(Photon)は商用のみ」
という整理は現在も基本的に正しい。
Databricks は Delta Lake / MLflow / Spark を OSS として公開しつつ、
実行エンジンの最適化(Photon)と
運用機能(Unity Catalog、ジョブ管理、ノートブック協働)を商用
とする
ビジネス モデルを採っている。

Azure HDInsight との違い

上モノ

多様なユースケース

さまざまなデータソースから集約された、
高品質なデータセットにアクセス可能であるため、
1つのプラットフォーム上で多様なユースケースを実現可能。

  • Redash
    BI レポート&ダッシュボード

Workspace

機械学習のツールの課題(DNET_MachineLearning.md)に対するソリューション

  • データ・サイエンスチームの生産性を向上
  • 1 つのプラットフォームにて多種多様な
    ツール・言語・フレームワークを利用可能
  • コラボレーション可能なノートブック

MLflow

機械学習のデプロイの課題(DNET_MachineLearning.md)に対するソリューション

  • 標準化された機械学習ライフサイクル

    モデル学習 → モデル登録 → モデル比較 → 承認ワークフロー → モデルデプロイ

  • シームレスにセキュアに機械学習モデルをステージングから本番環境へ連携可能

    • MLflow トラッキング

      • 実験のトラッキングと検索
      • レコードとクエリの実験:コード、データ、コンフィグ、結果
    • MLflow プロジェクト

      • 再現可能なプロジェクト
      • あらゆるプラットフォームで再現可能なように
        パッケージ化されたデータ・サイエンス・コード
    • MLflow モデル・レジストリ

      • モデル管理とレビュー
      • セントラルのレポジトリーにて
        モデルを保存、注釈付与、管理
    • MLflow モデル・サービング

      • 柔軟なデプロイ方法
      • 機械学習モデルを様々な環境に簡易にデプロイ可能
      • REST エンドポイント

補足(MLflow の位置づけ): 機械学習の「実験は動くが本番に載らない」
という問題(MLOps の課題)に対し、

  • 何をどう学習したかを記録し(トラッキング)、
  • 同じ結果を再現でき(プロジェクト)、
  • どのモデルが本番かを管理し(レジストリ)、
  • API として配信する(サービング)、

という 4 点を標準化したもの。
MLflow 自体は OSS で、Databricks 以外でも使える
Azure Machine Learning も MLflow 互換)。

チュートリアル(MS_AzureDatabricksTutorial.md

参考

gihyo.jp … 技術評論社

クリエーションライン株式会社

ナレコム Azure レシピ

https://azure-recipe.kc-cloud.jp/category/databricks/

Microsoft Azure

Microsoft Learn

Azure Databricks のドキュメント

https://learn.microsoft.com/ja-jp/azure/databricks/

  • 概要
    https://learn.microsoft.com/ja-jp/azure/databricks/introduction/

  • クイックスタート
    ワークスペースの作成

    • ポータル
    • Azure PowerShell
    • ARM テンプレート
    • 仮想ネットワーク
  • チュートリアル

    • Docker コンテナで稼働している SQL Server に対するクエリ
    • Azure Key Vault を使用したストレージへのアクセス
    • Cosmos DB サービス エンドポイントの使用
    • ETL 操作の実行
    • Event Hubs を使用したデータのストリーミング
    • Cognitive Services を使用した感情分析
  • リファレンス

...

Learn

  • Azure Databricks を使用した Data Engineering
    https://learn.microsoft.com/ja-jp/training/paths/data-engineer-azure-databricks/
    • Azure Databricks の説明

    • Spark アーキテクチャの基礎

    • Azure Databricks でデータの読み取りと書き込みを行う

    • Azure Databricks におけるプラットフォーム
      アーキテクチャ、セキュリティ、データ保護について説明する

    • Delta Lake の構築とクエリ

    • Azure Data Factory を使用して
      Azure Databricks の運用ワークロードを作成する

    • Azure DevOps を使用した CI/CD の実装

    • Azure Databricks を Azure Synapse と統合する

    • Azure Databricks のベスト プラクティスについて説明する

    • DataFrames(Spark SQL)関連(DNET_SparkSQL.md

YouTube

slideshare.net

開発基盤部会 Wiki & Blog(.NET for Apache Spark


Tags: 移行, インフラストラクチャ, クラウド, ビッグデータ, BI/AI, Azure

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally