-
Notifications
You must be signed in to change notification settings - Fork 0
MS_AzureDatabricks
- 戻る(Azure)
-
ビッグデータ処理テクノロジ
- Azure HDInsight
- Azure Databricks
- Azure Data Factory
- Elastic on Azure
-
ストリーム処理テクノロジ
- Azure Stream Analytics
- Azure HDInsight の Hadoop、Spark、Storm
- Azure Databricks の Apache Spark
- Azure Data Factory
-
AI系サービス
- Azure Machine Learning
- Azure Databricks
- Azure Cognitive Services
- Azure OpenAI Service(
MS_AzureOpenAIService.md) - Azure Applied AI Services(
MS_AzureAppliedAIServices.md) - Azure AI インフラストラクチャ(
MS_AzureAIInfrastructure.md)
-
ビッグデータ処理テクノロジ
-
分散処理基盤である Apache Spark(.NET for Apache Spark)ベースの
ビッグデータ、統合データ分析プラットフォーム -
Apache Spark、Delta Lake、および MLflow の作成者によって設立
ビッグデータ分析ワークロードで利用する。
-
ETL のようなバッチ処理
-
データ・パイプラインの過程
-
データ・サイエンティスト向けのフル稼働の計算資源
には向かない(→ Data Science Virtual Machines)。
「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 段構えになる(後述の「ネットワーク」節)。
なお「サーバーレス プール」は現在 サーバーレス コンピュートとして
正式に提供されている(クラスタ起動待ちが不要になる)。
-
データレイクとは(
DNET_BusinessIntelligence.md) -
多種多様な全てのデータをデータレイクに格納
-
高信頼性、高性能 ≒ 高品質なデータレイク ≒ レイクハウスの構築
-
以下を実現する
-
高信頼性
- 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 のように扱える」というレイクハウスの主張は、
この仕組みに支えられている。
-
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)
- ジョブの実行結果
補足(最新化): 現在は Unity Catalog により、
カタログ / スキーマ / テーブル / 列 / 行の単位で
一元的にアクセス制御と系譜(リネージ)管理ができるようになっている。
ワークスペースをまたいだガバナンスが可能になった点が大きい。
-
VNet ピアリング(標準デプロイ時)
-
VNet インジェクション
- データ プレーン リソースを独自 VNet にデプロイ
- 以下が利用可能になる。
- 独自 VNet へのネットワーク・アクセス
- 独自 VNet からのネットワーク・アクセス
...
| クラウド・サービス | 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 ではない、データ ソースを使用できる。
さまざまなデータソースから集約された、
高品質なデータセットにアクセス可能であるため、
1つのプラットフォーム上で多様なユースケースを実現可能。
- Redash
BI レポート&ダッシュボード
機械学習のツールの課題(DNET_MachineLearning.md)に対するソリューション
- データ・サイエンスチームの生産性を向上
- 1 つのプラットフォームにて多種多様な
ツール・言語・フレームワークを利用可能 - コラボレーション可能なノートブック
機械学習のデプロイの課題(DNET_MachineLearning.md)に対するソリューション
-
標準化された機械学習ライフサイクル
モデル学習 → モデル登録 → モデル比較 → 承認ワークフロー → モデルデプロイ
-
シームレスにセキュアに機械学習モデルをステージングから本番環境へ連携可能
-
MLflow トラッキング
- 実験のトラッキングと検索
- レコードとクエリの実験:コード、データ、コンフィグ、結果
-
MLflow プロジェクト
- 再現可能なプロジェクト
- あらゆるプラットフォームで再現可能なように
パッケージ化されたデータ・サイエンス・コード
-
MLflow モデル・レジストリ
- モデル管理とレビュー
- セントラルのレポジトリーにて
モデルを保存、注釈付与、管理
-
MLflow モデル・サービング
- 柔軟なデプロイ方法
- 機械学習モデルを様々な環境に簡易にデプロイ可能
- REST エンドポイント
-
補足(MLflow の位置づけ): 機械学習の「実験は動くが本番に載らない」
という問題(MLOps の課題)に対し、
- 何をどう学習したかを記録し(トラッキング)、
- 同じ結果を再現でき(プロジェクト)、
- どのモデルが本番かを管理し(レジストリ)、
- API として配信する(サービング)、
という 4 点を標準化したもの。
MLflow 自体は OSS で、Databricks 以外でも使える
(Azure Machine Learning も MLflow 互換)。
- 2019年10月17日 "データレイク"のスタンダードをめざす ―
Databricks,「Delta Lake」を Linux Foundation に寄贈:Linux Daily Topics
https://gihyo.jp/admin/clip/01/linux_dt/201910/17
- Azure Databricks の紹介
https://www.creationline.com/blog/20865
https://azure-recipe.kc-cloud.jp/category/databricks/
-
Azure Databricks:
-
Databricks 事例紹介
-
【はじめての Databricks】金融取引データから異常検知
-
Databricks でワインの品質を予測するモデルを構築
- Azure Databricks
https://azure.microsoft.com/ja-jp/products/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 を使用した感情分析
-
リファレンス
...
-
使い方ガイド
- データーへの接続(.NET for Apache Sparkチュートリアル(
MS_DotNetForApacheSparkTutorial.md)) - リモート ジョブを送信する
- データーへの接続(.NET for Apache Sparkチュートリアル(
-
チュートリアル(.NET for Apache Sparkチュートリアル(
MS_DotNetForApacheSparkTutorial.md))- .NET for Apache Spark アプリケーションをデプロイする
-
Channel 9 > .NET for Apache Spark 101
Deploy .NET for Apache Spark App to- Azure Databricks [7 of 8]
https://learn.microsoft.com/ja-jp/shows/net-for-apache-spark-101/
- Azure Databricks [7 of 8]
- 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)
-
- はじめての Azure Databricks | 日本マイクロソフト
https://www.youtube.com/watch?v=ftoMWOzWncw - はじめての Azure Databricks ストリーム分析
https://www.youtube.com/watch?v=N8q8iCJzt34
- アプリケーション開発者のための Azure Databricks 入門
https://www2.slideshare.net/yokawasa/azure-databricks-111821479 - [Microsoft Tech Summit 2018] Azure Machine Learning サービスと Azure Datab…
https://www2.slideshare.net/satonaoki/20181107techsummitazuremldatabricks
開発基盤部会 Wiki & Blog(.NET for Apache Spark)
Tags: 移行, インフラストラクチャ, クラウド, ビッグデータ, BI/AI, Azure
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。