6. 大數據 (Big Data) 定義
Big data is high-Volume, high-Velocity
and/or high-Variety information assets
that demand cost-effective, innovative
forms of information processing that
enable enhanced insight, decision
making, and process automation.
– Gartner, Big Data Definition*
* Gartner, Big Data (Stamford, CT.: Gartner, 2016), URL: http://www.gartner.com/it-glossary/big-data/
Volume, Velocity, Variety
(資料量大, 資料流速快, 資料型態變化大)
7. 微軟內部面對大數據的挑戰
因應微軟內部的資料分析需求
所以我們建立了…
? 資料湖讓所有人可以把資料放進去
? 提供給開發人員友善的工具
? 可讓大家協同合作的機器學習工具
結果…
? 在微軟內部不同產品 ( Office, Xbox Live, Azure,
Windows, Bing and Skype) 使用
? 超過一萬個開發人員使用在不同資料處理分析情境
上
? 管理 EB (Exabytes) 級的資料
2010 2011 2012 2013 2014 2015 2016
微軟內部數據量
Windows
SMSG
Live
Bing
CRM/Dynamics
Xbox Live
Office365
Malware Protection Microsoft Stores
Commerce Risk
Skype
LCA
Exchange
Yammer
10. 巨量資料儲存 機器學習跟分析
行動
People
Automated
Systems
Apps
Web
Mobile
Bots
智慧服務
儀錶板 & 資料視覺化
Cortana
Bot
Framework
Cognitive
Services
Power BI
資訊管理
Event Hubs
Data Catalog
Data Factory
HDInsight
(Hadoop and
Spark)
Stream
Analytics
智慧服務
Data Lake
Analytics
Machine
Learning
SQL Data
Warehouse
Data Lake
Store
資料
來源
應用
程式
感知器
與裝置
資料
IoT Hub
14. 具高度延展性, 分散式, 支援平行處理的雲端檔案系統
支援多種的資料分析框架
什麼是 Azure Data Lake Store?
LOB Applications
SocialDevices
Clickstream
Sensors
Video
Web
Relational
HDInsight
ADL Analytics
Machine Learning
Spark
R
14
ADL Store
15. ADL Store 無限規模架構
ADL Store 中的檔案被切片分散到不同blocks
中
Blocks 被分散到後端儲存系統中的不同的data
nodes
在有足夠的data nodes狀況下, 任何大小的檔案
可以被儲存˙
Azure 雲端上的後端儲存系統概念上可以有無
限的資源
每個檔案的Metadata也被同樣的系統儲存
15
Azure Data Lake Store file
…Block 1 Block 2 Block 2
後端儲存系統
Data node Data node Data node Data node Data nodeData node
Block Block Block Block Block Block
16. ADL Store 提供大量的傳輸量
透過平行讀取ADL Store提供大量的傳輸量
每個讀取動作都在data notes 上藉由平行讀取
同時進行
Read operation
16
Azure Data Lake Store file
…Block 1 Block 2 Block 2
後端儲存系統
Data node Data node Data node Data node Data nodeData node
Block Block Block Block Block Block
18. ADL Store 是 HDFS-相容檔案系統
透過 WebHDFS 端點 Azure Data Lake Store 是一個 Hadoop相容檔案系統, 可以無縫的
整合 Azure HDInsight
Map reduce
HBase
transactions
Any HDFS applicationHive query
Azure HDInsight
Hadoop WebHDFS client
Hadoop WebHDFS client
WebHDFS
endpoint
WebHDFS
REST API
WebHDFS
REST API
18
ADL Store file ADL Store file ADL Store file ADL Store fileADL Store file
Azure Data Lake Store
19. ADL Store: 高可用性及可靠度
? 每個區域(region) Azure 將資料物件存放3份分
別在不同的失敗(fault) 及升級(upgrade) 領域
(domains)
? 所有操作動作都複製到另外兩份, 並確保複製
完成後才 commit.
? 可以從任何一個資料副本進行讀取
Data is never lost or unavailable
even under failures
Replica 1
Replica 2 Replica 3
Fault/upgrade
domains
Write Commit
20. ADL Store: Ingress
Data can be ingested into Azure Data Lake Store from a variety of sources
Server logs
Azure Event Hub
Apache
Flume
Azure Storage Blobs
Custom programs
.NET SDK
JavaScript CLI
Azure Portal
Azure PowerShell
Azure Data Factory
Apache Sqoop
Azure SQL DB
Azure SQL DW
Azure tables
Table Storage
On-premises databases
SQL
20
ADL Store
ADLS Built-in
copy service
21. ADL Store: Egress
Data can be exported from Azure Data Lake Store into numerous targets/sinks
Azure SQL DB
SQL
Azure SQL DW
Azure Tables
Table Storage
On-premises databases
Azure Data Factory
Apache Sqoop
Azure Storage Blobs
Custom programs
.NET SDK
JavaScript CLI
Azure Portal
Azure PowerShell
21
Built-in
ADLS copy service
ADL Store
22. Data Lake Store: 技術規格
安全性 資料存取需要支援授權管理
原始格式 能儲存原始資料格式以追蹤資料血統及出處
低延遲 能支援高頻率的資料操作.
能支援多種分析框架—Batch, Real-time, Streaming, ML etc.
沒有單一框架可以支援所有資料內容跟分析方式.
多種分析框架
資料細節 可記載資料的詳細內容.
吞吐量 能承受像Hadoop and Spark這樣平行處理架構的資料存取需求
可靠度 高可用度及可靠度.
延展性 可容納快速增長的資料
多種資料來源 可從多種資料來源輸入資料.
28. ADLA直接在資料來源做查詢
? 無須移動資料, 直接將查詢任務派送到資料來源
執行
? 避免查詢前必須將儲存在不同地方的大量資料透
過網路搬移
? 提供單一資料檢視方式, 無論資料實際儲存在何
處
? 減少資料多個副本的資料擴散(Data proliferation )
問題
? 所有資料都可用單一查詢語法
? 各個資料來源可以維持原本各自的管理機制
? 將SQL查詢表示式直接在遠端SQL 資料來源執行
? Filters
? Joins
U-SQL Query Query
Azure
Storage Blobs
Azure SQL
in VMs
Azure
SQL DB
Azure Data
Lake Analytics
Azure
SQL Data Warehouse
Azure
Data Lake Storage
29. Work across all cloud data
Azure Data Lake
Analytics
Azure SQL DW Azure SQL DB
Azure
Storage Blobs
Azure
Data Lake Store
SQL Server in an
Azure VM
30. U-SQL 語法
SQL 陳述式(Declarative) 查詢
? 使用 SQL語法 : SELECT FROM WHERE with GROUP
BY/aggregation, joins, SQL analytics functions
? 容易做最佳化調校
可處理結構性及非結構性資料
? Schema 在讀檔時決定
? 支援關聯式 metadata 物件 (e.g. database, table)
高度擴充性
? 基於C# 型別系統(Type system )
? C# 表述語言(Expression language)
? 使用者自訂義 functions (U-SQL and C#)
? 使用者自訂義 aggregators (C#)
? 使用者自訂義 operators (UDO) (C#)
提供容易擴充的平行化處理及Scale-out架構
? EXTRACTOR, OUTPUTTER, PROCESSOR, REDUCER,
COMBINER, APPLIER
將查詢送到不同資料來源執行
REFERENCE MyDB.MyAssembly;
CREATE TABLE T( cid int, first_order DateTime
, last_order DateTime, order_count int
, order_amount float );
@o = EXTRACT oid int, cid int, odate DateTime, amount float
FROM "/input/orders.txt"
USING Extractors.Csv();
@c = EXTRACT cid int, name string, city string
FROM "/input/customers.txt"
USING Extractors.Csv();
@j = SELECT c.cid, MIN(o.odate) AS firstorder
, MAX(o.date) AS lastorder, COUNT(o.oid) AS ordercnt
, AGG<MyAgg.MySum>(c.amount) AS totalamount
FROM @c AS c LEFT OUTER JOIN @o AS o ON c.cid == o.cid
WHERE c.city.StartsWith("New")
&& MyNamespace.MyFunction(o.odate) > 10
GROUP BY c.cid;
OUTPUT @j TO "/output/result.txt"
USING new MyData.Write();
INSERT INTO T SELECT * FROM @j;