MS_AzureDatabricks - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki

Azure Databricks

抂芁

  • 分散凊理基盀である Apache Spark.NET for Apache Sparkベヌスの
    ビッグデヌタ、統合デヌタ分析プラットフォヌム

  • Apache Spark、Delta Lake、および MLflow の䜜成者によっお蚭立

甹途

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

  • ETL のようなバッチ凊理

  • デヌタ・パむプラむンの過皋

  • デヌタ・サむ゚ンティスト向けのフル皌働の蚈算資源
    には向かない→ Data Science Virtual Machines。

コンセプト

Data ず AI の民䞻化

「Data ず AI の民䞻化」を実珟する機胜

レむクハりス

補足メダリオン アヌキテクチャ: 原文が觊れおいる
ブロンズシルバヌゎヌルドは、Databricks が提唱する
メダリオン アヌキテクチャずいうデヌタ品質の段階分けである。

[ブロンズ] 生デヌタをそのたた取り蟌む远蚘のみ・倉曎しない
     │ クレンゞング、重耇排陀、型付け
     ▌
[シルバヌ] 怜蚌枈み・結合枈みの敎ったデヌタ
     │ 集蚈、ビゞネス ロゞックの適甚
     ▌
[ゎヌルド] 業務・BI がそのたた䜿える集蚈枈みデヌタ

ブロンズを消さずに残すのが芁点で、
埌から倉換ロゞックを盎したずきに再凊理できる。
「デヌタ レむクに生のたた貯める」ずいう利点を、
品質の段階分けで実務に耐える圢にしたもの、ず理解するずよい。

詳现

機胜

業務領域

  • ビゞネス分析(BI/レポヌト)
  • 自由怜玢(SQL アナリティクス)
  • 機械孊習(+深局孊習)

デヌタ皮類

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

凊理タむプ

  • バッチ凊理分散凊理の該圓節を参照
  • ストリヌミング凊理分散凊理の該圓節を参照

拡匵性

  • ストレヌゞ拡匵
  • リ゜ヌス拡匵
  • クラりド(マネヌゞドサヌビス)

コラボレヌション

同時線集・コメント・ロギング機胜にお、チヌムでの開発を加速

  • ビゞネス・アナリスト
  • デヌタ・サむ゚ンティスト
  • デヌタ・゚ンゞニア

→ デゞタルむニシアティブ実行䜓制ナヌスケヌス怜蚌DX系

蚀語

倚蚀語察応にお、スキルの壁を跚いでコラボレヌション

  • 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 ずの違い

  • Apache Spark に特化しおいる。
  • Hadoop テクノロゞ スタックをドロップ
    HDFS ではない、デヌタ ゜ヌスを䜿甚できる。

䞊モノ

倚様なナヌスケヌス

さたざたなデヌタ゜ヌスから集玄された、
高品質なデヌタセットにアクセス可胜であるため、
぀のプラットフォヌム䞊で倚様なナヌスケヌスを実珟可胜。

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

Workspace

機械孊習のツヌルの課題機械孊習machine learning の該圓節を参照に察する゜リュヌション

  • デヌタ・サむ゚ンスチヌムの生産性を向䞊
  • 1 ぀のプラットフォヌムにお倚皮倚様な
    ツヌル・蚀語・フレヌムワヌクを利甚可胜
  • コラボレヌション可胜なノヌトブック

MLflow

機械孊習のデプロむの課題機械孊習machine learning の該圓節を参照に察する゜リュヌション

  • 暙準化された機械孊習ラむフサむクル

    モデル孊習 → モデル登録 → モデル比范 → 承認ワヌクフロヌ → モデルデプロむ

  • シヌムレスにセキュアに機械孊習モデルをステヌゞングから本番環境ぞ連携可胜

    • MLflow トラッキング

      • 実隓のトラッキングず怜玢
      • レコヌドずク゚リの実隓コヌド、デヌタ、コンフィグ、結果
    • MLflow プロゞェクト

      • 再珟可胜なプロゞェクト
      • あらゆるプラットフォヌムで再珟可胜なように
        パッケヌゞ化されたデヌタ・サむ゚ンス・コヌド
    • MLflow モデル・レゞストリ

      • モデル管理ずレビュヌ
      • セントラルのレポゞトリヌにお
        モデルを保存、泚釈付䞎、管理
    • MLflow モデル・サヌビング

      • 柔軟なデプロむ方法
      • 機械孊習モデルを様々な環境に簡易にデプロむ可胜
      • REST ゚ンドポむント

補足MLflow の䜍眮づけ: 機械孊習の「実隓は動くが本番に茉らない」
ずいう問題MLOps の課題に察し、

  • 䜕をどう孊習したかを蚘録しトラッキング、
  • 同じ結果を再珟できプロゞェクト、
  • どのモデルが本番かを管理しレゞストリ、
  • API ずしお配信するサヌビング、

ずいう 4 点を暙準化したもの。
MLflow 自䜓は OSS で、Databricks 以倖でも䜿える
Azure Machine Learning も MLflow 互換。

参考

gihyo.jp 
 技術評論瀟

  • 2019幎10月17日 "デヌタレむク"のスタンダヌドをめざす ―
    Databricks「Delta Lake」を Linux Foundation に寄莈Linux Daily Topics
    https://gihyo.jp/admin/clip/01/linux_dt/201910/17

クリ゚ヌションラむン株匏䌚瀟

ナレコム 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関連

YouTube

slideshare.net

開発基盀郚䌚 Wiki & Blog.NET for Apache Spark


Tags: 移行, むンフラストラクチャ, クラりド, ビッグデヌタ, BI/AI, Azure

⚠ **GitHub.com Fallback** ⚠