SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Downloaden Sie, um offline zu lesen
Spark Analytics
スケーラブルな分散処理
Azure Databricks と Spark を実装する Azure サービス
Tsuyoshi Matsuzaki
Cloud Solution Architect, One Commercial Partner, Microsoft Japan
Big Data & AI における課題
Silo 化するテクノロジー
Great for Data, but not AI Great for AI, but not for data
Customer
Data
Emails /
Web Pages
Sensor
Data
(IoT)
Video/
Speech
Click
Streams
…
Azure Databricks
ニーズに応じた構築
ロールベースアクセスコントロール (RBAC)
自動スケール
ライブコラボレーション
エンタープライズレベルの SLA
高機能なノートブック
簡易で迅速なジョブスケジューリング
Azure ポートフォリオと柔軟に統合
生産性の向上
セキュアで信頼性あるサービス
リミットなしのスケール
高速で, 容易で, 連携可能な Apache Spark™ ベースの分析プラットフォーム
なぜ Apache Spark か ?
なぜ Apache Spark か ?
Driver
Executor
Task Task
Executor
Task
Executor Executor
Task Task
分散処理
インメモリ処理
パフォーマンス
インメモリコンピューティングにより Hadoop よりも
高速に実行 (テストケースにより 100 倍以上)
バッチとリアルタイムデータ処理の双方で利用可能
開発生産性
大規模データセットのために設計された簡易な
API 群
100 を超えるの変換処理を提供
なぜ Apache Spark か ?
パフォーマンス
インメモリコンピューティングにより Hadoop よりも
高速に実行 (テストケースにより 100 倍以上)
バッチとリアルタイムデータ処理の双方で利用可能
Driver
Executor
Task Task
Executor
Task
Executor Executor
Task Task
分散処理
インメモリ処理
なぜ Apache Spark か ?
エコシステム
さまざまなデータソースのサポート, ISV アプリの
豊富なエコシステム, 開発コミュニティの充実
主要な複数のパブリッククラウド (AWS, Google,
Azure) やオンプレミス・ディストリビュータも既
定でサポート
統一のエンジン
インタラクティブ SQL, ストリーム分析, ML, グラフ処
理のための高レベルのライブラリを含む統一フレー
ムワーク
単一のアプリで、これら複数の処理を同時に組み合
わせることができる。
パフォーマンス
インメモリコンピューティングにより Hadoop よりも
高速に実行 (テストケースにより 100 倍以上)
バッチとリアルタイムデータ処理の双方で利用可能
開発生産性
大規模データセットのために設計された簡易な
API 群
100 を超えるの変換処理を提供
Microsoft Azure における Apache Spark
CONTROL EASE OF USE
Install-based,fully
customized infrastructure
Frictionless & Optimized
Spark clusters
Azure Databricks
IaaS Clusters Managed Clusters
Azure Virtual Machine
(VMSS, VNet, etc)
Workload optimized,
managed clusters
Azure HDInsight
STORAGE
LAYER
ANALYTICS
LAYER
ReducedAdministration
Azure Data Lake Store
Azure Storage
Microsoft Azure における Apache Spark
CONTROL EASE OF USE
Install-based,fully
customized infrastructure
Frictionless & Optimized
Spark clusters
Azure Databricks
IaaS Clusters Managed Clusters
Azure Virtual Machine
(VMSS, VNet, etc)
Workload optimized,
managed clusters
Azure HDInsight
STORAGE
LAYER
ANALYTICS
LAYER
ReducedAdministration
Azure Data Lake Store
Azure Storage
Azure Databricks
Azure リソース マネージャ
ワークスペース、リソース、
ロックされたリソース グルー
プの作成
VM の作成/削除
Unified Analytics Platform
Databricks Workspace
Collaborative Notebooks, Production Jobs
Databricks Runtime
Databricks Cloud Service
Transactions Indexing
ML Frameworks
Blob Storage
Data Lake Storage
AZURE
DATA SOURCES
Event Hub
IoT Hub
Synapse Analytics
Cosmos DB
Azure Data Factory
Unified Analytics Platform
Databricks Workspace
Collaborative Notebooks, Production Jobs
Databricks Runtime
Databricks Cloud Service
Transactions Indexing
ML Frameworks
Blob Storage
Data Lake Storage
AZURE
DATA SOURCES
Event Hub
IoT Hub
Synapse Analytics
Cosmos DB
Azure Data Factory
# Read Configuration
readConfig = {
"Endpoint": "https://doctorwho.documents.azure.com:443/",
"Masterkey": "YOUR-KEY-HERE",
"Database": "DepartureDelays",
"Collection": "flights_pcoll",
"query_custom": "SELECT c.date, c.delay, c.origin, c.destination FROM c WHERE c.origin
= 'SEA'" // Optional
}
# Connect via azure-cosmosdb-spark to create Spark DataFrame
flights = spark.read.format(
"com.microsoft.azure.cosmosdb.spark").options(**readConfig).load()
flights.count()
Unified Analytics Platform
Databricks Workspace
Collaborative Notebooks, Production Jobs
Databricks Runtime
Databricks Cloud Service
Transactions Indexing
ML Frameworks
Blob Storage
Data Lake Storage
AZURE
DATA SOURCES
Event Hub
IoT Hub
Synapse Analytics
Cosmos DB
Azure Data Factory
# Set up the Blob Storage account access key in the notebook session conf.
spark.conf.set(
"fs.azure.account.key.<your-storage-account-name>.blob.core.windows.net",
"<your-storage-account-access-key>")
# Load data from a Synapse Analytics query.
df = spark.read 
.format("com.databricks.spark.sqldw") 
.option("url", "jdbc:sqlserver://<the-rest-of-the-connection-string>") 
.option("tempDir", "wasbs://<your-container-name>@<your-storage-account-
name>.blob.core.windows.net/<your-directory-name>") 
.option("forwardSparkAzureStorageCredentials", "true") 
.option("query", "select x, count(*) as cnt from my_table_in_dw group by x") 
.load()
Structured Streaming
Data Stream Unbounded Table
Data Stream の新しいデータ = Table に追加される新しい行
共通のプログラミングスタイル
df = (spark.readStream.format("kafka").
option("kafka.bootstrap.servers", "...").
option("subscribe", "topic1, topic2").
option("startingOffsets", "latest").
load()
df = (spark.read.format("csv").
option("header", "true").
option("nullValue", "NA").
option("inferSchema", True).
load("/mnt/flight_weather.csv"))
df = pipelinemodel.transform(df) df = pipelinemodel.transform(df)
new_df = (df.
withWatermark(df.ev_time,"10 minutes").
groupBy(
df.device_id,
window(df.ev_time,"5 minutes")).
count())
new_df = (df.
withWatermark(df.ev_time,"10 minutes").
groupBy(
df.device_id,
window(df.ev_time,"5 minutes")).
count())
(df.write.
mode("overwrite").
parquet("/mnt/test"))
(df.writeStream.
format(“com.databricks.spark.sqldw”).
option("url", "...").
option("tempDir", "wasbs://... ").
option("dbTable", "testTable").
option("checkpointLocation", "/tmp/chk").
start())
Structured Streaming を使った分析 (例)
データソース
Apache Kafka (HDInsight)
Initial Stream Processing
Map, Filter, Join, Windowing, …
Structured Streaming を使った分析 (例)
データソース
Apache Kafka (HDInsight)
Databricks
# create streaming dataframe from Kafka
df = spark 
.readStream 
.format("kafka") 
.option("kafka.bootstrap.servers", "host1:port1,host2:port2") 
.option("subscribe", "topic1") 
.option("startingOffsets", "earliest") 
.load()
Structured Streaming を使った分析 (例)
データソース
Apache Kafka (HDInsight)
Databricks Advanced Analysis
# Watermarking and windowing analysis
analyzed_df = (
df
.withWatermark(df.event_time, "10 minutes")
.groupBy(
df.device_id,
window(df.event_time, "5 minutes"))
.count()
)
...
# Inferencing
analyzed_df = pipelinemode.transform(df)
...
Structured Streaming を使った分析 (例)
データソース
Apache Kafka (HDInsight)
Databricks
# Sink and Start streaming !
df.writeStream
.format("com.databricks.spark.sqldw")
.option("url", "...")
.option("tempDir", "wasbs://... ")
.option("forwardSparkAzureStorageCredentials", "true")
.option("dbTable", "testTable")
.option("checkpointLocation", "/tmp_checkpoint_location")
.start()
Synapse Analytics
Input Stream
(Kafka or Event Hub)
Structured
Streaming
(Databricks)
Synapse
Analytics
File
Cosmos DB
Event Hub
or Kafka
BI
SEMS
BizApp
Function
Grid
dashboard
logging
transaction
alert or workflow
…
Delta Lake
Streaming
Batch
Updates/Deletes トランザクション
ログ
Parquet ファイル
Delta Lake
Streaming
Batch
Updates/Deletes トランザクション
ログ
Parquet ファイル
CREATE TABLE ...
USING delta
…
dataframe
.write
.format("delta")
.save("/data")
CREATE TABLE ...
USING parquet
...
dataframe
.write
.format("parquet")
.save("/data")
Instead of parquet... … simply say delta
Delta Lake – Reliability
Streaming
● ACID トランザクション
● スキーマエンフォース
● 統合 Batch & Streaming
● Time Travel / スナップショット
主要機能
高品質で高信頼な
データ
いつでも分析に
活用可能
Batch
Updates/Deletes トランザクション
ログ
Parquet ファイル
Delta Lake – Reliability
Streaming
● ACID トランザクション
● スキーマエンフォース
● 統合 Batch & Streaming
● Time Travel / スナップショット
主要機能
高品質で高信頼な
データ
いつでも分析に
活用可能
Batch
Updates/Deletes トランザクション
ログ
Parquet ファイル
SELECT count(*) FROM events
TIMESTAMP AS OF timestamp
SELECT count(*) FROM events
VERSION AS OF version
spark.read.format("delta").option("timestampAsOf",
timestamp_string).load("/events/")
INSERT INTO my_table
SELECT * FROM my_table TIMESTAMP AS OF
• date_sub(current_date(), 1)
過去のデータの再生成 誤った書き込み時のロールバック
Delta Lake – Performance
Streaming
Batch
Updates/Deletes トランザクション
ログ
Parquet ファイル
Databricks
optimized engine
高いパフォーマンス
スケーラブルなクエリ
● インデクス
● 圧縮
● データスキップ
● キャッシュ
主要機能
MLflow
Tracking
実験内容の記録と検索 :
コード、データ、構成、
結果
Projects
あらゆる環境で実行可能
で再利用可能なパッケー
ジフォーマット
Models
多様なデプロイツールに
モデル送信可能な一般
フォーマット
MLflow
Tracking
実験内容の記録と検索 :
コード、データ、構成、
結果
Projects
あらゆる環境で実行可能
で再利用可能なパッケー
ジフォーマット
Models
多様なデプロイツールに
モデル送信可能な一般
フォーマット
Managed
https://github.com/tsmatz/azure-databricks-exercise
Apache Spark 3.0
• Catalyst optimizer accelerations
• Pluggable Data Catalog
• Spark Graph
• Dynamic Partition Pruning
• Binary format
• recursiveFileLookUp
• pathGlobalFilter
http://spark.apache.org/community.html
Dynamic Partition Pruning
Analytics & AI is the #1 investment for business
leaders, however they struggle to maximize ROI
80% 55%
From : “Understanding Why Analytics Strategies Fall Short for Some, but Not Others”
https://azure.microsoft.com/en-us/resources/why-analytics-strategies-fall-short-for-some-but-not-others/
Apache Spark を内包する製品やサービス
• Azure Synapse Analytics
• Azure Data Factory - Mapping Data Flow *
• Azure Data Factory - Wrangling Data Flow
• SQL Server 2019 Big Data Cluster
* : Azure Databricks を使用
Mapping Data Flow
• Resilient data
transformation Flows
• Transform at scale
• Code-free
• Operationalized with
Data Factory
Apache Spark を内包する製品やサービス
• Azure Cosmos DB
• Azure Synapse Analytics
• Azure Data Factory - Mapping Data Flow *
• Azure Data Factory - Wrangling Data Flow
• SQL Server 2019 Big Data Cluster
* : Azure Databricks を使用
Azure Cosmos DB <3’s Azure Synapse
Jupyter Notebook のビルトイン
Analytical Storage のビルトイン
Azure Synapse による Spark 分析
冗長な ETL は不要
Transactional と Analytical
Storage のパフォーマンス分離
グローバルな分散と拡張 (伸縮)
Global distribution, elastic scale, low latency, intuitive consistency modes,
99.999 SLA
Multi-model
Key-value Column-family Document Graph
SQL Cassandra MongoDB Gremlin Table API ETCD
Jupyter NotebooksAzure Synapse - Spark
Transactional store (rows) Analytical store (columns)
Azure Cosmos DB <3’s Azure Synapse

Weitere ähnliche Inhalte

Was ist angesagt?

Japan SQL Server Users Group - 第31回 SQL Server 2019勉強会 - Azure Synapse Analyt...
Japan SQL Server Users Group - 第31回 SQL Server 2019勉強会 - Azure Synapse Analyt...Japan SQL Server Users Group - 第31回 SQL Server 2019勉強会 - Azure Synapse Analyt...
Japan SQL Server Users Group - 第31回 SQL Server 2019勉強会 - Azure Synapse Analyt...Daiyu Hatakeyama
 
Microsoft Azure Workshop day2
Microsoft Azure Workshop day2Microsoft Azure Workshop day2
Microsoft Azure Workshop day2Miho Yamamoto
 
DB TechShowcase Tokyo - Intelligent Data Platform
DB TechShowcase Tokyo - Intelligent Data PlatformDB TechShowcase Tokyo - Intelligent Data Platform
DB TechShowcase Tokyo - Intelligent Data PlatformDaiyu Hatakeyama
 
[DI12] あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビックデータ処理基盤のアーキテクチャと実装
[DI12] あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビックデータ処理基盤のアーキテクチャと実装[DI12] あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビックデータ処理基盤のアーキテクチャと実装
[DI12] あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビックデータ処理基盤のアーキテクチャと実装de:code 2017
 
OSS on Azure で構築するウェブアプリケーション
OSS on Azure で構築するウェブアプリケーションOSS on Azure で構築するウェブアプリケーション
OSS on Azure で構築するウェブアプリケーションDaisuke Masubuchi
 
Azure上の データベース 機能の選び方。KVSからDWHまで
Azure上の データベース 機能の選び方。KVSからDWHまでAzure上の データベース 機能の選び方。KVSからDWHまで
Azure上の データベース 機能の選び方。KVSからDWHまでDaisuke Masubuchi
 
Microsoft AI セミナー - Microsoft AI Platform
Microsoft AI セミナー - Microsoft AI PlatformMicrosoft AI セミナー - Microsoft AI Platform
Microsoft AI セミナー - Microsoft AI PlatformDaiyu Hatakeyama
 
[DI03] DWH スペシャリストが語る! Azure SQL Data Warehouse チューニングの勘所
[DI03] DWH スペシャリストが語る! Azure SQL Data Warehouse チューニングの勘所[DI03] DWH スペシャリストが語る! Azure SQL Data Warehouse チューニングの勘所
[DI03] DWH スペシャリストが語る! Azure SQL Data Warehouse チューニングの勘所de:code 2017
 
Azure Antenna はじめての Azure Data Lake
Azure Antenna はじめての Azure Data LakeAzure Antenna はじめての Azure Data Lake
Azure Antenna はじめての Azure Data LakeHideo Takagi
 
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~de:code 2017
 
【ウェブセミナー】マネージドな 100% OSS アナリティクス プラットフォーム HDInsight の最新事情
【ウェブセミナー】マネージドな 100% OSS アナリティクス プラットフォーム HDInsight の最新事情【ウェブセミナー】マネージドな 100% OSS アナリティクス プラットフォーム HDInsight の最新事情
【ウェブセミナー】マネージドな 100% OSS アナリティクス プラットフォーム HDInsight の最新事情Hideo Takagi
 
[Microsoft Tech Summit 2018] Azure Machine Learning サービスと Azure Databricks で実...
[Microsoft Tech Summit 2018] Azure Machine Learning サービスと Azure Databricks で実...[Microsoft Tech Summit 2018] Azure Machine Learning サービスと Azure Databricks で実...
[Microsoft Tech Summit 2018] Azure Machine Learning サービスと Azure Databricks で実...Naoki (Neo) SATO
 
[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake
[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake
[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lakede:code 2017
 
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]Hideo Takagi
 
Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)
Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)
Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)Takeshi Fukuhara
 
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~Naoki (Neo) SATO
 
Azure machine learning service 最新の機械学習プラットフォーム
Azure machine learning service 最新の機械学習プラットフォームAzure machine learning service 最新の機械学習プラットフォーム
Azure machine learning service 最新の機械学習プラットフォームKeita Onabuta
 
[Microsoft Cognitive Toolkit (CNTK) on Azure ハンズオン] Microsoft Azure の AI 関連サービス
[Microsoft Cognitive Toolkit (CNTK) on Azure ハンズオン] Microsoft Azure の AI 関連サービス[Microsoft Cognitive Toolkit (CNTK) on Azure ハンズオン] Microsoft Azure の AI 関連サービス
[Microsoft Cognitive Toolkit (CNTK) on Azure ハンズオン] Microsoft Azure の AI 関連サービスNaoki (Neo) SATO
 

Was ist angesagt? (20)

Japan SQL Server Users Group - 第31回 SQL Server 2019勉強会 - Azure Synapse Analyt...
Japan SQL Server Users Group - 第31回 SQL Server 2019勉強会 - Azure Synapse Analyt...Japan SQL Server Users Group - 第31回 SQL Server 2019勉強会 - Azure Synapse Analyt...
Japan SQL Server Users Group - 第31回 SQL Server 2019勉強会 - Azure Synapse Analyt...
 
Microsoft Azure Workshop day2
Microsoft Azure Workshop day2Microsoft Azure Workshop day2
Microsoft Azure Workshop day2
 
DB TechShowcase Tokyo - Intelligent Data Platform
DB TechShowcase Tokyo - Intelligent Data PlatformDB TechShowcase Tokyo - Intelligent Data Platform
DB TechShowcase Tokyo - Intelligent Data Platform
 
[DI12] あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビックデータ処理基盤のアーキテクチャと実装
[DI12] あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビックデータ処理基盤のアーキテクチャと実装[DI12] あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビックデータ処理基盤のアーキテクチャと実装
[DI12] あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビックデータ処理基盤のアーキテクチャと実装
 
OSS on Azure で構築するウェブアプリケーション
OSS on Azure で構築するウェブアプリケーションOSS on Azure で構築するウェブアプリケーション
OSS on Azure で構築するウェブアプリケーション
 
Azure上の データベース 機能の選び方。KVSからDWHまで
Azure上の データベース 機能の選び方。KVSからDWHまでAzure上の データベース 機能の選び方。KVSからDWHまで
Azure上の データベース 機能の選び方。KVSからDWHまで
 
Microsoft AI セミナー - Microsoft AI Platform
Microsoft AI セミナー - Microsoft AI PlatformMicrosoft AI セミナー - Microsoft AI Platform
Microsoft AI セミナー - Microsoft AI Platform
 
[DI03] DWH スペシャリストが語る! Azure SQL Data Warehouse チューニングの勘所
[DI03] DWH スペシャリストが語る! Azure SQL Data Warehouse チューニングの勘所[DI03] DWH スペシャリストが語る! Azure SQL Data Warehouse チューニングの勘所
[DI03] DWH スペシャリストが語る! Azure SQL Data Warehouse チューニングの勘所
 
Azure Antenna はじめての Azure Data Lake
Azure Antenna はじめての Azure Data LakeAzure Antenna はじめての Azure Data Lake
Azure Antenna はじめての Azure Data Lake
 
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
 
【ウェブセミナー】マネージドな 100% OSS アナリティクス プラットフォーム HDInsight の最新事情
【ウェブセミナー】マネージドな 100% OSS アナリティクス プラットフォーム HDInsight の最新事情【ウェブセミナー】マネージドな 100% OSS アナリティクス プラットフォーム HDInsight の最新事情
【ウェブセミナー】マネージドな 100% OSS アナリティクス プラットフォーム HDInsight の最新事情
 
[Microsoft Tech Summit 2018] Azure Machine Learning サービスと Azure Databricks で実...
[Microsoft Tech Summit 2018] Azure Machine Learning サービスと Azure Databricks で実...[Microsoft Tech Summit 2018] Azure Machine Learning サービスと Azure Databricks で実...
[Microsoft Tech Summit 2018] Azure Machine Learning サービスと Azure Databricks で実...
 
[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake
[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake
[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake
 
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
 
Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)
Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)
Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)
 
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
 
Azure machine learning service 最新の機械学習プラットフォーム
Azure machine learning service 最新の機械学習プラットフォームAzure machine learning service 最新の機械学習プラットフォーム
Azure machine learning service 最新の機械学習プラットフォーム
 
AIビジネスクリエーションワークショップ@東京
AIビジネスクリエーションワークショップ@東京AIビジネスクリエーションワークショップ@東京
AIビジネスクリエーションワークショップ@東京
 
[Microsoft Cognitive Toolkit (CNTK) on Azure ハンズオン] Microsoft Azure の AI 関連サービス
[Microsoft Cognitive Toolkit (CNTK) on Azure ハンズオン] Microsoft Azure の AI 関連サービス[Microsoft Cognitive Toolkit (CNTK) on Azure ハンズオン] Microsoft Azure の AI 関連サービス
[Microsoft Cognitive Toolkit (CNTK) on Azure ハンズオン] Microsoft Azure の AI 関連サービス
 
Azure DataLake 大全
Azure DataLake 大全Azure DataLake 大全
Azure DataLake 大全
 

Ähnlich wie Spark Analytics - スケーラブルな分散処理

15分でお届けする Elastic Stack on Azure 設計・構築ノウハウ
15分でお届けする Elastic Stack on Azure 設計・構築ノウハウ15分でお届けする Elastic Stack on Azure 設計・構築ノウハウ
15分でお届けする Elastic Stack on Azure 設計・構築ノウハウYoichi Kawasaki
 
M06_DX を担うエンジニア向け Data & AI Analytics プラットフォームの最適解 ~ Azure Synapse 最新機能ご紹介 ~ ...
M06_DX を担うエンジニア向け Data & AI Analytics プラットフォームの最適解 ~ Azure Synapse 最新機能ご紹介 ~ ...M06_DX を担うエンジニア向け Data & AI Analytics プラットフォームの最適解 ~ Azure Synapse 最新機能ご紹介 ~ ...
M06_DX を担うエンジニア向け Data & AI Analytics プラットフォームの最適解 ~ Azure Synapse 最新機能ご紹介 ~ ...日本マイクロソフト株式会社
 
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)日本マイクロソフト株式会社
 
Developers.IO 2019 Effective Datalake
Developers.IO 2019 Effective DatalakeDevelopers.IO 2019 Effective Datalake
Developers.IO 2019 Effective DatalakeSatoru Ishikawa
 
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンAzure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンKazuyuki Miyake
 
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)日本マイクロソフト株式会社
 
Gpu accelerates aimodeldevelopmentandanalyticsutilizingelasticsearchandazure ai
Gpu accelerates aimodeldevelopmentandanalyticsutilizingelasticsearchandazure aiGpu accelerates aimodeldevelopmentandanalyticsutilizingelasticsearchandazure ai
Gpu accelerates aimodeldevelopmentandanalyticsutilizingelasticsearchandazure aiShotaro Suzuki
 
アプリケーション開発者のためのAzure Databricks入門
アプリケーション開発者のためのAzure Databricks入門アプリケーション開発者のためのAzure Databricks入門
アプリケーション開発者のためのAzure Databricks入門Yoichi Kawasaki
 
平成最後の1月ですし、Databricksでもやってみましょうか
平成最後の1月ですし、Databricksでもやってみましょうか平成最後の1月ですし、Databricksでもやってみましょうか
平成最後の1月ですし、DatabricksでもやってみましょうかRyuichi Tokugami
 
Elastic7.12 release-new-features-on-0428
Elastic7.12 release-new-features-on-0428Elastic7.12 release-new-features-on-0428
Elastic7.12 release-new-features-on-0428Shotaro Suzuki
 
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...Shotaro Suzuki
 
2021/6/3 Deep Learning Lab - Azure Synapse Analytics Ignite & Build アップデートake
2021/6/3 Deep Learning Lab - Azure Synapse Analytics Ignite & Build アップデートake2021/6/3 Deep Learning Lab - Azure Synapse Analytics Ignite & Build アップデートake
2021/6/3 Deep Learning Lab - Azure Synapse Analytics Ignite & Build アップデートakeDaiyu Hatakeyama
 
sbc_rc_200_RealtimeCompute_handson_ver1.0
sbc_rc_200_RealtimeCompute_handson_ver1.0 sbc_rc_200_RealtimeCompute_handson_ver1.0
sbc_rc_200_RealtimeCompute_handson_ver1.0 洋 謝
 
Microsoft Ignite November 2021 最新アップデート - Azure Synapse Analytics
Microsoft Ignite November 2021 最新アップデート - Azure Synapse AnalyticsMicrosoft Ignite November 2021 最新アップデート - Azure Synapse Analytics
Microsoft Ignite November 2021 最新アップデート - Azure Synapse AnalyticsShohei Nagata
 
2014年12月04日 ヒーロー島 Azureスペシャル
2014年12月04日 ヒーロー島 Azureスペシャル2014年12月04日 ヒーロー島 Azureスペシャル
2014年12月04日 ヒーロー島 AzureスペシャルDaiyu Hatakeyama
 

Ähnlich wie Spark Analytics - スケーラブルな分散処理 (20)

Apache Spark on Azure
Apache Spark on AzureApache Spark on Azure
Apache Spark on Azure
 
15分でお届けする Elastic Stack on Azure 設計・構築ノウハウ
15分でお届けする Elastic Stack on Azure 設計・構築ノウハウ15分でお届けする Elastic Stack on Azure 設計・構築ノウハウ
15分でお届けする Elastic Stack on Azure 設計・構築ノウハウ
 
M06_DX を担うエンジニア向け Data & AI Analytics プラットフォームの最適解 ~ Azure Synapse 最新機能ご紹介 ~ ...
M06_DX を担うエンジニア向け Data & AI Analytics プラットフォームの最適解 ~ Azure Synapse 最新機能ご紹介 ~ ...M06_DX を担うエンジニア向け Data & AI Analytics プラットフォームの最適解 ~ Azure Synapse 最新機能ご紹介 ~ ...
M06_DX を担うエンジニア向け Data & AI Analytics プラットフォームの最適解 ~ Azure Synapse 最新機能ご紹介 ~ ...
 
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
 
Developers.IO 2019 Effective Datalake
Developers.IO 2019 Effective DatalakeDevelopers.IO 2019 Effective Datalake
Developers.IO 2019 Effective Datalake
 
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンAzure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
 
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
 
Gpu accelerates aimodeldevelopmentandanalyticsutilizingelasticsearchandazure ai
Gpu accelerates aimodeldevelopmentandanalyticsutilizingelasticsearchandazure aiGpu accelerates aimodeldevelopmentandanalyticsutilizingelasticsearchandazure ai
Gpu accelerates aimodeldevelopmentandanalyticsutilizingelasticsearchandazure ai
 
Azure Data Platform
Azure Data PlatformAzure Data Platform
Azure Data Platform
 
アプリケーション開発者のためのAzure Databricks入門
アプリケーション開発者のためのAzure Databricks入門アプリケーション開発者のためのAzure Databricks入門
アプリケーション開発者のためのAzure Databricks入門
 
平成最後の1月ですし、Databricksでもやってみましょうか
平成最後の1月ですし、Databricksでもやってみましょうか平成最後の1月ですし、Databricksでもやってみましょうか
平成最後の1月ですし、Databricksでもやってみましょうか
 
Elastic7.12 release-new-features-on-0428
Elastic7.12 release-new-features-on-0428Elastic7.12 release-new-features-on-0428
Elastic7.12 release-new-features-on-0428
 
【de:code 2020】 Azure Cosmos DB - Build 2020 アップデート
【de:code 2020】 Azure Cosmos DB - Build 2020 アップデート【de:code 2020】 Azure Cosmos DB - Build 2020 アップデート
【de:code 2020】 Azure Cosmos DB - Build 2020 アップデート
 
BPStudy20121221
BPStudy20121221BPStudy20121221
BPStudy20121221
 
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
 
2021/6/3 Deep Learning Lab - Azure Synapse Analytics Ignite & Build アップデートake
2021/6/3 Deep Learning Lab - Azure Synapse Analytics Ignite & Build アップデートake2021/6/3 Deep Learning Lab - Azure Synapse Analytics Ignite & Build アップデートake
2021/6/3 Deep Learning Lab - Azure Synapse Analytics Ignite & Build アップデートake
 
sbc_rc_200_RealtimeCompute_handson_ver1.0
sbc_rc_200_RealtimeCompute_handson_ver1.0 sbc_rc_200_RealtimeCompute_handson_ver1.0
sbc_rc_200_RealtimeCompute_handson_ver1.0
 
Microsoft Ignite November 2021 最新アップデート - Azure Synapse Analytics
Microsoft Ignite November 2021 最新アップデート - Azure Synapse AnalyticsMicrosoft Ignite November 2021 最新アップデート - Azure Synapse Analytics
Microsoft Ignite November 2021 最新アップデート - Azure Synapse Analytics
 
Azure Datalake 大全
Azure Datalake 大全Azure Datalake 大全
Azure Datalake 大全
 
2014年12月04日 ヒーロー島 Azureスペシャル
2014年12月04日 ヒーロー島 Azureスペシャル2014年12月04日 ヒーロー島 Azureスペシャル
2014年12月04日 ヒーロー島 Azureスペシャル
 

Spark Analytics - スケーラブルな分散処理

  • 1. Spark Analytics スケーラブルな分散処理 Azure Databricks と Spark を実装する Azure サービス Tsuyoshi Matsuzaki Cloud Solution Architect, One Commercial Partner, Microsoft Japan
  • 2. Big Data & AI における課題 Silo 化するテクノロジー Great for Data, but not AI Great for AI, but not for data Customer Data Emails / Web Pages Sensor Data (IoT) Video/ Speech Click Streams …
  • 3. Azure Databricks ニーズに応じた構築 ロールベースアクセスコントロール (RBAC) 自動スケール ライブコラボレーション エンタープライズレベルの SLA 高機能なノートブック 簡易で迅速なジョブスケジューリング Azure ポートフォリオと柔軟に統合 生産性の向上 セキュアで信頼性あるサービス リミットなしのスケール 高速で, 容易で, 連携可能な Apache Spark™ ベースの分析プラットフォーム
  • 5. なぜ Apache Spark か ? Driver Executor Task Task Executor Task Executor Executor Task Task 分散処理 インメモリ処理 パフォーマンス インメモリコンピューティングにより Hadoop よりも 高速に実行 (テストケースにより 100 倍以上) バッチとリアルタイムデータ処理の双方で利用可能
  • 6. 開発生産性 大規模データセットのために設計された簡易な API 群 100 を超えるの変換処理を提供 なぜ Apache Spark か ? パフォーマンス インメモリコンピューティングにより Hadoop よりも 高速に実行 (テストケースにより 100 倍以上) バッチとリアルタイムデータ処理の双方で利用可能 Driver Executor Task Task Executor Task Executor Executor Task Task 分散処理 インメモリ処理
  • 7. なぜ Apache Spark か ? エコシステム さまざまなデータソースのサポート, ISV アプリの 豊富なエコシステム, 開発コミュニティの充実 主要な複数のパブリッククラウド (AWS, Google, Azure) やオンプレミス・ディストリビュータも既 定でサポート 統一のエンジン インタラクティブ SQL, ストリーム分析, ML, グラフ処 理のための高レベルのライブラリを含む統一フレー ムワーク 単一のアプリで、これら複数の処理を同時に組み合 わせることができる。 パフォーマンス インメモリコンピューティングにより Hadoop よりも 高速に実行 (テストケースにより 100 倍以上) バッチとリアルタイムデータ処理の双方で利用可能 開発生産性 大規模データセットのために設計された簡易な API 群 100 を超えるの変換処理を提供
  • 8. Microsoft Azure における Apache Spark CONTROL EASE OF USE Install-based,fully customized infrastructure Frictionless & Optimized Spark clusters Azure Databricks IaaS Clusters Managed Clusters Azure Virtual Machine (VMSS, VNet, etc) Workload optimized, managed clusters Azure HDInsight STORAGE LAYER ANALYTICS LAYER ReducedAdministration Azure Data Lake Store Azure Storage
  • 9.
  • 10. Microsoft Azure における Apache Spark CONTROL EASE OF USE Install-based,fully customized infrastructure Frictionless & Optimized Spark clusters Azure Databricks IaaS Clusters Managed Clusters Azure Virtual Machine (VMSS, VNet, etc) Workload optimized, managed clusters Azure HDInsight STORAGE LAYER ANALYTICS LAYER ReducedAdministration Azure Data Lake Store Azure Storage
  • 11. Azure Databricks Azure リソース マネージャ ワークスペース、リソース、 ロックされたリソース グルー プの作成 VM の作成/削除
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18. Unified Analytics Platform Databricks Workspace Collaborative Notebooks, Production Jobs Databricks Runtime Databricks Cloud Service Transactions Indexing ML Frameworks Blob Storage Data Lake Storage AZURE DATA SOURCES Event Hub IoT Hub Synapse Analytics Cosmos DB Azure Data Factory
  • 19. Unified Analytics Platform Databricks Workspace Collaborative Notebooks, Production Jobs Databricks Runtime Databricks Cloud Service Transactions Indexing ML Frameworks Blob Storage Data Lake Storage AZURE DATA SOURCES Event Hub IoT Hub Synapse Analytics Cosmos DB Azure Data Factory # Read Configuration readConfig = { "Endpoint": "https://doctorwho.documents.azure.com:443/", "Masterkey": "YOUR-KEY-HERE", "Database": "DepartureDelays", "Collection": "flights_pcoll", "query_custom": "SELECT c.date, c.delay, c.origin, c.destination FROM c WHERE c.origin = 'SEA'" // Optional } # Connect via azure-cosmosdb-spark to create Spark DataFrame flights = spark.read.format( "com.microsoft.azure.cosmosdb.spark").options(**readConfig).load() flights.count()
  • 20. Unified Analytics Platform Databricks Workspace Collaborative Notebooks, Production Jobs Databricks Runtime Databricks Cloud Service Transactions Indexing ML Frameworks Blob Storage Data Lake Storage AZURE DATA SOURCES Event Hub IoT Hub Synapse Analytics Cosmos DB Azure Data Factory # Set up the Blob Storage account access key in the notebook session conf. spark.conf.set( "fs.azure.account.key.<your-storage-account-name>.blob.core.windows.net", "<your-storage-account-access-key>") # Load data from a Synapse Analytics query. df = spark.read .format("com.databricks.spark.sqldw") .option("url", "jdbc:sqlserver://<the-rest-of-the-connection-string>") .option("tempDir", "wasbs://<your-container-name>@<your-storage-account- name>.blob.core.windows.net/<your-directory-name>") .option("forwardSparkAzureStorageCredentials", "true") .option("query", "select x, count(*) as cnt from my_table_in_dw group by x") .load()
  • 21. Structured Streaming Data Stream Unbounded Table Data Stream の新しいデータ = Table に追加される新しい行
  • 22. 共通のプログラミングスタイル df = (spark.readStream.format("kafka"). option("kafka.bootstrap.servers", "..."). option("subscribe", "topic1, topic2"). option("startingOffsets", "latest"). load() df = (spark.read.format("csv"). option("header", "true"). option("nullValue", "NA"). option("inferSchema", True). load("/mnt/flight_weather.csv")) df = pipelinemodel.transform(df) df = pipelinemodel.transform(df) new_df = (df. withWatermark(df.ev_time,"10 minutes"). groupBy( df.device_id, window(df.ev_time,"5 minutes")). count()) new_df = (df. withWatermark(df.ev_time,"10 minutes"). groupBy( df.device_id, window(df.ev_time,"5 minutes")). count()) (df.write. mode("overwrite"). parquet("/mnt/test")) (df.writeStream. format(“com.databricks.spark.sqldw”). option("url", "..."). option("tempDir", "wasbs://... "). option("dbTable", "testTable"). option("checkpointLocation", "/tmp/chk"). start())
  • 23. Structured Streaming を使った分析 (例) データソース Apache Kafka (HDInsight) Initial Stream Processing Map, Filter, Join, Windowing, …
  • 24. Structured Streaming を使った分析 (例) データソース Apache Kafka (HDInsight) Databricks # create streaming dataframe from Kafka df = spark .readStream .format("kafka") .option("kafka.bootstrap.servers", "host1:port1,host2:port2") .option("subscribe", "topic1") .option("startingOffsets", "earliest") .load()
  • 25. Structured Streaming を使った分析 (例) データソース Apache Kafka (HDInsight) Databricks Advanced Analysis # Watermarking and windowing analysis analyzed_df = ( df .withWatermark(df.event_time, "10 minutes") .groupBy( df.device_id, window(df.event_time, "5 minutes")) .count() ) ... # Inferencing analyzed_df = pipelinemode.transform(df) ...
  • 26. Structured Streaming を使った分析 (例) データソース Apache Kafka (HDInsight) Databricks # Sink and Start streaming ! df.writeStream .format("com.databricks.spark.sqldw") .option("url", "...") .option("tempDir", "wasbs://... ") .option("forwardSparkAzureStorageCredentials", "true") .option("dbTable", "testTable") .option("checkpointLocation", "/tmp_checkpoint_location") .start() Synapse Analytics
  • 27. Input Stream (Kafka or Event Hub) Structured Streaming (Databricks) Synapse Analytics File Cosmos DB Event Hub or Kafka BI SEMS BizApp Function Grid dashboard logging transaction alert or workflow …
  • 29. Delta Lake Streaming Batch Updates/Deletes トランザクション ログ Parquet ファイル CREATE TABLE ... USING delta … dataframe .write .format("delta") .save("/data") CREATE TABLE ... USING parquet ... dataframe .write .format("parquet") .save("/data") Instead of parquet... … simply say delta
  • 30. Delta Lake – Reliability Streaming ● ACID トランザクション ● スキーマエンフォース ● 統合 Batch & Streaming ● Time Travel / スナップショット 主要機能 高品質で高信頼な データ いつでも分析に 活用可能 Batch Updates/Deletes トランザクション ログ Parquet ファイル
  • 31. Delta Lake – Reliability Streaming ● ACID トランザクション ● スキーマエンフォース ● 統合 Batch & Streaming ● Time Travel / スナップショット 主要機能 高品質で高信頼な データ いつでも分析に 活用可能 Batch Updates/Deletes トランザクション ログ Parquet ファイル SELECT count(*) FROM events TIMESTAMP AS OF timestamp SELECT count(*) FROM events VERSION AS OF version spark.read.format("delta").option("timestampAsOf", timestamp_string).load("/events/") INSERT INTO my_table SELECT * FROM my_table TIMESTAMP AS OF • date_sub(current_date(), 1) 過去のデータの再生成 誤った書き込み時のロールバック
  • 32. Delta Lake – Performance Streaming Batch Updates/Deletes トランザクション ログ Parquet ファイル Databricks optimized engine 高いパフォーマンス スケーラブルなクエリ ● インデクス ● 圧縮 ● データスキップ ● キャッシュ 主要機能
  • 35. Apache Spark 3.0 • Catalyst optimizer accelerations • Pluggable Data Catalog • Spark Graph • Dynamic Partition Pruning • Binary format • recursiveFileLookUp • pathGlobalFilter http://spark.apache.org/community.html
  • 37. Analytics & AI is the #1 investment for business leaders, however they struggle to maximize ROI 80% 55% From : “Understanding Why Analytics Strategies Fall Short for Some, but Not Others” https://azure.microsoft.com/en-us/resources/why-analytics-strategies-fall-short-for-some-but-not-others/
  • 38. Apache Spark を内包する製品やサービス • Azure Synapse Analytics • Azure Data Factory - Mapping Data Flow * • Azure Data Factory - Wrangling Data Flow • SQL Server 2019 Big Data Cluster * : Azure Databricks を使用
  • 39. Mapping Data Flow • Resilient data transformation Flows • Transform at scale • Code-free • Operationalized with Data Factory
  • 40. Apache Spark を内包する製品やサービス • Azure Cosmos DB • Azure Synapse Analytics • Azure Data Factory - Mapping Data Flow * • Azure Data Factory - Wrangling Data Flow • SQL Server 2019 Big Data Cluster * : Azure Databricks を使用
  • 41. Azure Cosmos DB <3’s Azure Synapse Jupyter Notebook のビルトイン Analytical Storage のビルトイン Azure Synapse による Spark 分析 冗長な ETL は不要 Transactional と Analytical Storage のパフォーマンス分離 グローバルな分散と拡張 (伸縮) Global distribution, elastic scale, low latency, intuitive consistency modes, 99.999 SLA Multi-model Key-value Column-family Document Graph SQL Cassandra MongoDB Gremlin Table API ETCD Jupyter NotebooksAzure Synapse - Spark Transactional store (rows) Analytical store (columns)
  • 42. Azure Cosmos DB <3’s Azure Synapse