You are on page 1of 183

使用 Microsoft Azure

進行雲端分析
第二版

運用 Azure 強大的分析能力促進企業轉型

Has Altair、Jack Lee 和 Michael Peña


使用 Microsoft Azure
進行雲端分析,第二版

運用 Azure 強大的分析能力促進企業轉型

Has Altair、Jack Lee 和 Michael Peña


使用 Microsoft Azure 進行雲端分析,第二版
Copyright © 2020 Packt Publishing
著作權所有,並保留一切權利。未經出版商事先書面許可,本書的任何部分不得轉載、儲存
在檢索系統中或以任何形式或以任何方式傳播,但在重要文章或評論中嵌入的簡短引文除外。
在編寫本書時,已盡了一切努力,以確保所提供資訊的準確性。但是,本書中所載的資訊不
經明示或隱含的擔保而出售。無論是作者還是 Packt Publishing,其轉銷商和分銷商都將對
本書直接或間接造成或被指稱的任何損害承擔責任。
Packt Publishing 公司努力提供有關本書所提及的所有企業和產品的商標資訊,適當使用資
本。但是,Packt Publishing 不能保證此資訊的準確性。
作者:Has Altair、Jack Lee 和 Michael Peña
技術評論員:Aaditya Pokkunuri
責任編輯:Aditya Datar 和 Neha Pande
策劃編輯:Ben Renow-Clarke
製作編輯:Deepak Chavan
編輯委員會:Vishal Bodwani、Ben Renow-Clarke、Arijit Sarkar、Dominic Shakeshaft 及
Lucy Wan
首次出版:2019 年 10 月
生產序號:2221220
ISBN:978-1-80020-243-6
由 Packt Publishing Ltd 出版。
Livery Place, 35 Livery Street
Birmingham B3 2PB, UK
目錄

前言 i

第 1 章:介紹 Azure 的分析 1

資料的強大威力 ......................................................................................................... 3
巨量資料分析 ............................................................................................................. 4
物聯網 (IoT) ............................................................................................................... 5
機器學習 .................................................................................................................... 6
人工智慧 (AI) ............................................................................................................. 7
DataOps ................................................................................................................... 8
為什麼選擇 Microsoft Azure? ................................................................................ 9
安全性 ............................................................................................................................. 11
雲端規模 ......................................................................................................................... 12
採用雲端中資料分析的主要業務驅動因素 ............................................................... 14
快速成長和擴展 .............................................................................................................. 14
降低成本 ......................................................................................................................... 15
推動創新 ......................................................................................................................... 16
為什麼需要現代資料倉儲? ..................................................................................... 16
將資料聚集在一起 ........................................................................................................... 18
建立資料管線 ........................................................................................................... 21
資料擷取 ......................................................................................................................... 22
資料儲存 ......................................................................................................................... 22
資料管線協調流程和監控 ................................................................................................ 22
資料共用 ......................................................................................................................... 22
資料準備 ......................................................................................................................... 23
轉換、預測和豐富資料 ................................................................................................... 23
提供資料 ......................................................................................................................... 23
資料視覺化 ..................................................................................................................... 24
更聰明的應用程式 ................................................................................................... 26
摘要 ......................................................................................................................... 26

第 2 章:介紹 Azure Synapse Analytics 工作區和 Synapse Studio 27

什麼是 Azure Synapse Analytics? ....................................................................... 28


為什麼需要 Azure Synapse Analytics? ....................................................................... 29
客戶的挑戰 ..................................................................................................................... 30
Azure Synapse Analytics 出手救援 ....................................................................... 30
深入探索 Azure Synapse Analytics ....................................................................... 32
介紹 Azure Synapse Analytics 工作區 .................................................................. 33
免費 Azure 帳戶 ............................................................................................................. 33
快速入門指南 .................................................................................................................. 34
介紹 Synapse Studio .............................................................................................. 41
啟動 Synapse Studio ..................................................................................................... 41
佈建專用 SQL 集區 ......................................................................................................... 43
在專用 SQL 集區中探索資料 ........................................................................................... 48
建立 Apache Spark 集區 ............................................................................................... 50
與管線整合 ..................................................................................................................... 60
Monitor (監控) 中樞 ....................................................................................................... 64
摘要 ......................................................................................................................... 65
第 3 章:處理和視覺化資料 67

Power BI ................................................................................................................. 68
功能和優勢 ..................................................................................................................... 69
Power BI 和 Azure Synapse Analytics ................................................................. 70
功能和優勢 ..................................................................................................................... 71
快速入門指南 (資料模型化和視覺化) .............................................................................. 72
Azure 上的機器學習 ................................................................................................ 89
ML.NET .......................................................................................................................... 91
自動化機器學習 .............................................................................................................. 91
認知服務 ......................................................................................................................... 92
Bot framework ............................................................................................................. 92
Azure Machine Learning 功能和優勢 .......................................................................... 93
軟體開發套件 (SDK) ........................................................................................................ 94
設計師 ............................................................................................................................. 94
AutoML .......................................................................................................................... 94
靈活的部署目標 .............................................................................................................. 94
加速機器學習作業 (MLOps) ........................................................................................... 94
Azure Machine Learning 和 Azure Synapse Analytics ...................................... 96
快速入門指南 (Azure Machine Learning) .................................................................... 96
必要條件 ......................................................................................................................... 96
使用 Designer (設計師) 建立機器學習模型 .................................................................... 99
摘要 ....................................................................................................................... 103
第 4 章:商業使用案例 105

使用案例 1:利用 Azure Synapse Analytics 提供即時客戶深入分析 .................. 106


問題 ....................................................................................................................... 106
擷取和處理新資料 ........................................................................................................ 107
將所有資料聚集在一起 ................................................................................................ 107
在資料中尋找深入分析和模式 ..................................................................................... 108
即時探索 ...................................................................................................................... 108
設計集思廣益 ......................................................................................................... 110
資料擷取 ...................................................................................................................... 110
資料儲存 ...................................................................................................................... 111
資料科學 ...................................................................................................................... 112
儀表板和報告 ............................................................................................................... 112
解決方案 ................................................................................................................ 112
資料流成 ...................................................................................................................... 113
Azure 服務 ............................................................................................................ 114
Azure Data Lake Storage Gen2 ................................................................................ 115
Azure Synapse Analytics .......................................................................................... 117
Azure Synapse 混合式整合 (管線) ............................................................................. 118
Power BI ..................................................................................................................... 124
Azure 支援服務 ........................................................................................................... 126
深入分析和動作 ..................................................................................................... 128
減少 18% 的浪費 ......................................................................................................... 129
社交媒體趨勢推動銷售量增加 14% ............................................................................. 130
總結 ....................................................................................................................... 131
使用案例 2:使用 Azure 上的進階分析建立智慧型機場 ....................................... 132
問題 ....................................................................................................................... 132
業務挑戰 ...................................................................................................................... 132
技術挑戰 ...................................................................................................................... 134
設計集思廣益 ......................................................................................................... 136
資料來源 ...................................................................................................................... 136
資料儲存 ...................................................................................................................... 137
資料擷取 ...................................................................................................................... 137
安全性和存取控制 ........................................................................................................ 138
探索模式和深入分析 .................................................................................................... 138
解決方案 ................................................................................................................ 138
為什麼 NIA 要選擇 Azure? ........................................................................................ 138
解決方案架構 ......................................................................................................... 140
Azure 服務 ............................................................................................................ 142
Azure Synapse Analytics .......................................................................................... 142
Azure Cosmos DB ...................................................................................................... 144
Azure Machine Learning .......................................................................................... 146
Azure Container Registry ......................................................................................... 149
Azure Kubernetes Service ........................................................................................ 150
Power BI ..................................................................................................................... 152
支援的服務 .................................................................................................................. 154
深入分析和動作 ..................................................................................................... 154
使用預測分析使航班延誤減少 17% ............................................................................. 154
使用智慧型視覺效果減少壅塞並提升零售業績 ............................................................ 155
總結 ....................................................................................................................... 156
第 5 章:總結 157

最後重點 ................................................................................................................ 160


進一步學習 ............................................................................................................ 160

索引 161
> 前言

關於

本節簡要介紹了作者和評論員、本書涵蓋內容、入門所需的技術技能,以及完成所有活動和練習所需
的硬體和軟體需求。
ii | 前言

關於使用 Microsoft Azure 進行雲端分析,第二版


使用 Microsoft Azure 進行雲端分析 是使用一系列 Microsoft Azure 功能處理和分析巨量資料
的完整指南。本書涵蓋了構建自己的資料倉儲,以及學習多項技術來分析巨量資料以獲得實
用深入解析所需的一切。
本書首先透過巨量資料分析、物聯網 (IoT)、機器學習、人工智慧和 DataOps 介紹資料的強
大能力。您將深入了解雲端規模的分析,以及 Microsoft Azure 提供的服務如何賦予企業
探索深入解析的能力。此外還會透過實用的實務操作指南,介紹 Azure Synapse 工作區和
Synapse Studio 中整合一致的全新體驗。
最後將帶您了解兩個真實世界的商業使用案例,展示使用 Microsoft Azure 的高階解決方案。
這些使用案例的目的在於說明如何在 Azure 中分析即時資料,以獲得有意義的深入分析並做
出業務決策。您將學習運用機器學習和深度學習概念在雲端上建置端對端分析管線。
本書結束時,您將精通使用 Azure 分析龐大的資料集區,並有效地使用它讓您的組織獲益。

關於作者
Has Altaiar 自 認 為 是 一 名 軟 體 工 程 師, 也 是 一 名 貿 易 顧 問。Has 居 住 在 澳 洲 墨 爾 本,
是 vNext Solutions 的執行董事。他的工作集中在 Microsoft Azure 上的資料、IoT 和 AI,
他最近的兩項 IoT 專案獲得了多座獎項肯定。Has 是 Microsoft Azure MVP,同時也是當地
和國際會議的定期主辦人和演講者,包括 Microsoft Ignite、NDC 及 ServerlessDays。他也
是 Global AI Community ( 全球 AI 社群 ) 的董事會成員。您可以在 Twitter 上關注他的動態
@hasaltaiar。
Jack Lee 是資深 Azure 認證顧問,也是 Azure 事業主管,對於軟體開發、雲端和 DevOps
創新充滿熱情。他是非常活躍的 Microsoft Tech Community 參與者,加入了多個不同的使
用者群組並出席多場會議,包括 Microsoft Canada 舉辦的全球 Azure 集訓。Jack 是一位經
驗豐富的駭客馬拉松導師兼評審,同時也是專注於 Azure、DevOps 和軟體開發的使用者群
組發起人。他共同撰寫的書籍包括《架構設計師適用的 Azure》和《使用 Microsoft Azure 進
行雲端分析 》,由 Packt Publishing 出版。他對於科技界的重要貢獻,使他獲選為 Microsoft
MVP。您可以在 Twitter 上關注 Jack 的動態 @jlee_consulting。
關於使用 Microsoft Azure 進行雲端分析,第二版 |iii

Michael Peña 是一位經驗豐富的技術顧問,居住於澳洲雪梨。他是 Microsoft MVP,也是認


證的專業人員,在資料、行動、雲端、Web 和 DevOps 方面擁有超過 10 年的經驗。這些年來,
他擁有各種頭銜,但他自認為是開發人員。他也是一名國際演講者,曾在許多活動場合發表
演說,包括 Microsoft Ignite、NDC、DDD、跨平台高峰會,以及各種不同的現場和虛擬聚會。
Michael 曾在 Microsoft 實習,同時也是 Microsoft 學生大使 (Microsoft Student Partner)
校友。您可以在 Twitter 上關注他的動態 @mjtpena。

關於評論員
Aaditya Pokkunuri 是一位經驗豐富的資深資料庫工程師,曾在資訊科技和服務產業工作,
擁有長達 11 年的經驗。他擅長效能調整、MS SQL Database 伺服器管理、SSIS、SSRS、
Power BI 和 SQL 開發。
他在複製、叢集、SQL Server 高可用性選項及 ITIL 流程方面擁有相當廣泛的知識,同時擁
有 Windows 管理工作、Active Directory 及 Microsoft Azure 技術方面的專業知識。
他還擁有 AWS 雲端方面的專業知識,也是 AWS 解決方案架構師專員。Aaditya 是一位實力
雄厚的資訊科技專家,擁有 Tamil Nadu Sastra University 科技學士學位,主修電腦科學與
工程。

學習目標
• 探索現代資料倉儲和資料管線的概念
• 在運用雲端分析解決方案的同時發掘出獨特的設計考量
• 在雲端上設計端對端分析管線
• 區分結構化、半結構化和非結構化資料
• 為您的資料分析解決方案選擇雲端型服務
• 使用 Azure 服務來接收、儲存和分析任何規模的資料
iv | 前言

適用對象
本書的設計在於使軟體工程師、開發人員、雲端顧問,以及任何熱衷於學習使用 Azure 從巨
量資料中獲得業務深入分析的人受益。
雖然並非必要,但對於如資料串流、資料類型、機器學習生命週期及 Docker 容器等資料分
析概念有基本認識,將有助於充分利用本書。

方法
使用 Microsoft Azure 進行雲端分析 介紹了複雜的概念並提供真實世界的範例,讓您獲得實務
操作經驗的同時,也能學會基礎知識。本書包含許多快速入門指南,可加快您的學習速度。

硬體和軟體需求
硬體需求
為了獲得最佳學習經驗,以下是我們建議的硬體組態:
• 記憶體:最小 4 GB RAM
• 顯示器:建議最低 1440x900 或 1600x900 (16:9)
• CPU:建議 1 GHz 或速度更快的 x86 或 x64 位元處理器
軟體需求
另外建議您事先準備下列軟體組態:
• Windows 10 最新版本或 Windows Server 最新版本
• Azure 訂閱帳戶您可以在 https://azure.microsoft.com/free/synapse-analytics/
建立一個免費的 Azure 帳戶
• Microsoft Edge 最新版本
關於使用 Microsoft Azure 進行雲端分析,第二版 |v

慣例
文字、資料庫名稱、資料夾名稱、檔案名稱及副檔名中的代碼文字如下所示:
以下程式碼片段使用 Azure SQL Database 連結的服務建立資料集,該資料集參考 Coolies
的 SQL 資料庫中的 sales_table:
{
"name": "CooliesSalesDataset",
"properties":
{
"type": "AzureSqlTable",
"linkedServiceName": {
"referenceName": "CooliesSalesAzureSqlDbLS",
"type": "LinkedServiceReference"
},
"schema": [ {optional} ],
"typeProperties": {
"tableName": "sales_table"
}
}
}

安裝和設定
您可以安裝 Power BI Desktop (https://packt.live/37hUTmK) 並開始建立互動式報表。
介紹 Azure 的分析
1
根據 Dresner Advisory Service 在 2019 年的一項調查指出,高達 48% 的組織表示,雲端
智慧對於處理業務營運來說極為關鍵或非常重要。雲端運算與商業智慧市場研究 (Cloud
Computing and Business Intelligence Market Study) 同樣指出,銷售和行銷團隊從分析當
中獲得最多價值。
隨著業務成長,他們每天都會產生相當大量的資料。這些資料各有不同的來源,如手機、
物聯網 (IoT) 感應器,
以及各式各樣的軟體即服務 (SaaS) 產品,
像是客戶關係管理 (CRM) 系統。
大型企業與公司行號都需要將資料架構與基礎結構擴充並現代化以因應需求,並且在各自的
產業中保持競爭力。
2 | 介紹 Azure 的分析

擁有雲端規模分析功能,就是實現此成長的實務策略。與其自行管理資料中心,妥善運用雲
端強大的能力能讓企業以更開放易達的方式接觸使用者。透過 Microsoft Azure 等雲端服務
提供者的協助,您就可以加速資料分析實務,而不受 IT 基礎結構的限制。維護 IT 基礎結構
的潮流已然改變,因為資料湖 (Data Lake) 和雲端資料倉儲能夠存放並維護相當大量的資料。
單純收集資料無法為您的業務增加價值,您需要的是從資料中衍生深入分析,並運用資料分
析幫助企業成長,否則它就只是一個資料沼澤。Azure 不僅是收集資料的中樞,更是無比珍
貴的資料分析資源。資料分析為您提供了進一步理解業務與客戶的能力。透過應用各種資料
科學概念,如 ML、回歸分析、分類演算法及時間序列預測,您就可以測試假說,並針對未來
做出資料導向的決策。然而,組織不斷面臨的挑戰之一,就是如何在處理數十億的資料列的
同時,快速衍生這些分析模型功能。這正是現代化資料倉儲和資料管線的用處所在 ( 後續各節
將有更深入的討論 )。
資料分析可透過許多方式幫助您的業務蓬勃發展。在零售方面,若您更了解客戶,就能更清
楚知道應銷售什麼樣的產品,也更能掌握銷售產品的地點、時機及方式。在財務部門方面,
資料分析有助於主管機關打擊犯罪,藉由過去的犯罪情報來偵測詐欺交易和提供更充分的風
險評估。
本章將涵蓋基礎知識主題來說明資料的強大威力,包括:
• 巨量資料分析
• IoT
• 機器學習 (ML)
• 人工智慧 (AI)
• DataOps

另外也將帶您了解,為什麼 Microsoft Azure 是您在雲端進行分析的平台首選。最後將帶您


研究現代資料倉儲和資料管線的基本概念。
資料的強大威力 |3

資料的強大威力
身為消費者,您已看到資料的出現如何影響我們日常生活的各種活動。最流行的娛樂應用程
式如 YouTube,現在提供了自訂的使用者體驗,包括像是根據興趣和搜尋歷程記錄資訊的視
訊推薦功能。目前來說,探索與我們的偏好內容相似的新內容,可算是易如反掌,尋找最新
流行趨勢內容也一樣。
由於穿戴技術有了重大轉變,現在也能透過監測心率、血壓等追蹤我們的健康統計資料。這些
裝置接著根據這些統計資料的平均值制定出量身打造的建議。但是這些個人化的健康統計資
料不過是在全球範圍內每天進行大量資料收集的一個範例,而我們對此做出了積極的貢獻。
全 世 界 每 天 有 數 百 萬 人 使 用 社 交 網 路 平 台 和 搜 尋 引 擎。 諸 如 Facebook、Instagram 和
Google 等網際網路巨擘都是利用點擊串流資料進行創新並改善其服務。資料收集同樣也在像
是「大象普查 」和 eBird 等促進野生動物保育的專案下廣泛進行中。印度則是採用資料導向
的技術進行老虎保育專案。它甚至在全球努力收集氣候變遷的證據、原因和可能應對措施方
面扮演舉足輕重的角色,有助於了解海平面溫度、分析沿海地區洪水等自然災害,以及突顯
全球暖化模式,以期能夠集眾人之力拯救生態系統。
像是 Global Open Data for Agriculture and Nutrition (GODAN) 這類可供農民、牧場主人
及消費者等利用的組織,同樣為這項無窮無盡的資料收集做出了貢獻。
此外 ( 像是可穿戴技術的出現 ),資料分析也正在對推動醫療保健業的開創性進步做出貢獻。
病患資料集經過分析後,可找出疾病模式和早期症狀,進一步為已知問題找出更好的解決之道。
這裡討論的資料規模相當巨大,因此採用「巨量資料」(Big Data) 這個流行用語來描述大規模
運用這些資料的威力。

附註
您可以在這裡閱讀更多有關開放資料的資訊。
4 | 介紹 Azure 的分析

巨量資料分析
「巨量資料」這個詞常用來描述傳統工具無法處理的相當大量資料。以下就用五個 V 來說明它
的特點:
• 數量 (Volume):這是指需要分析以用於巨量資料分析的資料量。我們現在處理的資料
集規模比以往任何時候都要大。這項技術能夠實現的原因在於電子產品的問世,像是
行動裝置和 IoT 感應器等,並且在全世界廣泛用於商業目的。
• 速度 (Velocity):這是指產生資料的速度。剛才提到的那些裝置和平台不斷以大規模的
方式迅速產生資料。這也使得快速收集、處理、分析和服務資料成為必要。
• 多樣性 (Variety):這是指所產生資料的結構。資料來源不盡相同,混合了結構化、非結
構化及部分半結構化的資料 ( 後續將在<將資料彙集在一起> 一節中帶您深入了解 )。
• 價值 (Value):這是指所擷取資料的價值。可存取的資料不一定有價值。有了正確的工具,
您就能透過符合成本效益且可擴充的方式,從資料中衍生出價值。
• 真實性 (Veracity):這是指資料的品質或可信度。原始資料集通常包含許多干擾 ( 或是
需要清理掉的資料 ) 和偏差,需要去蕪存菁。若大多數的資料不準確,那麼即使擁有
大型資料集也無用武之地。

巨量資料分析就是在非結構化資料中找出模式、趨勢和相互關聯的過程,藉此衍生出有意義
的深入分析,以進一步形成業務決策。這種非結構化資料通常檔案規模較大 ( 如影像、視訊和
社交圖譜 )。
這並不代表關聯式資料庫與巨量資料無關。事實上,現代資料倉儲平台如 Azure Synapse
Analytics ( 前身為 Azure SQL 資料倉儲 ) 可支援結構化和半結構化資料 ( 如 JSON),還可無
限擴展以支援 TB 到 PB 的資料量。使用 Microsoft Azure 就能靈活選擇任何平台。這些技術
可互補,實現健全的資料分析管線。
以下是一些巨量資料分析的最佳使用案例:
• 社交媒體分析:透過像是 Twitter、Facebook 和 Instagram 等社交媒體網站,公司就
能了解客戶對其產品和服務的看法。社交媒體分析可幫助公司利用使用者偏好和市場
趨勢設定目標客群。這裡面臨的挑戰是相當龐大的資料量,以及推文和貼文本身非結
構化的性質。
物聯網 (IoT) |5

• 防範詐欺:這是巨量資料最為人熟知的使用案例之一。運用巨量資料分析防範詐欺時,
有一項突出的特色就是偵測資料集異常的能力。藉由了解交易模式 ( 如位置資料和所
購買商品的類別等 ) 來驗證信用卡交易,就是這類範例。這裡最大的挑戰會是確保 AI/
ML 模型無干擾也無偏差。模型可能只經過特定參數 ( 如使用者國籍 ) 的訓練,因此模
型只會專注於判斷使用者位置的模式,而可能忽略其他參數。
• 價格最佳化:使用巨量資料分析可根據歷史市場資料預測哪些價格點將產生最佳結果。
這樣一來,公司就能確保商品定價不會過高或過低。這裡的挑戰在於,有許多因素會
影響價格。若只關注某一個特定因素,如競爭對手的價格,最終可能會訓練出只關注
該領域的模型,而可能忽略其他因素,如天氣和流量資料。

公司行號和大型企業的巨量資料通常伴隨著擁有 IoT 基礎結構的概念,也就是說,有數百、


數千甚至數百萬台裝置連線至不斷傳送資料至伺服器的網路。

物聯網 (IoT)
IoT 在擴大應用超越目前資料來源方面,扮演著至關重要的角色。IoT 單純就是裝置互聯,這些
裝置內嵌在我們周圍的事物當中,透過傳送和接收資料來達成單一目的。IoT 可讓我們不斷收
集有關「事物」的資料,而不需將它們手動編碼到資料庫中。
智慧手錶就是很好的例子,這種 IoT 裝置會不斷測量我們身體的生命徵象。智慧手錶可讓您
自動記錄資料,而不必取得測量裝置並將它編碼到系統內。另一個很好的例子就是應用於資
產的裝置追蹤器,可擷取位置、溫度和濕度資訊。這可讓物流公司監控運送中的商品,確保
服務品質和效率。
這些 IoT 裝置以大規模的方式隨處產生從 GB 到 TB 的資料量。這些資料通常以原始、非結
構化的格式儲存在資料湖中,後續會經過分析以衍生出商業深入分析。資料湖是所有結構化、
半結構化和非結構化資料的集中存放庫。以前面提到的物流公司為例,可產生模式 ( 如最佳遞
送路線 )。這些資料還可用於了解異常狀況,如資料洩露或疑似詐欺的活動。
6 | 介紹 Azure 的分析

機器學習
隨著資料規模的成長,也為企業開拓了許多超越了解業務趨勢和模式的契機。機器學習和人
工智慧正是您能夠利用資料發揮創新的範例。目前來說,建置人工智慧和 ML 功能相對容易,
因為必要技術的取得以及擴充儲存空間和雲端運算的能力已相當普遍。
機器學習和人工智慧這兩個術語經常遭到混淆。概略來說,機器學習是人工智慧的一環 ( 或應
用 )。機器學習旨在使系統能夠從過去的資料集中學習,並且在無人協助的情況下自動調整。
這是藉由套用一系列的演算法至資料集來實現,而演算法會以接近即時的方式分析資料,接著
根據從過去經驗獲得的準確性或信心得出可能的行動。
「學習」一詞是指,程式不斷從饋送而得的資料中學習。機器學習的目的在於追求準確性而不
是成功。機器學習演算法主要分成三類:監督式演算法、非監督式及強化。
監督式機器學習演算法會建立對應功能,將輸入變數與輸出變數對應。此演算法使用現有的
資料集來自我訓練以預測輸出。分類是監督式 ML 的一種形式,可應用在如影像分類或客戶
區隔等方面,有利於目標式行銷活動。
另一方面來看,非監督式機器學習是讓程式找出自己的模式,而不加任何標籤。了解客戶購
買產品時的購買模式就是很好的例子。您根據購買行為得到固有分組 ( 叢集 ),程式就可以根
據購買模式建立客戶與產品之間的關聯。舉例來說,您可能會發現購買產品 A 的客戶也傾向
購買產品 B。這個範例是採用以使用者為基礎的建議演算法和市場為基礎的分析。最終對於使
用者的意義在於,當他們購買特定商品 ( 如書籍 ) 時,就會鼓勵使用者購買統一系列、內容類
型或類別的其他書籍。
人工智慧 (AI) |7

強化學習 (RL) 會根據獎懲提供有意義的深入分析和行動。與監督式學習的主要區別在於,強化


學習不需要加上標籤的輸入和輸出做為演算法的一部分。有一個很恰當的例子,就是「機器人
顧問」這個全新的財務趨勢。機器人顧問執行的方式,是使用根據股票績效 ( 也就是損益 ) 獲
得獎懲的代理程式。一段時間後,代理程式就可辨別要持有、買入或賣出股票。這是一項顛
覆市場的革命性作為,因為在過去,分析師得做出每一項決策,而現在大多數複雜的資料趨
勢都已自動經過分析,且分析師可以選擇聽從代理程式與否。然而,有鑒於世界上存在的參
數性質,金融交易是非常龐雜的,因此並非所有機器人顧問的預測都準確。

人工智慧 (AI)
人工智慧超越了機器學習能力所及。它追求的不只是準確性,而是關於決策和獲得成功。思考
方向之一就是,機器學習的目的是獲得知識,而人工智慧則追求智能或智慧人工智慧應用在
實務上的例子如 Boston Dynamic 的圖集機器人,它可在開放世界中自由導航和避障,而不
需人力介入控制。此機器人並不完全依賴歷史地圖資料進行導航。然而,就機器學習而言,
是關於從歷史資料分析建立或預測模式。就如同機器人導航,它是根據歷史和群眾來源的流
量資料來建立模式,藉此了解最佳路線。
建立具有雲端分析的現代資料倉儲,是準備執行 ML/AI 的關鍵要素。若不將工作負載移轉至
雲端,那麼衍生 ML/AI 模型就意味著,在利用這些新興技術獲得最大業務價值的過程中將會
遇到重重障礙。現代資料倉儲和分析管線構成了骨幹,讓您得以通過這些障礙。
Microsoft 是機器學習和人工智慧領域的領導者,因為他們在所有產品和工具中推動了大量創
新,例如 Windows 數位助理 Cortana 和 Office 365 的即時字幕和字幕。他們提供一系列的產
品、工具和服務,如 Microsoft 認知服務、Azure Machine Learning Studio、Azure Machine
Learning 服務和 ML.NET。
8 | 介紹 Azure 的分析

Microsoft 正以他們的 AI for Good 主張樹立榜樣,旨在透過人工智慧提升世界的永續性和易


達性。有一項特別有趣的專案是 AI for Snow Leopards,其中 Microsoft 運用人工智慧技術
來偵測雪豹 ( 在雪中幾乎看不見 ),藉此保育瀕危物種。本書並非專門探索人工智慧和深度學
習 ( 無人監督的學習能力 ),特別是資料科學和公式方面,但您仍可在後續各章節中學得一些
概念 ( 更多資訊請參閱第 3 章,處理和視覺化資料 )。

DataOps
為了在公司中透過實作資料分析來實現高效率與靈活度,您需要有正確的文化和流程。這就是
DataOps 的概念發揮作用之處。DataOps 消除了資料 ( 分析師、工程師和科學家 ) 與運營 ( 管理
者和運營經理 ) 團隊之間的協調障礙,進而實現資料分析的速度和準確性。
DataOps 是關於不同角色和職能之間的協作文化。資料科學家可存取即時資料以探索、準備
和處理結果。自動化的程序和流程證明了分析師和開發人員之間的這項協作彌足珍貴,因為
他們透過視覺化工具提供了方便存取資料的方式。相關資料應透過 Web 或行動應用程式提供
給終端使用者;這通常是透過應用程式開發介面 (API) 來實現。對於 CEO 來說,DataOps 意
味著更快做出決策,因為他們能夠在高層監控自己的業務,而不需等待團隊領導者回報。圖 1.1
嘗試說明協作 DataOps 文化的想法:

圖 1.1 DataOps 程序
為什麼選擇 Microsoft Azure ? |9

一旦團隊在測試假設 ( 例如根據特性和行為假設某人購買產品的可能性 ) 時達到所需的速度和


準確性,他們就能獲得更實用的深入分析。一旦有了更實用的深入分析,企業利害關係人就
有更能付諸行動且更合理的決策點,能將風險降至最低,並實現最大利潤。

為什麼選擇 Microsoft Azure ?


Microsoft Azure 是一整套企業級的雲端運算服務,由 Microsoft 使用自己的託管資料中心所
建立。Azure 是唯一具備真正端對端分析解決方案的雲端。有了 Azure,分析師在幾秒內就
能從所有企業資料當中獲得深入分析。Azure 提供成熟且強大的資料流,不受並行存取的限制。
Azure 可支援基礎架構即服務 (IaaS)、平台即服務 (PaaS) 及 SaaS。全世界有許多政府機構以
及 95% 的《財富》雜誌 500 大企業都使用 Azure,產業涵蓋範圍從醫療保健和金融服務到零
售和製造業等。
Microsoft 是一個科技集團,數十年來透過其軟體、工具和平台讓許多人實現了事半功倍的
目標。Azure 提供靈活度。熟悉的 Microsoft 工具和基礎結構 ( 如 SQL Server、Windows
Server、Internet Information Services (IIS) 和 .NET) 或工具 ( 如 MySQL、Linux、PHP、
Python、Java 或任何其他開放原始碼技術 ) 都可在 Azure 雲端上執行。只能使用四處受限的
工具和技術默默耕耘的日子終成過去。
Azure 可根據您的需求提供各種不同的產品和服務。您可以選擇以客製化的方式執行所有工作,
從啟動已安裝 Enterprise SQL Server 的 Windows Server 虛擬機器來管理 IaaS,到使用受管理
的 PaaS 供應項目,如 Azure Synapse Analytics。
10 | 介紹 Azure 的分析

圖 1.2 顯示各式各樣的資料特定 Azure 工具和服務,可用來建立端對端資料管線:

圖 1.2:Microsoft Azure 資料相關服務

Azure 帶來靈活彈性,讓您自行選擇解決問題的最佳方式,而不會強迫您採用不適用的產品
來執行不自然的功能。您也不再受限於 SQL Server。您還可以靈活選擇其他類型的資料庫或
儲存體,無論是透過安裝在 Linux 伺服器或容器化解決方案上的服務,還是透過託管平台 ( 如
適用 Cassandra 的 Azure Cosmos DB 和 MongoDB 執行個體 )。這一點非常重要,因為在現
實世界中,不同的案例會需要不同的解決方案、工具和產品。
Microsoft Azure 為您提供了端對端平台, 可從 Azure Active Directory 管理使用者身分識別,
以及存取 Azure IoT 供應項目 ( 如 IoT 中樞 ),以便從數百數千部 IoT 裝置收集資料。它還提
供像是開發工具和雲端代管選項等服務,讓開發人員能跟上速度,以及各種分析和機器學習
工具,讓資料科學家、資料工程師和資料分析師能夠提高工作效率 ( 稍後將在第 3 章,處理和
視覺化資料 中深入討論 )。
Azure 服務的完整範圍太廣,無法全數涵蓋於此,因此,本書將側重於關鍵資料倉儲和商業
智 慧 產 品 套 件:Azure Data Lake、Azure Synapse Analytics、Power BI 及 Azure Machine
Learning。
為什麼選擇 Microsoft Azure ? |11

安全性
Microsoft 將安全性視為首要之務。談到資料,隱私權和安全性絕不容妥協,但威脅無所不在。
Azure 擁有分析領域中最先進的安全性和隱私權功能。Azure 服務透過虛擬網路 (VNet) 支援
資料保護,因此,即使是在雲端,公用網際網路也無法存取資料點。只有位於相同 VNet 中的
使用者才能相互通訊。針對 Web 應用程式,Azure 應用程式閘道為您提供了 Web 應用程式
防火牆 (WAF),確保只有有效的請求才能進入您的網路。
利用角色型存取控制 ( 授權 ),就可確保只有具有正確角色 ( 如管理員 ) 的人才能存取特定元
件以及不同資源的功能。另一方面,驗證可確保在沒有正確認證 ( 如密碼 ) 的情況下,您將無
法存取資源。授權和驗證是 Microsoft Azure 內各種服務和元件與生俱來的能力,並且運用
Azure Active Directory 提供。
Azure 還提供一項名為 Azure Key Vault 的服務。Key Vault 可讓您安全存放及管理機密和密
碼、建立加密金鑰,以及管理憑證,如此應用程式就無法直接存取私密金鑰。依照 Key Vault
的這種模式,您就不必在原始程式碼和指令碼存放庫中納入機密和密碼的硬式編碼。
Azure Synapse Analytics 使用 ML 和 AI 保護您的資料。在 Azure SQL 中,Microsoft 提供
了進階資料安全性,確保您的資料受到保護。這包括了解您的資料庫是否有漏洞,像是公開
的連接埠號碼。這些功能還可讓您進一步符合各項標準,如一般資料保護規定 (GDPR),以確
實分類視為敏感的客戶資料。此外,Azure SQL 近期公佈了新功能:資料列層級安全性 (RLS)
和資料行層級安全性 (CLS),可依使用者特性控制資料庫資料表中資料列和資料行的存取權。
Microsoft 每年在網路安全領域至少投資 10 億美元,當中包括 Azure 平台。Azure 獲得獨立
評估機構的多項認證與獎項肯定,這意味著,從實體安全性 ( 也就是未經授權的使用者無法實
際存取資料中心 ) 到應用程式層級安全性,您可以在所有安全性層面信任 Azure。
如果您是自行維護資料中心,那麼這些就是需要納入考量的幾項安全性功能。
12 | 介紹 Azure 的分析

雲端規模
Azure 讓資料分析變得經濟實惠,也顛覆了業界的想像。在大規模採用雲端運算之前,為了
規劃 TB 甚至是 PB 資料量的資料分析,您得先擬定適當的計畫,並確保擁有足以因應的資本
支出。這意味著,一開始就必須背負相當高的前期基礎結構和專業服務成本。而有了 Azure,
就可以從小處著手 ( 許多服務都提供免費層級 )。只要幾分鐘,就能輕鬆擴大或縮減雲端資源
的規模。Azure 將調整能力提供給每個人,實現了經濟上的可行性,如圖 1.3 所示:

圖 1.3:Microsoft Azure 區域

Microsoft Azure 目前擁有 60 多個資料中心區域,可支援 140 多個國家 / 地區。部分大型企


業和商務產業會要求您將資料託管於業務營運所在的國家 / 地區內。只要能夠使用全世界各
地不同的資料中心,您就能輕鬆擴展至其他區域。這種多區域方式有益於提升應用程式的可
用性。
為什麼選擇 Microsoft Azure ? |13

雲端的真正威力在於彈性。不僅能讓您擴大資源規模,還能在必要時縮減規模。就資料科學
而言,這是非常實用的,因為資料科學包含了可變工作量。例如,當資料科學家和工程師分
析資料集時,會需要更多的運算。Azure 透過如 Azure Machine Learning ( 更多資訊請參閱
第 3 章,處理和視覺化資料 ) 等服務,讓您能夠根據需求調整規模。那麼在離峰時段 ( 如週末、
平日晚上 7 點到早上 7 點 ),當科學家和工程師不需要處理能力來分析資料時,您就可以縮減
資源,如此就不必支付全年無休不斷執行的資源費用。Azure 基本上提供隨用隨付或用多少
付多少服務。
此外,Azure 會針對其服務提供服務等級協議 (SLA) 做為承諾,確保其生產客戶的正常執行
時間和連線能力。若發生停機時間或事故,則會對受影響的資源套用服務積分 ( 回扣 )。如此
您就能放心,因為應用程式將永遠可用。且停機時間降至最低。
Microsoft Azure 提供了不同的規模調整方式和模式:
• 垂直調整規模:這是有更多資源加入同一執行個體 ( 伺服器或服務 ) 的情況。舉例來說,
虛擬機器從 4 GB RAM 擴充為 16 GB RAM 就屬於這種情況。
這是應用程式需要擴展時,
可採取的簡單明瞭方式。不過,這種方式在能夠擴展的執行個體數目方面有其技術上限,
同時也是最昂貴的調整方式。
• 水平調整規模:這是您將應用程式部署到多個執行個體的情況。邏輯上來說,這表示
您可以無限擴展應用程式,因為您不會只用一部機器來執行操作。這種靈活度也會帶
來些許複雜性。這些複雜性通常可透過使用各種模式和不同的協調流程技術獲得解決,
例如 Docker 和 Kubernetes。
• 地理調整規模:這是您將應用程式擴展到不同的地理位置的情況,原因有兩個:韌性
和減少延遲。韌性可讓應用程式在該區域內自由運作,而不需將所有資源連接到主區域。
減少延遲是指,該區域的使用者能更快取得 Web 請求,因為距離資料中心更近。
• 分區化:這是將大量相關的結構化資料分散到多個獨立資料庫的技術之一。
14 | 介紹 Azure 的分析

• 開發、測試、驗收和生產 (DTAP):這是多個執行個體在不同的邏輯環境中存留的方
式。這樣做通常是為了將開發和測試伺服器與暫存和生產伺服器分開。Azure DevTest
Labs 提供了開發和測試環境,可使用群組原則進行設定。

業務位於雲端的另一項優勢在於服務的可用性。有了 Azure,更容易實現基礎結構和資源的
異地備援,也就是說,可供全世界多個區域和資料中心使用。假設您想將業務從澳洲擴展到
加拿大。您可透過實現 SQL Server 異地備援的方式達到此目的,如此一來,加拿大使用者就
不需要利用位在澳洲的應用程式和資料庫執行個體進行查詢。
儘管 Azure 是一套產品和服務的組合,但並不會強迫您「全數投入」。這表示您可以從實作
混合式架構,也就是結合內部部署資料中心和雲端 (Azure) 的方式開始進行。混合式解決方
案中包含了不同的方法和技術,例如,需要專用存取權時使用虛擬私人網路 (VPN) 和 Azure
ExpressRoute。
有了 Azure Synapse Analytics,Azure 就可透過資料整合讓您從內部部署的 SQL Server 取
得資料來源的快照。當您擁有來自其他雲端提供者或 SaaS 產品的其他資料來源時,也適用相
同的概念;您可以靈活地將這些資料複製到您的 Azure Data Lake。這種靈活度非常方便,因
為當您需要進行完整移轉時,不會受制於廠商。

採用雲端中資料分析的主要業務驅動因素
不同的公司基於不同的理由採用使用公有雲的資料分析 ( 如 Microsoft Azure)。但很多時候可
歸納為三個主要原因:快速成長和擴展、降低成本及推動創新。

快速成長和擴展
大型企業和公司行號都需要快速擴展其數位足跡。隨著行動應用程式快速成長,尤其是媒體
類型 ( 如影像和視訊 )、IoT 感應器和社交媒體資料,要擷取的資料實在非常多。這表示大型
企業和公司行號都需要調整基礎結構的規模,以支援如此大量的需求。公司資料庫大小從 GB
資料量持續成長到 TB,甚至是 PB 資料量。
一般使用者的需求也比以往更高。如果您的應用程式未在幾秒內回應,很可能是使用者已離
開您的服務或產品。
採用雲端中資料分析的主要業務驅動因素 |15

調整規模不僅適用於應用程式消費者,對於資料科學家、資料工程師及資料分析施來說也很
重要,讓他們能夠分析公司資料。調整基礎結構規模至關重要,因為您無法期望資料工程師
在單一機器上處理大量資料 (GB 到 TB),同時執行指令碼來測試資料模型。即使您使用單一
高效能伺服器執行個體來達到這個目的,仍然需要花上數週或數天時間才能完成測試,更不
用說對於每天使用相同資料庫的一般使用者造成效能瓶頸。
有了像是 Azure Synapse Analytics 這類現代資料倉儲,您就擁有一些受管理的擴充能力,例如
專用快取層。快取可讓分析師、工程師和科學家以更快的速度查詢。

降低成本
基於調整規模需求,大型企業和公司行號需有一項機制,能夠以符合成本效益且經濟上可行
的方式擴展資料基礎結構。建置內部部署資料倉儲的成本太高。以下列出幾項成本考量因素:
• 等待伺服器交付和相關內部採購流程的時間
• 網路和其他實體基礎結構成本,如硬體冷卻和資料中心建築物
• 設置和維護這些伺服器伴隨的專業服務成本
• 授權成本 ( 如有的話 )
• 人員和團隊因無法更快運送其產品而喪失生產力

有了現代資料倉儲,您就可以啟動新的高效能伺服器,並且隨需使用高效能圖形顯示卡。與雲
端提供者 ( 如 Microsoft Azure) 合作之下,您只需為使用這些伺服器的時間付費。若不再需要,
只要將它們關閉即可。您不僅可以隨需關閉它們,還可在發現特定服務不再符合您的需求時,
刪除這些資源並佈建其他服務。
此外,Azure 會針對您承諾在特定期間使用的「保留」執行個體提供折扣。這對於需要全年
無休執行且停機時間最低的資料庫、儲存體解決方案及應用程式來說,非常實用。
16 | 介紹 Azure 的分析

推動創新
在這個競爭激烈的市場中,公司需要不斷創新,否則很快就有他人崛起並奪走市佔率。但顯
然沒有人能精準預測未來,因此公司需有一項機制,能夠根據其所掌握的資訊探索新事物。
其中一個很好的例子就是商務程序外包 (BPO) 和電信 (Telco) 產業,這些產業可能尚有相當大
的資料量有待探索。有了 Microsoft Azure 的現代資料倉儲,這類產業的業者就能擁有基礎
結構來進行資料探索。Azure Synapse Analytics、Power BI 及 Azure Machine Learning 可
讓他們探索自己的資料以推動業務決策。或許還能讓他們發想出一種資料模型,能夠偵測詐
欺行為或進一步了解其客戶偏好和期望,以提高滿意度評分。透過進階分析,這些公司就能
做出與時俱進 ( 以及可能因應未來 ) 的決策,而不僅限於分析歷史資料。
假設您想要打造一部自動駕駛汽車?您將需要一個強大的資料倉儲來存放資料集以及大量的
資料處理。您需要擷取相當大量的資料 ( 無論是透過車輛持續擷取的圖片或視訊 ),並且需要
根據您的資料集和演算法做出近乎即時的回應。
與 Microsoft Azure 這樣的雲端提供者合作,您就可以及早測試和驗證您的想法,而不需大
量投資。有了各式各樣的 Azure 服務和相關工具 ( 如 GitHub 和 Visual Studio),您就可以
快速建構出想法的原型,並探索各種可能性。假如發現您或團隊正在開發的產品或服務並未
真正獲得矚目,該怎麼辦?若是在內部部署環境中,除了所有相關聯的授權和服務成本之外,
您還須負擔責任與營運的高成本,因為您實際擁有基礎結構。

為什麼需要現代資料倉儲?
資料倉儲是一種集中式存放庫,匯集了多種不同 ( 經常是分散各地 ) 的資料來源。資料倉儲和
資料庫的主要區別在於,資料倉儲主要用於線上分析處理 (OLAP),而資料庫則主要用於線上
交易處理 (OLTP)。OLAP 表示,資料倉儲主要用來產生分析、商業智慧,甚至機器學習模型。
OLTP 表示資料庫主要用於交易。這些交易是應用程式的日常運作,它們會同時對資料庫進行
資料讀取和寫入。
為什麼需要現代資料倉儲? |17

如果您想要分析巨量資料,則資料倉儲就不可或缺,因為它也包含歷史資料 ( 經常稱為冷資料 )。
大多數儲存的資料都有舊資訊,例如 5 年前、10 年前甚至 15 年前儲存的資料。您可能不希望
一般使用者查詢的資料庫執行個體同時包含這些歷史資料,因為這樣可能在大規模執行時影
響效能。
以下是擁有現代資料倉儲的一些優勢:
• 支援任何資料來源
• 高度可擴充和高度可用
• 從分析儀表板即時提供深入分析
• 支援機器學習環境

Microsoft 提供下列工具和服務來共同建立現代資料倉儲:

圖 1.4:使用 Azure Synapse Analytics 的現代資料倉儲

資料倉儲有許多新興的模式和架構,但最普遍採用的,是可支援將資料管線不同階段中的義
務和責任加以區隔的方式 ( 更多資訊請參閱建立資料管線 一節 )。
18 | 介紹 Azure 的分析

為了解現代化對於資料倉儲的意義,首先需要了解如何建立和管理傳統資料倉儲。這可歸納
為兩個主要概念:
• 運算:這是指處理資料並從中找出意義的能力。它的形式可能是資料庫查詢,將結果
供另一個介面存取,例如 Web 應用程式。
• 儲存:這是指保存資料供未來隨時存取的能力。

現代資料倉儲以符合成本效益的方式將運算和儲存分開。與傳統使用 SQL Server 和 SQL


Server Integration Services (SSIS) 的案例不同的是,定價模型同時包含了分析資料所需的
儲存容量和運算能力。Azure 是率先提供將運算與儲存分開的資料倉儲的雲端提供者。
另一項模式上的改變在於,傳統的擷取 – 轉換 – 載入 (ETL) 資料倉儲模型現已變更為擷取 –
載入 – 轉換 (ELT)。在傳統 ETL 模型中,分析師習慣等待資料先進行轉換,因為他們無法
直接存取所有資料來源。在現代資料倉儲中,大量資料可儲存在 Data Lake 或資料倉儲中,
且分析師可隨時進行轉換,不需要等待資料工程師或資料庫管理員處理資料。
當然,為了將資料倉儲現代化,還有許多其他因素需要考量,例如擴充性、災害復原和可用性。
不過,本節暫時側重於運算層面。

將資料聚集在一起
以往資料庫經常是應用程式唯一的資料來源。而今,您有數百、數千個不同的資料來源。這些
不同來源的資料各屬於不同的資料類型,有些是結構化,有些是非結構化,也有些是半結構
化的資料。
結構化資料:「結構化」一詞,是指一種容易解讀的模式。通常伴隨一組預先定義的模型和一
項結構描述。關聯式資料庫管理系統 (RDBMS) ( 如 Microsoft SQL Server) 就是結構化資料
儲存解決方案的常見例子。這是因為它帶有定義您要儲存之資料的資料庫結構描述和資料表
資料行。
為什麼需要現代資料倉儲? |19

以下是一些結構化資料類型的範例:
• 客戶名稱
• 地址
• 地理位置
• 日期和時間
• 手機和電話號碼
• 信用卡號
• 產品名稱和存貨單位 (SKU)
• 一般交易資訊,如「寄件者」和「收件者」,附帶時間戳記和金額值

有一個很好的結構化資料範例,就是使用者第一次註冊應用程式時提供的資訊。這些資訊會
以表單形式呈現,並且需要填入。一旦這個人按下提交按鈕,它就會將資料傳送至資料庫,
並插入具有預先定義資料行的使用者資料表中,包括姓名、地址和其他詳細資料。如此使用
者就能登入應用程式,因為系統現在可在資料庫中查詢現有記錄中已註冊的使用者。
此後使用者就能存取應用程式並進行交易,如轉帳和轉移資產。經過一段時間後,使用者將
產生一系列交易,最終使您的資料庫變大。您的資料庫結構描述也將會擴展,以便支援不同
的業務需求。
一旦您有足夠的資料,就可以進行資料探索。您就是從這裡開始尋找資料的模式。您可藉由
分析同一使用者的大筆重複交易金額來找出詐欺交易。
資料探索會受限,因為您只能以結構化且具有語意形式的資料集做為基礎。假設您也想要將
其他非結構化的資料納入考量,例如自由格式文字,該怎麼辦?交易描述就是一個例子,當
中可能敘述交易的性質或接收方。您不想要手動讀取每一項交易描述,並將它插入資料庫資
料表的正確資料行中。您可能只想要擷取相關資訊,並將它轉換成結構化格式。這就是非結
構化資料的用處。
非結構化資料:這種資料類型大致上算是結構化資料以外的所有資料。主要是因為您不受限
於任何儲存體和資料類型。
非結構化資料類型通常沒有預先定義的資料模型可直接放入資料庫中。非結構化資料可能有
龐大的文字量,且通常按行讀取或以空格分隔。
20 | 介紹 Azure 的分析

以下是一些非結構化資料來源的範例:
• 影像檔
• 影片
• 電子郵件和文件
• 記錄檔
• IoT 裝置和感應器
• NoSQL 資料庫,如 MongoDB
• 社交媒體和 Microsoft Graph

影像檔和影片會分類為非結構化資料,是因為它們的動態性質。雖然它們的中繼資料可視為
結構化 ( 如標題、創作者、檔案名稱等 ),但內容本身是非結構化。運用現代工具和資料分析
技術,您就能查看這些資料並從中找出意義。常見的範例是影像或影片的臉部辨識。
電子郵件、文件及記錄檔都有中繼資料,但您實際上更有興趣的會是這些檔案的內容。通常
在電子郵件、文件和記錄檔中,資料會區分成行,而訊息為非結構化。您會希望不需手動讀
取所有資料 ( 可能是數百甚至數百萬個檔案 ) 就能描述內容。對內容進行情緒分析就是一個例
子,可判斷表現出的情緒是快樂、傷心或憤怒。對於記錄檔,您可能會想要將不同訊息的錯
誤訊息、時間戳記 ( 日期 ) 和測量值 ( 追蹤 ) 分開。
就像記錄檔一樣,IoT 裝置和感應器會用來擷取有關特定項目的測量值和錯誤。主要區別在於,
這些裝置通常會處理大量叢集 ( 數百到數千部裝置 ),並持續不斷地串流資料。從這些裝置產
生的資料為半結構化或非結構化,因為其格式為 JSON 或 XML。現代技術如 Azure IoT 服務,
已透過 Azure IoT 中樞這類服務解決了這些複雜性,它會從不同的感應器彙整資料,並持續
不斷地將資料匯出至資料來源。有時您可以將這些資料歸類為半結構化資料,因為這些追蹤
和記錄是系統很容易理解的。
社交媒體平台和 Microsoft Graph 都是提供半結構化資料。這樣分類的原因在於,單純在所
有 Twitter 推文中查詢某一個主題是不夠的。除非進一步分析,否則結果對您來說不一定有
意義。主要重點在於辨別模式和異常。例如,您可能想要找出有關新聞和主題的趨勢,同時
也希望移除無關的資料,例如來自假帳號的推文。
建立資料管線 |21

有趣的是,有些商務營運 (LOB) 應用程式同時提供結構化和非結構化資料。例如,Microsoft


Dynamics CRM 和 Salesforce 都提供容易解讀的結構化資料,並且將其匯出到 SQL 資料庫
資料表中,例如產品資料及其金額和值。不過,這兩者也支援非結構化資料,例如影像、影片
及文字備註。請注意,即文字備註被視為字串資料類型,卻仍可視為非結構化資料,因為其
設計做為自由文字。雖然它們沒有正式的格式可循,但仍然值得探索。常見的非結構化資料
使用案例,就是了解銷售失敗的原因。

建立資料管線
一旦找出資料來源,下一步就是建立資料管線 ( 有時也稱為資料流 )。從較高層次來看,包含
的步驟有資料擷取、資料儲存、資料準備和訓練、資料模型建立和處理,以及資料視覺化。
您將透過此方式建置可高度擴展的架構,為系統的所有使用者提供服務:從一般使用者、進行
資料探索的資料工程師和科學家,以及解讀資料供業務用途的分析師,甚至到 CEO,如果他
們想看即使業務運作情況的話:

圖 1.5:現代資料管線
22 | 介紹 Azure 的分析

資料擷取
資料擷取是指傳輸資料 ( 結構化、半結構化或非結構化 ),從來源到您的儲存體、Data Lake
或資料倉儲。
這包括像是 Azure Synapse Analytics,它會使用資料擷取將資料從各種不同來源 ( 如內部部
署資料庫和 SaaS 產品 ) 傳輸至 Data Lake。此步驟可讓您管理 ETL 和 ELT 工作流程,而不
需手動協調。
這個程序不只進行一次。理想情況下,您會排程此程序並設定觸發時間,讓您的 Data Lake
不時能取得歷史快照。舉例來說,藉由 Azure Synapse Analytics 與資料整合,從您的 CRM
工具 ( 如 Microsoft Dynamics CRM) 連接到 Azure Data Lake。如此資料科學家和資料工程
師就能依不同時間間隔探索此資料,而不需中斷實際的 CRM 應用程式。

資料儲存
一旦從各種資料來源擷取資料後,所有資料都會儲存到 Data Lake 中。位於 Data Lake 內的
資料仍為原始格式,且同時包含結構化和非結構化資料格式。此時的資料對於推動業務深入
分析來說,沒有太多價值。

資料管線協調流程和監控
在現代資料倉儲案例中,資料來源和服務能夠有效率地將資料從來源傳輸到目的地,是非常
重要的。具備資料整合能力的 Azure Synapse Analytics 是一種協調器,可讓服務執行資料
移轉或傳輸。它不會執行實際傳輸,而是指示服務執行,例如,它會告知 Hadoop 叢集執行
Hive 查詢。
具備資料整合功能的 Azure Synapse Analytics 還可讓您建立警示和指標,以便在服務協調進
行時通知您。您可以建立警示,在資料未能成功從來源傳送至目的地時透過電子郵件發出警示。

資料共用
在現代資料倉儲模式下,共用資料既順暢又安全。通常這是透過檔案傳輸通訊協定 (FTP)、電子
郵件或 API 來達成,這裡僅舉例少數幾項。如果您想要大規模共用資料,那麼管理費用就會
相當龐大。Azure Data Share 可讓您安全地管理巨量資料,並與他方和其他組織共用。資料
提供者可完全掌控能夠存取資料集的對象,以及各對象能執行的權限。如此讓相依的公司更
建立資料管線 |23

容易獲得深入分析和探索 AI 案例。

資料準備
資料擷取完成後,下一步就是資料準備。這個階段會預先處理來自不同資料來源的資料,以供
資料分析使用。例如,查詢來自 API 的資料並將其插入資料庫資料表中。具備資料整合功能
的 Azure Synapse Analytics 可讓您協調此資料準備工作。Azure Synapse Analytics 可透過
託管 Apache Spark 執行個體協助資料準備工作,因為它可在幾秒或幾分鐘內同時執行叢集來
處理龐大的資料量。

轉換、預測和豐富資料
有時資料準備工作需要進一步改變,不僅是單純的複製貼上而已。這就是資料轉換的用處。
在某些情況下,您會想要先對原始資料套用自訂邏輯 ( 例如,套用篩選器 ),再決定將它傳送
到資料倉儲。Azure Synapse Analytics ( 透過資料整合 )、Apache Spark 及 SQL Analytics
都可在此情況下提供協助。如果 Data Lake 內的資料未正確轉換成有意義的深入分析,最終
將會變成資料沼澤。
此外,您可以藉由叫用 Azure Machine Learning ( 即時預測資料 ) 大規模提高批次資料的豐
富程度。這可以做為 Azure Synapse Analytics 中資料管線的附加功能。如需深入了解 Azure
Machine Learning,請參閱第 3 章,處理和視覺化資料 。

提供資料
資料準備和訓練完成後,就可以製作資料模型並提供給消費者。基本上,在這個階段您會製作
讓系統容易判讀的資料模型。通常包括執行您從資料準備和訓練階段產生的複雜查詢,並將
這些記錄插入資料庫,讓資料得以在定義的資料表和結構描述中結構化。
您公司的所有分析資料都會儲存在資料倉儲中。您可能有數百到數千依賴單一資料倉儲執行
的並行存取使用者、報告和儀表板。
通常您會使用資料倉儲平台 ( 如 Azure Synapse Analytics) 進行資料模型化和服務整合。完成
複雜的查詢可能需要數小時或數天的時間。但是,有了雲端的強大威力,您就可以擴展
Azure Synapse Analytics,以更快的速度執行這些查詢,將數天的時間縮短成數小時,甚至
數分鐘。
24 | 介紹 Azure 的分析

資料視覺化
資料視覺化是一項透過圖形和圖表分析效能的高效率方式。這種方式稱為商業智慧。像是
Power BI 這類工具就能幫助分析師充分運用資料。使用 Azure 時並不限於 Power BI,還可
以使用其他視覺化服務,如 Tableau。資料視覺化提供了豐富且有意義的資料呈現方式,為您
和客戶增添商業價值。團隊可從中看出趨勢、極端值和模式,有助於做出資料導向的決策。
組織內各方利害關係人可在分析不同的效能參數後彼此協作。貴公司產品的銷售情況是否良
好?銷售量最高的地區是哪裡?有了豐富的資料支持您的假設,業務利害關係人 ( 如 CEO) 就
能做出合理的資料導向決策,將風險降至最低。哪些產品線應該擴展?應該從哪裡進一步擴
展?這些都是一些常見問題,只要您掌握更豐富的資料分析,就能一一解答。
分析師可利用桌面或 Web 應用程式工具製作出有意義的資料簡報。以下舉例 Power BI 桌面
檢視,使用者可在此分析其公司的資料並利用圖形將資料視覺化:

圖 1.6:Power BI Desktop 儀表板


建立資料管線 |25

報告產生後可匯出到工作區,讓所有人能夠一起改進報告。以下是同一份報告在行動應用程
式中的範例檢視。使用者可在報告中加入評論和註解,加快分析師獲得意見回饋的往返過程:

圖 1.7:行動裝置上的 Power BI 儀表板

Power BI 可讓您建立豐富且最符合需求和品牌的個人化儀表板。與上週或上個月的圖表快照
簡報相比,此機制可讓您不斷為相同的報告增添新意。
26 | 介紹 Azure 的分析

更聰明的應用程式
機器學習已幫助許多公司建置應用程式和產品,如聊天機器人,能夠在無需人力介入的情況
下為一般使用者執行特定工作。一些常見的例子包括語音助理 ( 如 Cortana),它們會主動學習,
讓我們的日常工作效率更高。
其他範例如線上遊戲,您可以輕鬆追蹤自己與全世界每一個人相比的表現。您可以看見自己
與其他玩家相對的排名,您擅長的領域,以及如何提升表現。
豐富的資料能讓您執行無數的工作,但為了執行這些工作,您需要有正確的方法和基礎結構
來處理高層次的規模調整。

摘要
本章旨在確立資料分析的重要性。同時也強調幾個理由,了解為什麼 Microsoft Azure 是實
現雲端中商業智慧功能最理想的平台。內容涵蓋部分有關巨量資料、ML 和 DataOps 的基本
概念。另外也帶您了解採用雲端資料分析的一些業務驅動因素。最後讓您從較高層次的角度,
了解擁有現代資料倉儲必備要件。
在下一章中,您將了解如何運用 Azure Synapse Analytics 和相關技術開始建置現代資料倉儲。
介紹 Azure Synapse
2
Analytics 工作區和
Synapse Studio
在前一章中,我們向您介紹了 Azure,以及 Azure 為推動建立資料倉儲解決方案所提供的平台、
工具和資源類型。
本章將著重於 Azure Synapse Analytics 工作區和 Synapse Studio 的全新整合體驗。我們將
介紹以下主題:
• Azure Synapse Analytics 和為什麼需要它
• 深入探索 Azure Synapse Analytics
• 介紹 Azure Synapse Analytics 工作區和逐步快速入門指南
• 介紹 Synapse Studio
28 | 介紹 Azure Synapse Analytics 工作區和 Synapse Studio

• 啟動 Synapse Studio 的兩種方法


• 佈建 SQL 集區、擷取資料及分析 SQL 集區中的資料
• 建立 Apache Spark 集區、擷取資料及使用 Spark 探索資料
• 在 SQL 集區和 Spark 集區來回複製資料
• 連結的資料來源
• 使用無伺服器 SQL 集區分析資料
• 與管線整合

什麼是 Azure Synapse Analytics ?


Azure Synapse Analytics 是一項不受限的分析服務,將企業資料倉儲和海量資料分析結合為
統一的體驗,以配合商業智慧和機器學習的立即需求來攝取、準備、管理和服務資料。簡言之,
Azure Synapse Analytics 是 Azure SQL 資料倉儲的全新創舉。Microsoft 將業界領先的資料
倉儲效能與功能提升到了嶄新的層次。
Azure Synapse Analytics 可讓您根據業務需求,自由選擇使用專用或無伺服器資源進行大規
模資料探索和分析。企業可透過更快、更具成效且更安全的方式讓資料發揮用處,從眾多資
料來源、資料倉儲及巨量資料分析系統將深入分析匯集在一起。
有了 Azure Synapse Analytics,所有類型的資料專業人員都可以高效地協作、管理和分析
最重要的資料,而且全都在同一項服務內進行。從 Apache Spark 整合到強大且值得信賴的
SQL 引擎,再到免程式碼資料整合和管理,Azure Synapse Analytics 是為每一位資料專業人
員量身打造。
此 外, 通 過 Azure Synapse Analytics 實 現 BI 和 機 器 學 習 易 如 反 掌。Azure Synapse
Analytics 與 Power BI 和 Azure Machine Learning 深度整合後,能大幅擴展從所有資料
探索深入分析的程度,並且讓從業人員輕鬆將機器學習模型應用到智慧型應用程式,而不
需移動任何資料。如此即可大幅縮短 BI 和機器學習專案的開發時間。有了 Azure Synapse
Analytics,您就可以將智慧徹底應用在所有最重要的資料上 ( 從 Dynamics 365 和 Office 365
到支援開放資料計劃的軟體即服務 (SaaS) 服務,然後只要按幾下,就能輕鬆共用資料。
什麼是 Azure Synapse Analytics ? |29

在下一節中,我們將說明為什麼需要 Azure Synapse Analytics,以及要運用它解決的業務挑戰。

為什麼需要 Azure Synapse Analytics ?


現今企業面臨的許多挑戰之一,就是需要管理兩種類型的分析系統:
• 資料倉儲,提供有關業務的重要深入分析
• Data Lake,透過各種分析方法提供有關客戶、產品、員工和程序且有意義的深入分析

這兩種分析系統對於企業都至關重要,而且各自獨立運作。這可能導致決策時資訊不足。同時,
企業需要全面了解所有資料的深入分析,才能維持競爭力,並且創新程序來獲得更佳的成果。
若客戶想要建置自己的端對端資料管線,則必須經過以下步驟:
1. 從各種資料來源擷取資料。
2. 將所有資料來源載入 Data Lake 中進一步處理。
3. 對各種不同的資料結構和類型進行資料清理。
4. 準備、轉換和模型化資料。
5. 透過 BI 工具和應用程式為成千上萬的使用者提供清理過的資料。

到目前為止,每個步驟都需要不同的工具,而要從這麼多種不同的工具、服務和應用程式中
選擇適合的一項,可能令人望而生畏。
有許多服務都可收集、載入、準備和處理資料。另外還有多種服務可根據開發人員選擇的語
言清理資料。有些開發人員慣用 Spark,有些想要使用 SQL,也有些想要有免程式碼環境用
來轉換資料。
即使選出了適合的工具集合,熟悉各種工具的學習過程也不那麼容易,再加上在不同平台上
以不同語言維護資料管線,後勤上有其一定的難度。在面對這一連串的問題之下,實作和維
護雲端分析平台可能是一項艱巨的任務。
30 | 介紹 Azure Synapse Analytics 工作區和 Synapse Studio

客戶的挑戰
您可能會認為,高效率資料倉儲面臨的最大挑戰,是學習如何建置管線來導入資料,或最佳
化倉儲以提升效能。然而,Microsoft 進行的一項客戶研究指出,客戶面臨的最大挑戰,是管
理不同的功能、監控跨各種運算引擎的數百條管道、保護不同的資源 ( 運算、儲存、成品 ),
以及在不需進行重大變更的情況下部署程式碼。在組織孤島、資料孤島和工具孤島之間,
幾乎不可能實作和維護雲端分析平台。
例如,想像貴公司需要想出單一安全性模型來保護所有服務,以遵循最新的內部合規性準則。
像這樣的任務一開始聽起來可能很簡單,但事實上,涉及層面相當廣。您需要快速識別什麼
是「單一安全性模型」,然後得知整個服務中的部署模型是什麼。您需要找出如何針對每一項
服務實作高可用性和災害復原。最後,您需要負起所有相關生命週期管理的責任,包括監控
這些服務確保其表現良好。將這些服務結合在一起並不容易,以往甚至需要複雜的規劃。

Azure Synapse Analytics 出手救援


Azure Synapse Analytics 解決了上述問題。如圖 2.1 所示,Azure Synapse Analytics 可讓客
戶建置端對端分析解決方案,並從單一整合的環境執行資料擷取、資料探索、資料倉儲、巨量
資料分析及機器學習任務:

圖 2.1:Azure Synapse Analytics


Azure Synapse Analytics 出手救援 |31

表 2.1 列出 Azure Synapse Analytics 提供的一些核心功能:

表 2.1:Azure Synapse Analytics 的功能和優勢

Azure Synapse Analytics 可從資料倉儲和巨量資料分析系統中的所有資料衍生並提供深入


分析,過程如閃電般迅速。如此資料專業人員就能使用熟悉的 SQL 語言,以 PB 規模查詢關
聯式和非關聯式資料庫。進階功能像是智慧工作負載管理、工作負載隔離和無限制並行處理,
則有助於最佳化關鍵任務工作負載的所有查詢效能。
Azure Synapse Analytics 充分利用 Azure SQL 資料倉儲,並藉由提供更多功能給 SQL 開發
人員、新增使用無伺服器 SQL 集區的查詢、新增機器學習支援、原生內嵌 Apache Spark、提
供協作筆記本,以及在單一服務內提供資料整合,來實現現代化。它支援不同的語言 ( 如 C#、
SQL、Scala 和 Python),這些全都透過不同的引擎提供。
32 | 介紹 Azure Synapse Analytics 工作區和 Synapse Studio

客戶使用 Azure Synapse Analytics 就能輕鬆執行商業智慧專案和機器學習。Azure Synapse


Analytics 與 Power BI 和 Azure Machine Learning 深度整合後,能大幅擴展從所有資料探
索深入分析的程度,並且將機器學習模型應用到您所有的智慧型應用程式。使用者可利用不
受限的分析服務大幅縮短 BI 和機器學習專案的專案開發時間,讓您得以將智慧徹底應用在所
有最重要的資料上 ( 從 Dynamics 365 和 Office 365 到支援開放資料計劃的 SaaS 實作,然後
只要按幾下,就能輕鬆共用資料。
這些全都透過單一體驗提供,當中納入了共用和協作資料的查詢編輯器和筆記本,以及 SQL
和 Spark 開發人員所需的資產和程式碼。
基本上,Azure Synapse Analytics 一手全包。

深入探索 Azure Synapse Analytics


現 在 您 已 了 解 發 明 Azure Synapse Analytics 的 原 因, 我 們 將 繼 續 帶 您 深 入 探 索 Azure
Synapse Analytics 提供的服務。
Azure Synapse Analytics 是一項完全受管的整合式資料分析服務,將資料倉儲、資料整合和
巨量資料處理結合在一起,縮短了獲得單一服務深入分析的時間。
對於企業來說,單一整合式資料服務的優勢在於能夠加速交付 BI、AI、機器學習、物聯網及
智慧型應用程式。
圖 2.2 說明如何使用 Azure Synapse Analytics 建置現代資料管線。在此範例中,擷取過程是
從 Blob 儲存體來源開始,然後一路進入 Azure Synapse Analytics 工作區中的 Azure Data
Lake Storage Gen2。使用 Spark 集區即可透過 Azure Data Lake Storage Gen2 和 Azure
SQL Database 從多個資料來源讀取,並進行所需的任何轉換和資料清理。最後,精心策劃的
結果會寫入 SQL 集區中,然後可用來提供給 BI 工具和應用程式:
介紹 Azure Synapse Analytics 工作區 |33

圖 2.2:使用 Azure Synapse Analytics 的現代資料管線

為了充分了解 Azure Synapse Analytics 的優勢,我們帶您進入 Azure Synapse Analytics 工


作區,並為您介紹 Synapse Studio 內的核心服務。

介紹 Azure Synapse Analytics 工作區


Azure Synapse Analytics 的核心是其工作區。工作區是頂層資源,由資料倉儲中的分析解決
方案組成。Azure Synapse Analytics 工作區可用於協作環境,並支援關聯式和巨量資料處理。
本質上來看,Azure Synapse Analytics 工作區能大幅提升整體的 Azure Synapse Analytics
體驗。
在下一節中,我們為您提供了如何佈建第一個 Azure Synapse Analytics 工作區的快速入門指
南。敬請隨時關注。

免費 Azure 帳戶
如果您想要試用本書中提到的任何技術,只需建立免費的 Azure 帳戶,就可開始著手。
34 | 介紹 Azure Synapse Analytics 工作區和 Synapse Studio

快速入門指南
1. 在 Web 瀏覽器中,登入 Azure 入口網站。
2. 在搜尋方塊中,輸入 synapse。然後從搜尋結果中選取 Services ( 服務 ) 底下的 Azure
Synapse Analytics:

圖 2.3:透過 Azure 入口網站瀏覽至 Azure Synapse Analytics

按一下 Add ( 新增 ) 建立新的 Azure Synapse Analytics 工作區,如圖 2.4 中所示:

圖 2.4:建立新的 Azure Synapse Analytics 工作區


介紹 Azure Synapse Analytics 工作區 |35

3. 在 Basics ( 基本 ) 索引標籤中,建立新的資源群組,並為工作區提供唯一的名稱,如圖 2.5


中所示。在我們的範例中,我們的資源群組將命名為 my-synapse-rg,而我們的工作區將
命名為 mysynws001。我們另外選擇了 East US ( 美國東部 ) 做為地區:

注意
如果您看見一則訊息,指出 The Synapse resource provider needs to be registered
to this subscription (Synapse 資源提供者需要註冊此訂閱 ),請到 Create Synapse
workspace ( 建立 Synapse 工作區 ) 頁面的 Subscription ( 訂閱 ) 底下按一下連結,
並依指示註冊:

圖 2.5:建立 Synapse 工作區


36 | 介紹 Azure Synapse Analytics 工作區和 Synapse Studio

4. 接下來,您需要 Azure Data Lake Storage Gen2 (mydatalakestorageg2) 帳戶 來建立 Azure


Synapse Analytics 工作區。在本快速入門指南中,我們將建立新的 mydatalakestorageg2
帳戶,如圖 2.6 中所示:

圖 2.6:建立新的 Azure Data Lake Storage Gen2 帳戶

5. 針對 File system name ( 檔案系統名稱 ),按一下 Create new ( 新建 ) 並為它命名,


如圖 2.7 中所示。在我們的範例中,我們會將它命名為 users:

圖 2.7:提供檔案系統名稱
介紹 Azure Synapse Analytics 工作區 |37

6. 完成的表單看起來會像圖 2.8 所示。 請務必勾選 Assign myself the Storage Blob Contributor
role on the Data Lake Storage Gen2 account ( 在 Data Lake Storage Gen2 帳戶上為自己
指派 Storage Blob Contributor 角色 ) 核取方塊。按一下 Next: Security ( 下一步 : 安全性 )
> 繼續進行:

圖 2.8:建立 Synapse 工作區 – Basics ( 基本 ) 索引標籤


38 | 介紹 Azure Synapse Analytics 工作區和 Synapse Studio

7. 在 Security ( 安全性 ) 索引標籤中,您可以選擇性地提供可供管理員用來存取工作區 SQL


集區的認證。如果您未提供密碼,系統將自動產生密碼。稍後可變更此密碼。現在我們先
接受預設值,並按一下 Next: Networking ( 下一步 : 網路 ) >:

圖 2.9:建立 Synapse 工作區 – Security ( 安全性 ) 索引標籤


介紹 Azure Synapse Analytics 工作區 |39

8. 在 Networking ( 網路 ) 索引標籤中,
接受預設值並按一下 Review + create ( 檢閱 + 建立 ):

圖 2.10:建立 Synapse 工作區 – Networking ( 網路 ) 索引標籤


40 | 介紹 Azure Synapse Analytics 工作區和 Synapse Studio

9. 在 Summary ( 摘要 ) 索引標籤中,對您的組態進行最後檢閱,然後按一下 Create ( 建立 ):

圖 2.11:Summary ( 摘要 ) 索引標籤
介紹 Synapse Studio |41

只需幾分鐘,您的新 Azure Synapse Analytics 工作區就準備好了。


在本節中,我們帶您了解了如何建立 Azure Synapse Analytics 工作區並開始使用 Azure
Synapse Analytics。接下來,我們將繼續來了解 Synapse Studio。

介紹 Synapse Studio
Synapse Studio 具備友善的 Web 介面,提供了整合式的工作區和開發體驗。如此讓資料工
程師得以在單一環境內執行所有必要的工作,以建置端對端分析解決方案 ( 擷取、探索、準
備、協調、視覺化 )。此外,資料工程師還可使用 SQL 或 Spark 編寫程式碼並進行偵錯。
Synapse Studio 還能與企業 CI/CD 程序整合。Synapse Studio 是資料工程師和資料科學家
共用和協作其分析解決方案的理想環境。
為 了 繼 續 這 趟 導 覽, 我 們 將 使 用 上 一 節 建 立 的 Azure Synapse Analytics 工 作 區 來 啟 動
Synapse Studio。

啟動 Synapse Studio
現在我們要使用您在上一節建立 Azure Synapse Analytics 工作區,並且在 Synapse Studio
中充分發揮它的用處。啟動 Synapse Studio 的方式有兩種:
方法 1:透過 Azure 入口網站啟動 Synapse Studio
1. 在 Azure 入口網站中,前往包含您的 Azure Synapse Analytics 工作區的資源群組。在我
們的範例中,我們的資源群組為 my-synapse-rg,而 Azure Synapse Analytics 工作區為
mysynws001。
2. 按一下 Azure Synapse Analytics 工作區,如下所示:

圖 2.12:my-synapse-rg 資源群組
42 | 介紹 Azure Synapse Analytics 工作區和 Synapse Studio

3. 從您的 Azure Synapse Analytics 工作區,按一下 Open ( 開啟 ) 啟動 Synapse Studio:

圖 2.13:啟動 Synapse Studio

此時 Synapse Studio 將會啟動 ( 請見圖 2.13)。


方法 2:透過 URL 啟動 Synapse Studio
您 也 可 以 透 過 https://web.azuresynapse.net/ 啟 動 Synapse Studio, 然 後 登 入 Azure
Synapse Analytics 工作區,如圖 2.14 中所示:

圖 2.14:選取您的 Azure Synapse Analytics 工作區以繼續

圖 2.15 顯示 Synapse Studio 首頁:

圖 2.15:Synapse Studio 首頁
介紹 Synapse Studio |43

在後續各節中,我們將帶您了解佈建專用 SQL 及區、擷取資料,以及開始探索 SQL 集區中


的資料是多麼簡單又輕鬆。

佈建專用 SQL 集區
在本節中,我們將帶您了解如何透過 Synapse Studio 在新建立的 Azure Synapse Analytics
工作區中佈建專用 SQL 集區:
1. 在 Synapse Studio 中,選取左窗格中的 Manage ( 管理 ) 中樞,然後選取 SQL pools (SQL
集區 ),再按一下 + New (+ 新建 ):

圖 2.16:建立新的 SQL 集區
44 | 介紹 Azure Synapse Analytics 工作區和 Synapse Studio

2. 輸入 SQL 集區詳細資料,如圖所示。然後,按一下 Review + create ( 檢閱 + 建立 ):

圖 2.17:建立專用 SQL 集區 – Basics ( 基本 ) 索引標籤

3. 在 Review + create ( 檢閱 + 建立 ) 索引標籤中,按一下 Create ( 建立 )。


只需幾分鐘,新的專用 SQL 集區就可使用。在我們的範例中,專用 SQL 集區會與 SQL
集區資料庫相關聯,該資料庫的名稱也是 sqlpool001。

秘訣
SQL 集區只要保持使用中狀態,就會消耗須付費的資源。為了盡可能降低成本,
您可以在不使用集區時將它暫停。

接下來,我們要將紐約計程車資料擷取到專用 SQL 集區中,並探索其功能。


介紹 Synapse Studio |45

4. 在 Synapse Studio 中,選取左窗格中 的 Develop ( 開 發 ) 中 樞, 然 後 選 取 + 和 SQL


script (SQL 指令碼 ):

圖 2.18:開發新的 SQL 指令碼

5. 連接到 sqlpool001,如圖所示:

圖 2.19:連接到 sqlpool001
46 | 介紹 Azure Synapse Analytics 工作區和 Synapse Studio

6. 在 [SQL script (SQL 指令碼 )] 窗格中,輸入完整的 SQL 指令碼 ( 如圖 2.20 中所示 ),然
後按一下 Run ( 執行 ):

圖 2.20:執行 SQL 指令碼

下列 SQL 指令碼會在我們的專用 SQL 集區中建立名為 dbo.TaxiTrip 的資料表,並將超過 280


萬列的紐約計程車資料擷取到 dbo.TaxiTrip 資料表中:
CREATE TABLE [dbo].[TaxiTrip]
(
[DateID] int NOT NULL,
[MedallionID] int NOT NULL,
[HackneyLicenseID] int NOT NULL,
[PickupTimeID] int NOT NULL,
[DropoffTimeID] int NOT NULL,
[PickupGeographyID] int NULL,
[DropoffGeographyID] int NULL,
[PickupLatitude] float NULL,
[PickupLongitude] float NULL,
[PickupLatLong] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[DropoffLatitude] float NULL,
[DropoffLongitude] float NULL,
[DropoffLatLong] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[PassengerCount] int NULL,
介紹 Synapse Studio |47

[TripDurationSeconds] int NULL,


[TripDistanceMiles] float NULL,
[PaymentType] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[FareAmount] money NULL,
[SurchargeAmount] money NULL,
[TaxAmount] money NULL,
[TipAmount] money NULL,
[TollsAmount] money NULL,
[TotalAmount] money NULL
)
WITH
(
DISTRIBUTION = ROUND_ROBIN,
CLUSTERED COLUMNSTORE INDEX
);

COPY INTO [dbo].[TaxiTrip]


FROM 'https://nytaxiblob.blob.core.windows.net/2013/Trip2013/
QID6392_20171107_05910_0.txt.gz'
WITH
(
FILE_TYPE = 'CSV',
FIELDTERMINATOR = '|',
FIELDQUOTE = '',
ROWTERMINATOR='0X0A',
COMPRESSION = 'GZIP'
)
OPTION (LABEL = 'COPY: Load taxi dataset');
在此 SQL 指令碼中,我們使用靈活的 COPY 陳述式將來自 Azure Blob 儲存體來源位置的資料,
大量載入專用 SQL 集區中。
現在我們已將資料擷取到專用 SQL 集區中,讓我們來探索資料。
48 | 介紹 Azure Synapse Analytics 工作區和 Synapse Studio

在專用 SQL 集區中探索資料


依照下列步驟在專用 SQL 集區中探索資料:
1. 在 Synapse Studio 中,選取左側窗格中的 Data ( 資料 ) 中樞。
2. 選取 sqlpool001 (SQL),然後展開 Tables ( 資料表 )。
3. 以滑鼠右鍵按一下 dbo.TaxiTrip 資料表。
4. 選取 New SQL script ( 新增 SQL 指令碼 ) | Select TOP 100 rows ( 選取前 100 列 ):

圖 2.21:產生新的 SQL 指令碼

5. 您會看到如圖 2.22 中所示的輸出:

圖 2.22:查詢結果
介紹 Synapse Studio |49

6. 嘗試將查詢取代為下列內容,並執行它。此查詢會顯示乘客人數與總行程距離和平均行程
距離的關係:
SELECT PassengerCount,
SUM(TripDistanceMiles) as TotalTripDistance,
AVG(TripDistanceMiles) as AverageTripDistance
FROM dbo.TaxiTrip
WHERE PassengerCount > 0 AND TripDistanceMiles > 0
GROUP BY PassengerCount
ORDER BY PassengerCount

圖 2.23:查詢結果
50 | 介紹 Azure Synapse Analytics 工作區和 Synapse Studio

7. 您可以快速將檢視切換為 Chart ( 圖表 ),如此就能看見以折線圖呈現結果的視覺化效果:

圖 2.24:折線圖視覺化

現在您已了解佈建專用 SQL 集區、擷取資料和探索資料有多麼容易又輕鬆,接著我們要將焦


點轉向 Azure Synapse Analytics 的另一項重要功能:Apache Spark 集區。
在後續各節中,我們將帶您了解如何在 Azure Synapse Analytics 中建立 Apache Spark 集區、
將紐約計程車資料載入 Spark 資料庫中,以及使用 Spark 和筆記本分析紐約計程車資料。

建立 Apache Spark 集區
接下來,我們將建立無伺服器的 Apache Spark 集區:
1. 在 Synapse Studio 中,選取左窗格中的 Manage ( 管理 ) 中樞,然後按一下 Analytics
pools (Analytics 集區 ) 底下的 Apache Spark pools (Apache Spark 集區 ),再按一下 +
New (+ 新建 ):
介紹 Synapse Studio |51

圖 2.25:建立新的 Apache Spark 集區

2. 輸入 Apache Spark pool (Apache Spark 集區 ) 的詳細資料,如圖所示。然後,按一下


Review + create ( 檢閱 + 建立 ):

圖 2.26:建立 Apache Spark 集區 – Basics ( 基本 ) 索引標籤

3. 在 Review + create ( 檢閱 + 建立 ) 索引標籤下,按一下 Create ( 建立 )。


52 | 介紹 Azure Synapse Analytics 工作區和 Synapse Studio

只需幾分鐘,新的 Apache Spark 集區就準備好了。接下來,我們將要了解連結的資料來源。


連結的資料來源
1. 在 Synapse Studio 中,選取左窗格中的 Data ( 資料 ) 中樞,然後按一下 + 和 Browse
gallery ( 瀏覽程式庫 ):

圖 2.27:[Browse gallery ( 瀏覽程式庫 )] 選項

2. 選取 NYC Taxi & Limousine Commission – yellow taxi trip records (NYC Taxi &
Limousine Commission – 黃色計程車行程記錄 ),然後按一下 Continue ( 繼續 ):

圖 2.28:從程式庫中選取資料集
介紹 Synapse Studio |53

3. 按一下 Add dataset ( 新增資料集 ):

圖 2.29:新增資料集

4. 在 Data ( 資料 ) 中樞的 Linked ( 已連結 ) 底下,以滑鼠右鍵按一下 nyc_tlc_yellow,


並依序選取 New notebook ( 新增筆記本 ) 和 Load to DataFrame ( 載入到 DataFrame):

圖 2.30:建立新的筆記本
54 | 介紹 Azure Synapse Analytics 工作區和 Synapse Studio

5. 新筆記本會建立並自動產生下列程式碼。按一下 Run all ( 全部執行 ):

圖 2.31:執行筆記本

您可以連結其他資料集並修改程式碼來帶入不同的結果,盡情實驗。在下一節中,您將學習
如何將 SQL 集區資料插入 Spark 資料庫。
將 SQL 集區資料插入 Spark 資料庫
在本章前段,我們已將紐約計程車資料載入名為 sqlpool001 的 SQL 集區中。讓我們用它來
示範如何從 SQL 集區中將資料擷取到名為 sparknyc 的 Spark 資料庫中:
1. 在 Synapse Studio 中,選取左窗格中的 Develop ( 開發 ) 中樞,然後選取 + 和 Notebook
( 筆記本 ):

圖 2.32:建立新的筆記本
介紹 Synapse Studio |55

2. 按一下 Add code ( 新增程式碼 ):

圖 2.33:在筆記本儲存格中新增程式碼

3. 在新筆記本程式碼儲存格中輸入下列程式碼。然後按一下 Run ( 執行 ) 按鈕:


%%spark
spark.sql("CREATE DATABASE IF NOT EXISTS sparknyc")
val df = spark.read.sqlanalytics("sqlpool001.dbo.TaxiTrip")
df.write.mode("overwrite").saveAsTable("sparknyc.taxitrip")

圖 2.34:執行 Spark (Scala) 程式碼,將 SQL 集區資料擷取到 Spark 資料庫中

注意

筆記本的預設語言是 PySpark (Python)。在程式碼第 1 行使用神奇的 %%spark,


就能夠快速將此儲存格語言切換成 Spark (Scala)。
56 | 介紹 Azure Synapse Analytics 工作區和 Synapse Studio

4. 如果您前往 Data ( 資料 ) 中樞並重新整理資料庫,就會看到我們新建立 sparknyc (Spark)


資料庫:

圖 2.35:新建立的 Spark 資料庫

現在我們已成功將 SQL 集區中的資料擷取到 Spark 資料表中,在下一節我們要來了解如何使


用 Spark 和筆記本分析資料。
使用 Spark 和筆記本分析資料
現在我們已將資料擷取到新的 sparknyc Spark 資料庫中,讓我們使用 Spark 和筆記本進行一
些資料分析:
1. 在 Synapse Studio 中,選取左窗格中的 Develop ( 開發 ) 中樞,然後選取 + 和 Notebook
( 筆記本 )。
2. 現在我們要比照先前 SQL 集區的範例,在 Spark 中執行相同的分析。我們會將結果儲存到
新的 passengerstats Spark 資料表。在新筆記本程式碼儲存格中輸入下列程式碼。然後按
一下 Run ( 執行 ) 按鈕,以筆記本預設語言 PySpark (Python) 執行程式碼:
df = spark.sql("""SELECT PassengerCount,
SUM(TripDistanceMiles) as TotalTripDistance,
AVG(TripDistanceMiles) as AverageTripDistance
FROM sparknyc.taxitrip
WHERE PassengerCount > 0 AND TripDistanceMiles > 0
GROUP BY PassengerCount
ORDER BY PassengerCount""")

display(df)
df.write.saveAsTable("sparknyc.passengerstats")
介紹 Synapse Studio |57

圖 2.36:程式碼結果

3. 如同 SQL 集區範例,我們可以快速將檢視切換成 Chart ( 圖表 ),以視覺化的方式呈現結果:

圖 2.37:折線圖視覺化

前面我們帶您了解了如何從 SQL 集區將資料擷取到 Spark 資料表。現在就來完成最後一個環


節,我們將帶您了解如何從 Spark 資料表將資料擷取到 SQL 集區中。
58 | 介紹 Azure Synapse Analytics 工作區和 Synapse Studio

將 Spark 資料表資料擷取到 SQL 集區資料表中


在 SQL 集區和 Spark 導覽之旅的最後,我們將示範如何從 passengerstats Spark 資料表將
資料載入名為 sqlpool001.dbo.PassengerStats 的 SQL 集區資料池表中:
1. 在 Synapse Studio 中, 選 取 左 窗 格 中 的 Develop ( 開 發 ) 中 樞, 然 後 按 一 下 + 和
Notebook ( 筆記本 )。
2. 在新筆記本程式碼儲存格中新增下列程式碼:
%%spark
val df = spark.sql("SELECT * FROM sparknyc.passengerstats")
df.write.sqlanalytics("sqlpool001.dbo.PassengerStats",Constants.INTERNAL)

圖 2.38:在筆記本程式碼儲存格中新增程式碼

注意

筆記本的預設語言是 PySpark (Python)。在程式碼第 1 行使用神奇的 %%spark,


就能夠快速將此儲存格語言切換成 Spark (Scala)。
介紹 Synapse Studio |59

3. 這樣一來,新的 dbo.PassengerStats 資料表連同 Spark 資料表中的所有資料就會在 SQL


集區中建立:

圖 2.39:在 SQL 集區中建立的新資料表

現在我們已成功將 Spark 資料表中的資料擷取到 SQL 集區資料表中,接著要來了解如何使用


無伺服器 SQL 集區分析資料。
使用無伺服器 SQL 集區分析資料
Azure Synapse Analytics 的另一項強大功能,就是使用無伺服器 SQL 集區分析資料。無伺
服器 SQL 集區可讓您在不需佈建資源的情況下執行 SQL 查詢。如此就能在 Azure Data Lake
Storage Gen2 中輕鬆進行探索和資料分析,而不需進行任何設定或維護基礎結構。
60 | 介紹 Azure Synapse Analytics 工作區和 Synapse Studio

現在我們就來示範,如何使用無伺服器 SQL 集區分析 Azure Blob 儲存體中的資料:


1. 在 Synapse Studio 中,選取左側窗格中的 Data ( 資料 ) 中樞。
2. 在 Linked ( 已連結 ) 底下,以滑鼠右鍵按一下 nyc_tlc_yellow | New SQL script ( 新增
SQL 指令碼 ) | Select TOP 100 rows ( 選取前 100 列 ):

圖 2.40:使用無伺服器 SQL 分析 Azure Blob 儲存體中的資料

3. 按一下 Run ( 執行 ) 查看結果。

從這個示範中,
您可看到無伺服器 SQL 集區可讓您立即執行查詢,
而不需佈建任何資源。接下來,
我們將探討如何建置資料管線及執行免程式碼資料轉換。

與管線整合
Integrate ( 整合 ) 中樞可讓您建置資料管線並執行免程式碼資料轉換。活動定義了對資料執
行的動作,如複製資料、執行筆記本或執行 SQL 指令碼。管線是一起執行任務的邏輯活動群組。
在本節中,我們將示範如何使用 Synapse Studio 整合管線和活動:
介紹 Synapse Studio |61

1. 在 Synapse Studio 中,選取左側窗格中的 Integrate ( 整合 ) 中樞。


2. 按一下 + 和 Pipeline ( 管線 ) 建立新管線:

圖 2.41:建立新的管線

3. 移至 Develop ( 開發 ) 中樞,並將現有筆記本拖曳到管線中:

圖 2.42:將現有筆記本拖曳到管線中
62 | 介紹 Azure Synapse Analytics 工作區和 Synapse Studio

4. 按一下 Add trigger ( 新增觸發 ) 和 New/Edit ( 新增 / 編輯 ):

圖 2.43:新增觸發

5. 在 Choose trigger ( 選擇觸發 )... 中,選取 New ( 新建 ):

圖 2.44:選擇觸發
介紹 Synapse Studio |63

6. 如圖所示設定觸發,然後按一下 OK ( 確定 ):

圖 2.45:設定觸發
64 | 介紹 Azure Synapse Analytics 工作區和 Synapse Studio

7. 按一下 Publish All ( 全部發佈 ) 認可變更並啟動觸發。


8. 若要立即執行管線,只要移至 Add trigger ( 新增觸發 ) 並 Trigger now ( 立即觸發 ) 即可:

圖 2.46:選擇 [Trigger now ( 立即觸發 )] 選項

如您所見,在 Azure Synapse Analytics 中建立管線的方式非常簡單,而且您可以執行強大的


資料轉換,而不需編寫任何程式碼。

Monitor ( 監控 ) 中樞
我們要帶您了解的最後一項功能是 Monitor ( 監控 ) 中樞。在這裡可以監控目前執行中的工作。
了解它如何運作的最佳方式,就是看它實際運作的情形:
1. 使用 Trigger now ( 立即觸發 ) 執行我們在上一節建立的管線。
2. 在 Synapse Studio 中,選取左窗格中的 Monitor ( 監控 ) 中樞,並按一下 Pipeline runs
( 管線執行 ):

圖 2.47:Monitor ( 監控 ) 中樞

在 Pipeline runs ( 管線執行 ) 區段中,您可以監控管線執行的進度。此外,若管線執行過程


中發生錯誤,您可以使用 Monitor ( 監控 ) 中樞來解決問題。
摘要 |65

除了管線監控之外,您還可以監控觸發、整合執行階段、Apache Spark 應用程式、SQL 請求


及資料流程偵錯。
希望您喜歡我們的 Azure Synapse Analytics 工作區和 Synapse Studio 介紹之旅。結束本章
之前,我們想要重點強調 Azure Synapse Analytics 中您可自行探索的一些進階功能:
• 使用具體化的檢視和結果集快取進行最佳化
• 工作負載重要性和工作負載區隔
• 資料列層級安全性
• 動態資料遮罩
• 運用 AutoML 整合
• SQL 預測
• CI/CD 整合

摘要
Azure Synapse Analytics 是 Azure SQL 資料倉儲的重大革新。它充分利用 Azure SQL 資料
倉儲,並藉由提供更多功能給 SQL 開發人員、新增使用無伺服器 SQL 集區的查詢、機器學
習支援、原生內嵌 Spark、協作筆記本及資料整合來實現現代化,而這些全都在單一服務內
達成。
如同您在本章中所學到的,資料工程師可在幾分鐘內佈建 Azure Synapse Analytics 工作區,
並使用 Synapse Studio 內一致、簡化且流暢的方式開始建置端對端分析解決方案。這個出色
且創新的全方位環境,對於許多資料專業人員來說就像是夢想成真。
在下一章中,我們將帶您探討 Power BI 和 Azure Machine Learning。稍後我們將會看到所有
技術的實際使用案例,了解如何整合這些技術來提供完善的端對端資料倉儲解決方案,讓企業
決策者能夠運用到即時資料上,並從中獲得有意義的深入分析。
處理和視覺化
3
資料
在前幾章中,我們為您介紹了 Azure Synapse Analytics 和 Synapse Studio。Azure Synapse
Analytics 提供許多靈活且可高度擴展的功能。Azure Synapse Analytics 的一些擴充性功能
包括:使用現代資料倉儲方式提供有意義的報告,並做為機器學習的資料來源。
使用 Azure 及 Microsoft 提供的廣大工具集來處理和視覺化資料的方式有很多種。本書將側
重於使用 Power BI 做為建立報告和儀表板的工具。Power BI 提供廣泛的產品和服務。本章
將探討在 Windows 上使用 Power BI Desktop 建立有意義的儀表板,以及使用 Power BI 工
作區裝載代管和共用發佈的報告。
本書還會為您介紹 Azure 和 Microsoft 內的人工智慧和機器學習生態系統。我們將在後續各
節中,使用 Azure Machine Learning 處理特定的機器學習平台。
這些技術與 Azure Synapse Analytics 徹底搭配運作之下,可做為從整合資料倉儲視覺化和獲
得深入分析的預設方式。
68 | 處理和視覺化資料

Power BI
Power BI 是一套工具,可讓使用者跨團隊和組織將資料視覺化並共用深入分析,或將儀表板
分析內嵌於自己的網站或應用程式中。它可支援不同的資料來源 ( 同時包含結構化和非結構化
資料類型 ),並幫助分析師和一般使用者隨需建立有關業務資料的即時儀表板和報告。這方面
的範例像是,將公司近幾個月的銷售資料視覺化,並判斷售出最多商品的城市。
Power BI 與試算表軟體 ( 如 Microsoft Excel) 不同之處在於,其設計是做為託管使用者介面,
通常是即時儀表板,使用者不需經常將檔案儲存在本機上並開啟它。有了 Power BI,您可以
利用雲端強大的能力來駕馭複雜的資料,並透過豐富的圖形或圖表來呈現,讓伺服器執行所有
運算工作,而不是您自己的電腦。想像一下,當您的資料規模從 500 MB 成長到數 GB 的情
況。大多數一般用途的電腦 ( 如記憶體數量有限的個人電腦 ) 很難載入這樣的 Excel 檔;但對
於 Power BI 來說,這就像開啟網頁一樣輕鬆,因為它是託管服務:

圖 3.1:Power BI 架構

如圖 3.1 中所示,Power BI 是由不同的元件組成,可執行不同的功能:


• Power BI Desktop:這是 Windows 桌面應用程式,常稱為編寫工具,主要用於設計
報告並對服務發佈報告。
• Power BI Service:這是受管理平台,用於將報告部署到 Web 上供組織存取。它是一項
軟體即服務 (SaaS) 應用程式,已從 Power BI for Office 365 演變成單獨的 Power BI。
Power BI |69

• Power BI 行動應用程式:這些是原生行動應用程式,可從 Power BI 中託管的工作區


存取報告。目前在 Apple iOS App Store 和 Google Play 商店皆有提供。
• Power BI 閘道:閘道是一種將外部資料同步到 Power BI 的機制。對於採用內部部署
儲存裝置的企業來說,Power BI 閘道會做為對資料來源進行查詢的機制,而不需將資
料庫傳輸到雲端。不過,Power BI 報告中託管的資料位於 Azure 雲端內。
• Power BI 報表伺服器:在內部部署案例中,Power BI 報表伺服器可讓您將 Power BI
報告託管在自己的資料中心內。只要有網路連線,這些報告仍可在不同成員之間共用。
• Power BI Embedded:Embedded 可讓您在自訂應用程式中使用白標 Power BI。它經常
會策略性地整合至現有的儀表板和後台系統中,而且只有單獨一組使用者可以存取報告。

功能和優勢
從較高層面來看,Power BI 提供了以下優勢:
• 個人化儀表板,讓分析師能夠設計出具代表性的圖形、圖表和表格外觀與風格
• 跨不同使用者協作
• 治理和安全性,確保只有經授權的使用者能夠存取儀表板
• 無記憶體或速度限制,因為它是雲端託管服務。就像使用者只是載入一個網頁一樣
• 與現有應用程式徹底整合,能建立內容豐富的客製化儀表板分析
• 不需專門技術支援,因為報告本身就淺顯易懂
• 支援進階資料服務,如 [ 提問 ] 功能、與 R 整合、區隔及族群分析

Power BI 是直覺易用的工具,經常只需要按一下或拖放,就能快速存取和視覺化資料。
Power BI Desktop 這項編寫工具配備了許多內建功能來產生分析。它非常聰明,可根據您選
擇的欄位建議視覺化模型。
70 | 處理和視覺化資料

Power BI 儀表板和報告可高度自訂,讓您得以根據自己的品牌個人化體驗。您可以選取佈景
主題、使用自訂圖表、建立標籤、插入繪圖和影像,還有其他多項功能。
與傳送附加 PowerPoint 檔案的電子郵件相較之下,Power BI 讓分析師只需共用集中式儀表
板,就能與其他公司成員進行開放式協作。您可以使用主要的 Web 瀏覽器存取報告,也可以
利用行動應用程式,這些都可從 Apple App Store 和 Google Play 商店下載。大家可以傳送
有關報告的評論和註解,並使用警示和通知加快意見交流的過程。
Power BI 在不同層面和領域展現了安全性。首先,在編寫報告時,可確保您只能存取已取得
權限的資料來源。背後的支援是由資料列層級安全性 (RLS) 提供。例如,分析師只能存取所
在區域當地的資料,確保他們無法存取其他城市或國家 / 地區的資料。一旦您準備好共用報告,
就可以迅速將它儲存到個人工作區中。您可以選擇要與組織內哪些人共用報告,或從外部租
用戶邀請使用者。
如果您希望一邊學習 Power BI、一邊從小處著手,也可以從單獨使用 Excel 檔案做為資料來
源開始進行。有時候分析師會收到資料工程師傳來的 CSV 檔案,因為資料集的規模不會太大。
在企業案例中,工程師和分析師必須處理各種資料來源和平台,以建立整合一致的儀表板。
這常會是一項挑戰,尤其是分析師無法使用資料進行探索的情況。這種情況下,結合 Power
BI 和 Azure Synapse Analytics 就會非常實用。

Power BI 和 Azure Synapse Analytics


Power BI 是非常靈活的平台,可搭配多種資料來源使用。可以是簡單如 Excel 檔案的來源、
內部部署或位於雲端的資料庫,或是資料倉儲。擁有現代資料倉儲的最佳做法之一,就是將
處理資料的任務與資料視覺化分開。Azure Synapse Analytics 的用處就在於此。
Azure Synapse Analytics 搭配使用專用 SQL 集區,就可對所有資料來源執行複雜的查詢,
並建立適用於 Power BI 的語意模型。語意資料模型是 Power BI 容易解讀的結構化資料格式,
解讀後可輕鬆進行資料視覺化。這種方式具擴展性,同時簡化了跨不同團隊管理資料的複雜性。
Power BI 和 Azure Synapse Analytics |71

功能和優勢
Power BI 與 Azure Synapse Analytics 結合可獲得許多優勢。雖然沒有一種方法能夠一體適用,
也沒有一種工具可解決所有資料問題,但 Azure Synapse Analytics 與 Power BI 結合之後,可為
您的團隊帶來健全、彈性且更容易維護的資料運作和生命週期:
• 整合資料模型:將 Azure Synapse Analytics 視為唯一事實來源,就能為所有消費者
服務的資料帶來整合資料模型,包括 Power BI。採用這種方式能讓所有人確信,資料
會儲存在已經過驗證和預先處理的資料倉儲中 (Synapse 工作區 )。這種方式非常實用,
尤其對於 Power BI 開發人員和分析師來說,這表示他們可以專注於產生有意義的報告,
而不需爭論不同的資料來源。
• 可擴充的查詢與資料轉換:Power BI 藉由 DirectQuery 提供資料查詢功能。對於小
型資料集來說非常實用。不過,當資料集變得龐大時,就會遇到一些擴充性的問題,
而如果您直接在 Power BI 中執行這些操作,將會影響您的報告效能。Azure Synapse
Analytics 可在這種情況下提供協助,透過具體化檢視和結果集快取對大規模查詢進行
效能最佳化。這些運算負荷較重的作業是在彈性的 SQL 集區叢集中執行,藉此因應調
整規模的需求。採用此方式可讓 Power BI 專注於執行資料視覺化相關的功能,而不需
擔心要處理報告所需的資料準備工作。
• 集中式治理和安全性:Power BI 附帶安全性功能,可保護產生的檔案和報告,例如利
用 Azure Active Directory (Azure AD) 確保只與群組或使用者共用特定工作區和報告。
在 Azure Synapse Analytics 的協助之下,就可透過對資料層實作資料列層級和資料行
層級安全性,進一步確保資料存取安全無虞,而非在資料模型中這樣做。在實際情況下,
資料庫操作團隊可輕鬆佈建和限制對各種資料來源的存取權,以供 Power BI 取用。
• 協作工作區:執行商業智慧功能的挑戰之一,尤其對大公司來說,就是工具、團隊和
原則之間的差異。就傳統情況來說,這些團隊溝通上有困難,但希望達到相同目標,
也就是利用資料強大的能力。Azure Synapse Analytics 為這些團隊打造了協作體驗,
讓他們全都存取同一個 Web 入口網站,也就是 Azure Synapse Studio。在大型組織
中,有些團隊可能只需要存取 Synapse Studio 的 Develop ( 開發 ) 區段,而有些只存
取 Monitor ( 監控 ) 區段。Synapse Studio 為組織的所有成員提供了整合一致的外觀
和風格,不分角色和職責。
72 | 處理和視覺化資料

在本書中,我們將使用 Power BI 從 SQL 集區在 Synapse 工作區中執行的查詢產生報告。本章


將重點討論如何在 Synapse Studio 中利用 Power BI 資料集。
雖 然 有 多 種 不 同 的 方 式 可 執 行 強 大 的 資 料 視 覺 化, 但 使 用 此 方 式 (Power BI 和 Azure
Synapse Analytics) 的主要原因在於彈性和責任劃分。這個組合有助於簡化大規模報告功能,
即使您的資料庫中有數十億資料列也不必擔心。
那麼,我們就從簡單的快速入門指南開始,進一步了解 Azure Synapse Analytics 和 Power BI
如何攜手合作。

快速入門指南 ( 資料模型化和視覺化 )
在此快速入門指南中,我們將探索如何使用 Azure Synapse Analytics 搭配 SQL 集區,從 Bing
擷取新型冠狀病毒 (COVID-19) 資料,並對 Power BI 顯示相關報告。
必要條件
為了執行此活動,您需要備妥下列各項:
• 有效的 Azure 訂閱
• Power BI Desktop ( 僅 Windows)
• Power BI Pro 授權
• Azure Synapse Analytics 工作區

我們這就開始。
整合 Power BI 與 Azure Synapse Analytics
此活動將做為整合 Azure Synapse Analytics 與 Power BI 的逐步指南。我們將運用 Azure
Synapse Analytics 強大的功能來執行查詢,如此就能讓 Power BI 視覺化資料,而不需在您
的 Power BI 環境中執行複雜的轉換:
1. 首先我們要做的事,就是在 Azure Synapse Analytics 工作區與 Power BI 工作區之間
建 立 連 接。 做 法 是, 前 往 Synapse Studio 的 Manage ( 管 理 ) 區 段。 按 一 下 Linked
services ( 連結服務 ),然後按一下 + New (+ 新建 ) 按鈕。搜尋 Power BI,如同圖 3.2 所示。
按一下 Power BI 選項,並按一下 Continue ( 繼續 ):
Power BI 和 Azure Synapse Analytics |73

圖 3.2:整合 Power BI 與 Azure Synapse Analytics

2. 填入此連結服務的 Name ( 名稱 )、Description ( 描述 )、Tenant ( 租用戶 ) 及


Workspace name ( 工作區名稱 )。按一下 Create ( 建立 ):

圖 3.3:建立連結服務
74 | 處理和視覺化資料

建立資料庫
依照下列步驟建立儲存資料的資料庫:
1. 與 Power BI 的連結服務設定完成後, 接著要建立資料庫來儲存我們將在下一節中擷取的範
例資料。前往 Synapse Studio 的 Data ( 資料 ) 區段,並選擇 Workspace ( 工作區 ) 索引
標籤。按一下 + 按鈕,然後選擇 SQL database (SQL 資料庫 ):

圖 3.4:在 Synapse Studio 中建立 SQL 資料庫

2. 選擇 Serverless ( 無伺服器 ) 選項,然後輸入資料庫名稱。按一下 Create ( 建立 ):

圖 3.5:選擇 SQL 集區類型

注意
設定 Azure Synapse Analytics 工作區時,它會自動附帶一個內建的無伺服器 SQL 集區。
Power BI 和 Azure Synapse Analytics |75

成功建立資料庫後,它現在應會出現在工作區的資料庫清單中。

圖 3.6:Synapse 工作區中已建立資料庫的清單

連結資料集
依照下列步驟連結資料集:
1. 接下來要做的是從 Bing 擷取新型冠狀病毒 (COVID-19) 資料。在建立資料庫的相同頁面
上 ( 在 Data ( 資料 ) 窗格中 ),再次按一下 + 並選擇 Browse gallery ( 瀏覽程式庫 )。
2. 從 Datasets ( 資料集 ) 索引標籤中選擇 Bing COVID-19 Data (Bing 新型冠狀病毒
(COVID-19) 資料 ),然後按一下 Continue ( 繼續 ):

圖 3.7:資料集程式庫
76 | 處理和視覺化資料

然後您會被帶往條款與條件頁面。請閱讀授權合約,確認您遵循這些資料集的合理使用原
則。另外也會顯示該檔案中某幾個資料列的預覽。按一下 Add dataset ( 新增資料集 )。
現在資料集應出現在 Azure Blob Storage | Sample Datasets (Azure Blob 儲存體 | 範例
資料集 ) 底下的 Linked data ( 連結資料 ) 索引標籤中。

圖 3.8:使用 Azure Blob 儲存體將資料集新增到 Azure Synapse Analytics

將資料傳輸到資料庫並執行查詢
取得範例資料集後,現在要做的是將該資料傳輸到稍早建立的 SQL 資料庫:
1. 以滑鼠右鍵按一下 bing-covid-19-data 資料夾,接著再按一下 New SQL script ( 新增
SQL 指令碼 ),然後選擇 Select TOP 100 rows ( 選取前 100 列 ):

圖 3.9:建立新查詢以選取前 100 列
Power BI 和 Azure Synapse Analytics |77

此時會出現預先填入的 SQL 指令碼開發工作區。我們將修改此查詢中的幾個項目。


2. 請確定 SQL 集區已選取為 Built-in ( 內建 ),並且在 [Use database ( 使用資料庫 ] 下拉
式功能表中選取適當的資料庫。Azure Synapse Analytics 工作區在建立資源時,會附帶
一個內建 SQL 集區:

圖 3.10:選擇 SQL 集區和資料庫

我們將修改查詢,以根據 Bing 新型冠狀病毒資料集中的 select 陳述式建立檢視:


-- Drop existing "Covid19View"
DROP VIEW IF EXISTS Covid19View;
GO

-- Create a View named "Covid19View"


CREATE VIEW Covid19View
AS
-- Select ALL data from the dataset however for this specific report.
-- we only want country level reports and excluding "Worldwide" and
country regions.
SELECT
*
FROM
OPENROWSET(
BULK 'https://pandemicdatalake.blob.core.windows.net/public/
curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.parquet',
FORMAT = 'parquet'
)
AS [result]
WHERE [country_region] != 'Worldwide'
And ( [admin_region_1] is NULL
Or [admin_region_1] = '' )

注意
稍後在 Power BI 的實際報告中,您可能會看到有其他漏填的國家 / 地區。這是為了簡化
練習。
78 | 處理和視覺化資料

3. 在 Properties ( 屬性 ) 區段中,選擇實用的查詢名稱與選擇性描述。您務必選擇 All rows


( 所有資料列 ) 選項:

圖 3.11:SQL 指令碼屬性

4. 按一下 Publish ( 發佈 ) 按鈕儲存指令碼。在 Windows 上,您也可以按 Ctrl + S 達到相


同目的。
5. 現在我們要來執行查詢。按一下 Run ( 執行 )。
Power BI 和 Azure Synapse Analytics |79

查詢完成後,應會顯示以下訊息:

圖 3.12:查詢執行狀態

查看檢視
讓我們查看檢視是否已在資料庫中建立。
1. 前往 Synapse Studio 的 Data ( 資料 ) 區段中的 Workspace ( 工作區 ) 索引標籤。深入您
的資料庫和檢視,查看檢視是否已建立。

圖 3.13:針對新型冠狀病毒 (COVID-19) 資料集建立的檢視


80 | 處理和視覺化資料

2. 以滑鼠右鍵按一下建立的檢視,按一下 New SQL script ( 新增 SQL 指令碼 ),然後按一


下 Select TOP 100 rows ( 選取前 100 列 ):

圖 3.14:查詢 Covid19View 的前 100 列


Power BI 和 Azure Synapse Analytics |81

3. 此時應會開啟一個新視窗。按一下 Run ( 執行 ),以執行選取查詢。此時應會在 Results


( 結果 ) 索引標籤中顯示幾列資料:

圖 3.15:執行查詢以取得前 100 列
82 | 處理和視覺化資料

建立和發佈 Power BI 報告
現在我們已在 Azure Synapse Analytics 資料庫中填入資料,接下來要在 Power BI 中建立報告:
1. 前往 Synapse Studio 的 Develop ( 開發 ) 區段,然後深入 Power BI | Your Workspace ( 您的
工作區 ) | Power BI datasets (Power BI 資料集 )。按一下 + New Power BI dataset ( 新增
Power BI 資料集 ):

圖 3.16:新增新的 Power BI 資料集

2. 此時將開啟精靈,讓您選擇資料庫。按一下 Continue ( 繼續 ):

圖 3.17:選取 Power BI 資料集的資料來源


Power BI 和 Azure Synapse Analytics |83

3. 選擇資料庫之後,精靈的下一個部分會讓您下載 Power BI 桌面檔案。按一下 Download


( 下載 ):

圖 3.18:下載連結的 Power BI 資料集

下載檔案之後,開啟 .pbids 檔案。這個檔案應會在您的 Windows 電腦上開啟 Power BI


Desktop。如果您尚未進行驗證,則會提示您選擇連接資料庫的方法:

圖 3.19:在 Power BI 中新增 Azure Synapse Analytics SQL 資料庫做為資料來源


84 | 處理和視覺化資料

驗證完成後,就會顯示 Navigator 畫面,讓您選取要擷取的資料來源。請確定已勾選儲


存資料所在的檢視。然後按下 Load ( 載入 ):

圖 3.20:將新型冠狀病毒 (COVID-19) 資料集載入 Power BI 中

接著系統會提示您選擇 Import ( 匯入 ) 或 DirectQuery 選項:

圖 3.21:選取 Power BI 連接設定


Power BI 和 Azure Synapse Analytics |85

若選擇 Import ( 匯入 ) 選項,資料將儲存在 Power BI Desktop 中。您需要執行重新整理,


該資料才會更新。如果資料規模不大且電腦有足夠的記憶體 (RAM),則偏好使用 Import
( 匯入 ) 方式。
如果您選擇 DirectQuery,則不會將資料儲存在 Power BI Desktop 中。DirectQuery
只會從資料來源建立參考,而且會在您每次更新工作區時查詢該資料。如果您的外部資料
來源較為複雜,則偏好使用 DirectQuery。
選取選項後,就會載入要新增的資料做為 Power BI 欄位。
4. 若要開始建立報告,請將更新的欄位從 Fields ( 欄位 ) 索引標籤 (Power BI 右側 ) 拖曳至
工作區。然後在 Visualizations ( 視覺效果 ) 索引標籤上選擇 Matrix ( 矩陣 ):

圖 3.22:[Visualizations ( 視覺效果 )] 索引標籤


86 | 處理和視覺化資料

5. 在 Format ( 格式 ) 區段中,移至 Subtotals ( 小計 並將 Row subtotals ( 資料列小計 ) 切換


為關閉。
此時應該會顯示日期選擇器,就像這裡所示:

圖 3.23:具有日期矩陣的 Power BI Desktop

6. 接下來我們要顯示更有意義的深入分析。前往 Visualizations ( 視覺效果 ) 區段,然後按


一下 Filled Map ( 區域分布圖 )。這樣將會在工作區中建立空地圖。將它展開以擷取工作
區的其餘部分。
將下列欄位拖放到地圖上:
• country_region
• confirmed ( 確診 )
• recovered ( 康復 )
• deaths ( 死亡 )
這樣就會建立一張已填入內容的世界地圖。
Power BI 和 Azure Synapse Analytics |87

7. 前往左側的 Date selection ( 日期選擇 ),


然後從矩陣向下切入來選擇一天。例如,
10 月 21 日。
8. 前往 map ( 地圖 ) 區段,然後將游標停留在 country ( 國家 / 地區 ) 上方。這樣應會顯示
該國家 / 地區在該日期的確診、康復和死亡個案:

圖 3.24:顯示整個國家 / 地區的新型冠狀病毒 (COVID-19) 統計資料

您可以自由探索想要實作的自訂項目。

進一步自訂後,讓我們發佈報告,如此其他人就可以看見報告。
1. 按一下 Home ( 首頁 ) 功能區頂端的 Publish ( 發佈 ) 按鈕。選擇此報告的目的地:

圖 3.25:選擇報告的目的地
88 | 處理和視覺化資料

2. 發佈後將會出現一個連結,讓您在 PowerBI.com 開啟報告。開啟連結:

圖 3.26:在 Power BI 中開啟已發佈的報告

發佈後,您就可以在 Power BI 工作區中使用它。在工作區中按一下 Share ( 共用 ) 按鈕,


就可以與您租用戶內的任何團隊成員共用此報告:

圖 3.27:在 Power BI 工作區中檢視報告


Azure 上的機器學習 |89

此報告也可在平板電腦和行動裝置上檢視:

圖 3.28:在平板電腦 / 行動裝置上檢視 Power BI 報告

恭喜您建立了 Power BI 儀表板!在本活動中,我們說明了如何使用 Synapse Studio 將資料


轉換為 Power BI 可視覺化的有意義語意模型。在下一節中,我們將探討如何使用機器學習搭
配 Azure Synapse Analytics。

Azure 上的機器學習
在 Azure 上執行機器學習的方法有許多種。Microsoft 讓所有類型的使用者更容易接觸資料
科學,並讓資料科學家提高工作效率。Microsoft 為開發人員、資料庫工程師和資料科學家提
供了一套技術,用來建立機器學習演算法。無論您在資料科學方面的熟練程度和專業知識水
準如何,都可以透過實用的 Microsoft 服務、工具或架構加速您的機器學習之旅。
圖 3.29 說明 Microsoft Azure 生態系統內的機器學習環境。您可以使用 Azure 認知服務預先
訓練的模型,並直接將其整合到您的應用程式中,而不需設置資料管線。您可以在 Azure 中
使用常用的架構,如 TensorFlow 和 Keras,無論是安裝在虛擬機器上,或是使用機器學習
工作區。您可以選擇不同的平台 ( 如 Azure Machine Learning 或 Azure Databricks) 來準備
和進行機器學習實驗:
90 | 處理和視覺化資料

圖 3.29:用於機器學習的 Microsoft Azure 功能和服務

藉由使用 Azure 驅動運算來進行機器學習分析,您就握有專門的硬體能夠加速實驗的腳步。


有了加速硬體,如快速的圖形處理單元 (GPU) 和現場可程式化邏輯閘陣列 (FPGA),您就可以
讀取數十億的資料庫表格資料列,並同時嘗試各種模型,讓您的機器學習實驗更快獲得結果。
以下各節將帶您概略了解,在 Microsoft Azure 生態系統內實作機器學習和人工智慧的主要
技術和平台。
Azure 上的機器學習 |91

ML.NET
ML.NET 是 .NET 開發人員的開放原始碼跨平台架構。藉由使用 ML.NET,您和團隊就可以
利用 .NET 生態系統內已有的技能、程式庫和架構。您可以使用 ASP.NET 建立 Web 應用程
式、使用 Xamarin 建置行動應用程式、使用 WPF 建立桌面應用程式,甚至使用 Windows
IoT 建立物聯網 (IoT)。您也可以使用 TensorFlow 和 ONNX 延伸機器學習模型建立功能。
ML.NET 為多種演算法提供現成的支援,包括情緒分析、產品推薦、物體偵測、銷售預測,
以及許多真實世界的業務案例。
對於像是迴歸和分類這類任務,都可以使用 ML.NET 進行訓練和取用。除此之外,它還支援
核心資料類型、可擴充管線、資料結構、工具支援、高等效能數學等。
ML.NET 可從 nuget.org 安裝。nuget.org 是公用存放庫,提供可下載的 .NET 套件、程式庫
及架構,讓您輕鬆新增至 .NET 專案中。

自動化機器學習
自動化機器學習 ( 自動化 ML 或 AutoML) 可讓資料專業人員在 Azure Machine Learning 支
援的 Azure Synapse Analytics 內建置免程式碼的模型。AutoML 的設計在於自動偵測最佳機
器學習模型,透過選取正確的演算法並協助調整超參數 (Hyperparameter) 以進行預測、分類
和迴歸。如果您的團隊中沒有資料科學家,這會非常實用。
AutoML 可幫助使用者 ( 開發人員、分析師,甚至資料科學家 ) 實作機器學習,而且在程式設
計語言、程式庫、架構和資料科學概念方面沒有高門檻。它可讓公司進行創新,這要歸功於
利用反覆程序加快上市時程,以及在進行實驗時利用資料科學的最佳做法。
AutoML 是在 Azure Synapse Analytics 無伺服器 Apache Spark 集區上執行,並在 Azure
Machine Learning 服務中追蹤。
92 | 處理和視覺化資料

認知服務
Azure 認知服務是一套雲端型、通用的預先訓練模型和 API,可針對特定使用案例加以利用並延
伸用於進一步訓練。舉例來說,如果您想要建立能夠理解什麼是香蕉的物體偵測 AI,那麼可能需
要提供更多資料來協助 AI 理解包含香蕉的影像。認知服務是透過 HTTP 使用,而且與平台無關,
這表示您可以使用任何程式設計語言和作業系統。認知服務分為五大類:決策、視覺、語音、
搜尋和語言。您可以使用認知服務輕鬆地將 AI 和 ML 與行動、Web、桌面,甚至 IoT 應用程式
整合。
語音服務 API 的語音轉文字和說話者辨識功能都是很好的認知服務範例。這些功能可讓您將
語音資料轉換成文字、將它翻譯成其他語言,以及辨識說話者的身分,而不需設置包含數百
萬個資料集和一連串機器學習模型實驗的機器學習工作區。
對於希望不需要太多資料科學知識就能在自己的應用程式中輕鬆整合 AI 和機器學習的人來
說,使用認知服務就是最好的方法。Microsoft 提供了非常靈活的定價選項,您只需支付使用的
內容,而且大多數服務都有免費層可供您探索。目前有預先訓練的模型可用於文字分析 ( 情緒
分析 ) 和異常偵測,預計未來將提供更多模型。
您可以在這裡深入了解認知服務。

Bot framework
Microsoft Bot Framework 可讓應用程式建置智慧機器人 ( 常用於聊天機器人 ) 以將工作流程
自動化。Bot Framework 與認知服務密切相關,如 Language Understanding Intelligence
Service (LUIS) 和 QnA Maker。QnA Maker 是一種自然語言處理 (NLP) 服務,可加速建
立對話型 AI ( 如聊天機器人 )。有了 Bot Framework,開發人員就可輕鬆建立對話 AI,透過
從表達話語和意圖的訓練進行學習。此架構還可讓開發人員輕鬆將機器人發佈到 Microsoft
Teams、Cortana 和 Slack 等頻道上。
現已有像是銀行和零售集團等大企業在第一線支援廣泛採用 Bot Framework。例如,Bank of
Beirut 使用 Bot Framework 建立 Digi Bob 聊天機器人,協助使用者申請貸款並有助於推動其他
銀行服務。若要深入了解,請在這裡閱讀此使用案例的相關資訊。
Azure 上的機器學習 |93

開發人員可以使用 Bot Framework 部署智慧型企業級機器人,這些機器人可輕鬆翻譯使用


者的查詢和訊息 ( 意圖 ),並採取有意義的行動予以回應。這些行動可能包括查詢資料來源,
或協調對系統發出的命令。您可以在這裡深入了解 Bot Framework。
Microsoft 生態系統內還有更多機器學習工具和產品,例如:
• SQL Server Machine Learning 服務
• Microsoft Machine Learning Server
• Azure Data Science Virtual Machine
• Windows ML
• Apache Spark MLlib
• Azure Notebooks
• Azure Batch
• ML Services on HDInsight
• ML on Power BI
• Azure Machine Learning for Visual Studio Code
• 對 Linux 容器或伺服器影像執行自己的 ML 架構

本書無法涵蓋此處提到的所有技術,因此我們側重於 Azure Machine Learning。如需這些服


務的詳細資訊,請造訪此連結。

Azure Machine Learning 功能和優勢


Azure Machine Learning 為不同背景和專業知識的使用者提供了各種功能和相當大的靈活
度。Azure Machine Learning 可以整合到您現有的資料管線中來執行任務,像是利用來自
Azure Data Lake 或 Azure Synapse Analytics 的資料,以及直接將模型提供給 Power BI。
您還可以使用 Azure Databricks,進一步將您進行機器學習實驗的硬體叢集自動化。
Azure Machine Learning 提 供 了 端 對 端 工 作 區 來 執 行 您 的 機 器 學 習 操 作。 有 了 Azure
Machine Learning,您就可以在機器學習筆記本中使用 AutoML、視覺化介面或軟體開發
套件 (SDK) 進行實驗。您還可以建立可在容器中執行的可攜式資料模型。此模型還可發佈到
Azure Container Instances (ACI) 中。
94 | 處理和視覺化資料

軟體開發套件 (SDK)
Azure Machine Learning 為 完 整 支 援 成 熟 框 架 的 Python SDK 提 供 服 務, 例 如 MXNet、
TensorFlow、PyTorch 及 scikit-learn。您可以使用 Jupyter Notebooks、Azure Notebooks,
甚至 Visual Studio Code 將 SDK 匯入您的實驗中。

設計師
您還可以在 Azure Machine Learning 內使用稱為「設計師」的視覺化介面 ( 只需極少編碼 )
來建立和進行實驗。這項體驗使用低程式碼 / 無程式碼方式搭配拖放工具來建立和連接實體。
這是一種直覺的方式,運用在連接資料來源和建立機器學習模型來進行訓練和提供服務。

AutoML
如前面所討論,AutoML 是一種機制,可為您建議在實驗中使用的最佳演算法。它是 Azure
Machine Learning 與生俱來的功能。您可以將耗時的工作自動化,像是資料清理,以及為
模型選擇正確的演算法。有了 AutoML,您就可以快速反覆執行許多演算法和超參數的組合,
找出獲得所需成果的最佳模型。

靈活的部署目標
Microsoft 和 Azure 不會限制您的模型部署選項。即使您要在雲端管理工作區和執行分析,
也不會被限制在只能將實驗成果部署到 Azure 中。您可以選擇使用容器將其部署到內部部署
和邊緣環境中。

加速機器學習作業 (MLOps)
在現代資料倉儲中,結合 Azure Databricks 和 Azure Machine Learning 能夠加速機器學習
作業。Azure Machine Learning 可為您提供端對端工作區,讓您能夠透過 Azure Synapse
Analytics 連接各種來源的資料、準備和訓練資料模型、將其部署至消費者 ( 如 Power BI),
然後監控並重複訓練它們以提高準確性:
Azure 上的機器學習 |95

圖 3.30:Azure Machine Learning 中的準備、實驗和部署

有了 Azure Machine Learning,您就可以使用 Azure Databricks 為您的實驗準備資料。然後


您可以使用 Jupyter Notebooks 或 Visual Studio Code 來編寫您的實驗;或者,您也可以使
用 Azure Machine Learning 內建的 Azure Notebooks 功能。然後,您將運行您的實驗,通過
利用計算機運行複雜的數據科學演算法來訓練和測試您的機器學習模型。Azure Machine
Learning 將採用 ONNX 格式建立機器學習模型,此格式可攜性高,並且可輕鬆部署到容器中,
如 Azure Container Instance。您還可以選擇在 Azure Kubernetes Services (AKS) 上執行
它,甚至還可以在支援 Docker 的邊緣裝置上執行。

注意
ONNX 模型格式可讓資料專業人員利用 Azure Synapse Analytics 將各種模型安全地引
入 Synapse 中,而不需將資料移到 Azure Synapse Analytics 安全邊界之外。

本書不會說明如何使用 Azure Databricks 做為 Azure Machine Learning 的運算叢集,


但這種
組合有其優勢存在。如果您已使用 Azure Databricks 在現代資料倉儲上產生即時分析,那麼
也可以考慮用它在 Azure Machine Learning 中進行您的機器學習實驗。您可以在這裡閱讀
更多有關於此的資訊。
96 | 處理和視覺化資料

Azure Machine Learning 和 Azure Synapse Analytics


Azure Machine Learning 和 Azure Synapse Analytics 可攜手合作,因為兩者解決不同的問
題。Azure Synapse Analytics 用於現代資料倉儲,可為分散的資料來源提供整合一致的資料
管線,且最終模型化並提供該資料給客戶消費者。而 Azure Machine Learning 則用於建立
機器學習模型,最終可供您的應用程式用來建立有意義的推論 ( 假設 )。
實體零售商店可能就是 Azure Machine Learning 和 Azure Synapse Analytics 一起使用的實
際範例。Azure Synapse Analytics 可匯集多個資料來源,如指標和 CCTV 資料 ( 非結構化 )、
NoSQL 資料庫及 SQL 資料庫,然後全部進行查詢以便為 Power BI 提供有意義的報告,例如
「比較售出商品數量與目標受眾流量」 。另一方面來看,使用 Azure Machine Learning 可進
行各種資料來源的實驗 ( 包括 Azure Synapse Analytics 所產生 ),根據客戶以往的活動以及
其餘客戶之間的相互關聯,針對來店顧客建立推薦引擎。
另外也可以結合 Azure Synapse Analytics 和 Azure Machine Learning 工作區做為連結服
務。Azure Machine Learning 連結服務可在 Azure Synapse Analytics 工作區內建立,使得
兩項技術更容易協作。

快速入門指南 (Azure Machine Learning)


在這份關於 Azure Machine Learning 的快速入門指南中,我們將探討如何在不需任何編碼的
情況下開始使用平台。我們將使用稱為 Image Classification using DenseNet 的範例,運用
Azure Machine Learning 的 [Designer ( 設計師 )] 功能建立機器學習模型的管線。

必要條件
為了執行此活動,您需要備妥下列各項:
• 有效的 Azure 訂閱
• 建立 Azure Machine Learning 工作區
Azure Machine Learning 和 Azure Synapse Analytics |97

1. 在 Azure 入口網站中,搜尋 Machine Learning 並按一下 Create ( 建立 ):

圖 3.31:建立 Azure Machine Learning 工作區

2. 完成訂閱和工作區詳細資料。

注意
在這個特別的練習中,您可以針對下列用途建立新的執行個體或使用現有執行個體:

• Azure 儲存體
• Azure Key Vault
• Application Insights
• Azure Container Registry
98 | 處理和視覺化資料

3. 按一下 Review ( 檢閱 ) + create ( 建立 ) 以建立資源:

圖 3.32:Azure Machine Learning 工作區詳細資料

4. Azure Machine Learning 資源佈建完成後,前往其 Overview ( 概觀 ) 區段並按一下


Launch studio ( 啟動 Studio):

圖 3.33:透過 [Launch studio ( 啟動 Studio)] 管理機器學習模型


Azure Machine Learning 和 Azure Synapse Analytics |99

此時會將您重新導向至 Azure Machine Learning Studio,我們將在此處建立機器學習模型。

使用 Designer ( 設計師 ) 建立機器學習模型


1. 在 Azure Machine Learning Studio 中,按一下 Designer ( 設計師 ) 分頁。我們將使用名
為 Image Classification using DenseNet 的範例管線。按一下 Image Classification using
DenseNet 圖示開始進行:

圖 3.34:使用 [Designer ( 設計師 )] 建立機器學習管線


100 | 處理和視覺化資料

此範例將在管線中建立一系列步驟,如圖 3.35 中所示:

圖 3.35:影像分類管線

總之,此管線會從動物影像資料集存放庫取得一組影像用於訓練模型。然後套用一系列步
驟和技術 ( 請參閱流程圖 ) 來訓練模型,直到模型準備好接受評分。
對模型評分是指建立測量值,了解對此模型提供新影像時模型的準確性。最後一部分是模
型評估,主要是評估此模型的效能。這項練習能讓您的模型在準確性和可靠性方面超越其
他模型。
2. 按一下頁面右上方的 Submit ( 提交 ) 按鈕。
此時會要求您指定要對此實驗使用的運算目標,
也就是您要使用的虛擬機器。
針對此練習,勾選 Create new ( 新建 ) 選項按鈕並為其命名,以建立運算目標。按一下
Save ( 儲存 )。這樣將會建立該運算目標:
Azure Machine Learning 和 Azure Synapse Analytics |101

圖 3.36:設定運算目標

注意
在 Azure Machine Learning 中,您還可以新增和設定現有的虛擬機器做為運算目標。

運算目標建立後,現在您就可以進行實驗了。嘗試再按一次 Submit ( 提交 ) 按鈕以觸發


實驗。
3. 此時會提示您選取或建立實驗名稱,如圖 3.37 中所示。在 Create new ( 新建 ) 選項中輸
入實驗名稱,準備就緒後,按一下 Submit ( 提交 ) 按鈕:

圖 3.37:建立新實驗
102 | 處理和視覺化資料

現在它會執行您的實驗,將需要一些時間來完成。您可以根據每個步驟的狀態,以視覺化
的方式查看實驗的進度:queue ( 佇列 )、not started ( 未開始 ) 或 completed ( 已完成 )。
實驗完成後,所有方塊都應以綠色反白顯示,如圖所示:

圖 3.38:動物影像實驗管線

4. 按一下 Scored Image Model ( 已評分影像模型 ) 步驟。用滑鼠右鍵按一下,並選擇


Visualize ( 視覺化 ) 選項。然後按一下 Scored dataset ( 已評分資料集 ):

圖 3.39:視覺化已評分模型
摘要 |103

結果視覺效果會顯示影像可能是一隻貓、狗或青蛙。如您所見,此模型較擅長偵測貓,其準
確性得分為 99.57%,相較之下,辨識狗的得分只有 70.01%:

圖 3.40:已評分模型視覺化結果

這項練習讓您體會到,開始使用 Azure Machine Learning 是多麼容易。您可以選擇將此模型


部署到 ACI 或 AKS,以便獲得您要測試的影像的即時推論,不過本書並未將此納入探討。千萬
別忘了在您不再需要時,清除或刪除您的資源。

摘要
在本章中,我們討論了 Azure Synapse Analytics 如何為 Power BI 提供整合一致的資料模型。
接著探討了如何使用 Power BI Desktop 建立報告。Power BI 可讓您建立內容豐富且有意義
的圖形,並從中產生業務深入分析。然後我們發佈了報告,以便跨不同媒體進行協作。
另外我們還學到,在 Azure 中有許多工具和技術可用來實作機器學習和人工智慧。我們探索
了 Azure Machine Learning,包括其功能和優勢,並且在 Azure 上執行機器學習來建立對動
物分類的模型。在下一章中,我們將探討 Azure Synapse Analytics 與相關技術的不同業務使
用案例。
商業使用案例
4
在前幾章中,您已了解 Microsoft Azure 提供的雲端規模分析和服務如何幫助企業探索深入
分析。另外還帶您認識了現代資料倉儲中加入的多項新功能。本章將帶您了解兩個真實世界
的商業使用案例,展示使用 Microsoft Azure 的高階解決方案。這些使用案例的目的在於說
明如何在 Azure 中分析即時資料,以獲得有意義的深入分析並做出業務決策。
此處使用的公司名稱為虛構,而實作示範的部分,我們使用範例資料集。然而,商業使用案例、
挑戰和實際問題都是真實發生的。它們描述了您在日常生活中可能會遇到的資料問題類型。
106 | 商業使用案例

第一個商業案例的重點在於協助公司以近乎即時的方式,從資料中獲得可付諸行動的深入分
析。第二個案例則探討,如何利用 Azure 上的資料分析來解決營運問題,並藉由改善埃及最
繁忙的機場基礎設施的使用率,為旅客提供更優質的服務。我們會先簡要討論每個使用案例
的問題和挑戰,然後探討可能的解決方案設計,以及能夠實現這些解決方案的 Azure 服務。

使用案例 1:利用 Azure Synapse Analytics 提供即時客戶深入分析


想像一家大型跨國零售公司,在澳洲、紐西蘭和日本皆有開設店面。讓我們將這家公司稱為
Coolies。該公司透過實體店面和數位線上通絡 ( 行動和 Web 應用程式 ) 銷售消費品、電子產
品和個人保養品。
Coolies 任命了一位對資料充滿熱情的新 CEO,她組成了新的資料分析團隊,並讓團隊負責
以近乎即時的方式建立和維護客戶深入分析,以推動業務決策。

問題
Coolies 就像許多其他組織一樣,嘗試自我改造成為資料導向的公司。因為有許多指標顯示,
這是正確的策略。然而,若 Coolies 要成功,就必須要解決許多問題。這些問題當中有一些
是技術性的,還有一些是文化與組織方面的問題。
Coolies 的 CEO 希望新的資料分析團隊能協助企業解答問題,藉此引導營運決策。高階主管
團隊希望利用資料解決的問題有很多。不過,為了更清楚界定此專案的範圍,Coolies 資料團
隊 ( 與 CEO 協商 ) 同意著重在下列問題:
Coolies 如何提高利潤?
更具體而言,Coolies 資料團隊將接受一項為期 20 天的挑戰,內容是執行試驗資料分析計畫
來建立模型化的方式,幫助 Coolies 提高 10% 的獲利率。
團隊一開始將著重在兩個重要層面:
• 了解客戶的購買行為以預測產品銷售量。這包括最佳化物流運作、貨架空間運用,以及
減少過期產品的浪費。
• 運用客戶、銷售和行銷資料將 Coolies 在促銷和行銷方面的支出最佳化,以適當的促
銷接觸適當的客戶。
問題 |107

為了完成這項任務,Coolies 資料團隊開始舉辦研討會,以精準調整需求和技術挑戰。與大多數
公司一樣,Coolies 目前的資料實務都是在報告過去發生的事情。目前的報告可回答像是「售出
多少產品?」和「產品 A 的營收是多少?」這類問題。然而,這與 Coolies 嘗試實現的目標
有很大的不同,也就是發掘出模式以預測 Coolies 應該銷售哪些產品,以及這些產品將銷售的
數量,並且以近乎即時的方式執行。為了實現這個目標,Coolies 資料團隊得出了結論,他們
需要解決下列挑戰。

擷取和處理新資料
Coolies 透過多種實體和數位通路與客戶互動。這些互動都會產生資料,對於 Coolies 來說很
有價值。想想看,店面結帳時的所有交易、客戶對各種廣告的反應、店面內的走道調整,以及
客戶可能累積的所有會員卡點數。每項客戶互動都會產生各種不同的資料,而 Coolies 需要
擷取這些資料。
此外,Coolies 的線上商店設有追蹤器和指標,可記錄客戶的活動及其對促銷產品的反應。
Coolies 的行動應用程式也有類似的功能,可讓 Coolies 充分了解客戶的好惡。Coolies 混合
運用 Azure Application Insights 和 Splunk 以及內部工具來記錄使用者的點擊事件、瀏覽內
容、每一頁花費的時間、將哪些產品放入購物車,以及完成結帳的訂單數量等。將這些資料
與應用程式記錄、網路監控事件及 Coolies 已知的客戶資料相互結合,就能為 Coolies 提供
強大的工具,用來預測使用趨勢和模式。
Coolies 不僅需要從實體和數位客戶互動中擷取和儲存所有資料,還需要清理、驗證、準備和
彙總這些資料。這是一項團隊以往未曾經歷過的龐大任務。團隊過去採取分批處理資料的方式,
將歷史資料載入資料倉儲當中以產生每日和每週報告。這對團隊來說相當具有挑戰性,是一
項既令人躍躍欲試,又相當艱巨的任務。

將所有資料聚集在一起
通常資料會以各種格式和形式出現。例如,購買交易是高度結構化的表格式資料,處理起來
很容易。另一方面,應用程式資料是半結構化檔案,當中列出應用程式伺服器上所發生的數
百萬個事件和事件的追蹤訊息。Coolies 需要擷取這兩種類型的資料:結構化和非結構化。
108 | 商業使用案例

當然,有趣的事情還不只這樣,社交媒體饋送是非結構化的,而且形式為客戶在 Web 上用來


書寫的自然語言。這些饋送對於 Coolies 非常有價值,因為它們會讓公司得知其客戶群提供
的實際意見回饋。然而,對於資料從業人員來說,這些鬆散的自然語言貼文饋送很難像高度
結構化的交易資料一樣,以相同格式和形式擷取並組織。
Coolies 的資料團隊不僅要面對擷取各種不同形式資料 ( 結構化、半結構化和非結構化 ) 的挑戰,
還得找出在單一位置清理和儲存所有資料的方式,以便與來自其他來源的其他形式資料結合和
相互關聯,進而探索新的深入分析。

在資料中尋找深入分析和模式
一旦所有資料擷取、清理、驗證及儲存後,Coolies 資料團隊就需要展開具有挑戰性的工作,
也就是在資料中尋找有意義的深入分析和模式。然而,這可能是個棘手的問題。若我們說的
各種不同資料集數量達到 GB ( 甚至可能 TB) 時,要如何找出這些模式?該從哪裡著手呢?
傳統的報告和統計技術不會調整規模,也無法單獨用來應付這項挑戰。傳統的程式設計形式
不是非常實用,因為程式設計師和資料從業人員本身並不知道要尋找的是什麼,又該如何找
出這些深入分析。

即時探索
Coolies 需要快速發掘出有意義的深入分析,並且在發掘出這類深入分析時,立刻對調查結果
採取行動。資料通常會隨著時間而失去其價值,而有些資料甚至在擷取後立刻失去價值。舉例
來說,想像一下 Coolies 正在進行某項特殊產品的主要促銷活動,假設是 ABC 牌飲料。這種
飲料今天在 X、Y 和 Z 商店銷售速度很快。如果 Coolies 明天才發掘出此趨勢,就沒有太大
的價值了,因為到了那時,商店 X、Y 和 Z 的貨架將會銷售一空,而客戶會很失望,因為沒
買到想要的產品,這就表示 Coolies 將喪失增加銷售量的好機會。
問題 |109

因此,Coolies 的目標是即時或近乎即時地發掘出深入分析和趨勢。Coolies 定義的近乎即時,


是比即時慢 5-10 秒的時間。這正好讓資料管線有足夠的時間處理和分析在 Coolies 中產生的
即時資料。
Coolies 的 CEO 向團隊明確表示,組織需要得知近乎即時的營運狀況資料,以及客戶對品牌
和服務的感想。她提到了 Coolies 剛決定停止銷售 A 產品的案例。作出這個決定後,客戶開
始在社交媒體平台上熱烈討論。然後,Coolies 的 CEO 提出以下問題:假如有大量 Coolies
客戶在線上提到,可能因為該決策而轉向 Coolies 的競爭對手,該怎麼辦?這個問題的答案
對 Coolies 來說是至關重要的資訊,可能進而損及其成功。CEO 的觀點是,只要能夠以近乎
即時的方式找出並獲得深入分析,然後採取行動,Coolies 就能擁有莫大的競爭優勢。
總之,Coolies 正面臨以下挑戰:
• Coolies 想要擷取和儲存來自各種不同資料來源,且可能具有高輸送量的大型資料集。
這些資料來源包括交易式資料存放區、物聯網 (IoT) 感應器、Coolies 線上商店,以及
應用程式記錄檔。
• 該公司還希望透過將多個來源的資料合併和相互關聯,以結合結構化、半結構化和非
結構化資料來建立單一資料集。
• Coolies 需要處理不同資料點的不同細微程度和品質層級。團隊需要清理、準備、轉換
和合併這麼多個資料集。
• Coolies 想要以近乎即時的方式從資料中獲得有意義的深入分析和模式。
• 最後,該公司想要調整此資料探索程序的規模,以因應業務需求。
110 | 商業使用案例

設計集思廣益
以下幾節將嘗試更明確說明需求,並構思出能夠滿足這些需求的技術解決方案。

資料擷取
對於任何資料從業人員來說,第一項任務就是尋找資料、收集資料、清理資料、驗證資料,
然後展開令人躍躍欲試的資料發掘與探索部分。以目前的案例來看,您需要定義要從中提取
資料的資料來源。您還需要了解如何從不同來源載入資料以建立單一資料集,供資料分析師
輕鬆探索和查詢。以下是這個使用案例中所需的一些來源系統,包括:
• 銷售交易:銷售交易不僅能告訴我們某一家特定商店銷售了哪些產品和產品的銷售數
量,還能指出哪些客戶購買了哪些產品。這是因為 Coolies 已有會員計畫,因此客戶
會在結帳程序中掃描其會員卡。Coolies 有兩個不同的銷售交易資料存放區:一個用於
實體店面,另一個用於 Coolies 線上商店。
• 客戶資料:Coolies 有一套客戶關係管理 (CRM) 系統可保存客戶資料。客戶資料包括
( 加上其他資料 ) 個人詳細資料 ( 姓名、年齡、地址、電話號碼 )、上次購買日期、最愛
及其他購買歷史記錄。
• 會員計畫資料:會員計畫資料儲存在不同的來源系統中,有助於 Coolies 將客戶資料
與銷售交易相互連結。
• 數位應用程式點擊串流和使用狀況資料:指出 Coolies 客戶如何回應 Coolies 應用程
式的設計和內容。
• 感應器和 IoT 資料:部分 Coolies 商店配備了數位感應器,用來了解客戶在店面內的
行為。部分商店安裝了 IoT 感應器,用來計算有多少客戶走經每一條走道以及走過的
時間點。Coolies 商店內還有測量溫度和濕度的感應器。Coolies 使用這些感應器確保
牛奶等新鮮產品保持在適當的條件下。此外,Coolies 還有以近乎即時的方式計算來客
人數的感應器。這有助於 Coolies 在尖峰時段 / 繁忙時段部署更多員工,確保服務速
度更快,避免客戶大排長龍等候。
設計集思廣益 |111

• 其他資料集:為使 Coolies 資料更豐富並賦予它另一個層面,Coolies 資料團隊正考慮


從公共資料集中提取其他資料,像是天氣資料、地理資訊系統 (GIS)/ 地圖資料、郊區
和城市概況資料,以及其他類似的資料。這些資料集可讓 Coolies 資料更豐富,並增
加更多有關客戶行為和銷售數字趨勢和模式的關聯性。以天氣為例。Coolies 可能會
發現,某些產品的銷售量可能與特定天氣條件有關,例如,夏季時冰淇淋銷售量增加。
同樣地,特定年齡群組和平均收入屬性的城市概況,可能與特定產品的銷售數字有很
強烈的相互關聯性。例如,平均年齡為 25 歲的郊區,髮型產品的銷售量較高,而平均
年齡為 45 歲的郊區,相同產品的銷售量可能少得多。

資料儲存
如前面所述,Coolies 需要從各種來源擷取資料。此外還預估目前資料集的規模將超過 400 TB,
每天平均成長 10-15 GB。這些資料集的格式也大不相同。當中有些是高度結構化,有些則是
完全非結構化。這些不同的資料集有一個共通點,就是它們全都快速成長,並且以很高的傳
輸速度抵達。為了因應 Coolies 的需求,我們需要的資料存放區是:
• 可擴展且具彈性,能隨著 Coolies 資料團隊的需求成長
• 安全且受控的平台,確保 Coolies 的資產和智慧財產權受到妥善保護
• 與其他現有系統和工具相容
• 價格合理
• 高度可用
• 支援高輸送量運作和平行處理
112 | 商業使用案例

資料科學
一旦將所有資料收集並儲存到中央資料存放區,Coolies 資料團隊將需要一個平台,用於:
• 清理、轉換和探索資料集
• 與其他業務和技術利害關係人協作,共同探索模式和趨勢
• 與人工智慧架構和執行階段整合,將機器學習演算法應用到資料集上並發掘出任何模式
• 訓練和操作可能來自先前整合成果的新機器學習模型
• 讓團隊能夠排程、執行及監控資料管線,進而實現資料轉換、清理和整合

儀表板和報告
開發資料分析解決方案可視為資料從業人員、業務利害關係人與資料本身之間的持續對話。
它需要持續不斷的調整精進和假設測試。因此,Coolies 的資料團隊必須開發和維護互動式報
告和儀表板,以便向企業傳達其工作以及資料探索程序的結果。
建立這類報告和儀表板的第一步,是建置一致、通用的資料模型,以促進整個組織的共識。

解決方案
Coolies 資 料 團 隊 決 定 使 用 Microsoft Azure 實 作 Coolies 的 分 析 解 決 方 案。 除 此 之 外,
Coolies 團隊將 Azure 在 Coolies 地區 ( 澳洲和日本 ) 的可擴充性、合規性和區域可用性列為
做出此決策的主要因素。團隊同時闡明選定的每一項 Azure 服務合乎用途的理由,我們將在
後續各節中進一步了解。
Coolies 運用精進的需求和集思廣益的想法 ( 來自前面幾節 ) 構思出解決方案架構的設計。
Coolies 資料團隊構思出了以下架構 ( 如圖 4.1 中所示 ):
解決方案 |113

圖 4.1:Coolies 解決方案架構

資料流成
圖 4.1 中的設計顯示了解決方案架構和各個元件之間的資料流程。這裏我們將依上圖所標記
( 編號 ) 說明每一個工作流程區段:
1. Coolies 需要擷取多個不同的資料集。當中有些包含結構化資料,有些則包含非結構化資
料。Coolies 將使用 Azure Synapse Analytics 的功能進行混合資料整合。如此 Coolies
就能使用週期性 (5 分鐘 ) 批次活動擷取結構化資料,並將這些資料推送至 Azure Data
Lake Storage Gen2。
2. 對於非結構化資料,Coolies 將使用 Azure 事件中樞以近乎即時的方式擷取這些資料,並將
其推送至 Azure Data Lake Storage Gen2。這樣就能將所有新資料提供給 Coolies 分析
解決方案進行處理,並且讓 Coolies 能夠以近乎即時 ( 每隔 1 分鐘 ) 的方式對資料觸發的
任何動作。非結構化資料包括來自點擊串流分析的資料 ( 有關 Coolies 數位通路使用者行
為的報告 )、社交媒體饋送 ( 來自 Twitter、Facebook 等 )、來自 Coolies 伺服器的記錄
和追蹤資訊,以及來自 IoT 感應器的任何資料。
114 | 商業使用案例

3. 所有擷取的資料最終將進到 Azure Data Lake Storage Gen2 中,並且跨組織提供所有資


料給中央中樞。
4. 一旦將非結構化資料擷取到 Azure 事件中樞內,接著就會將它推送至 Azure Data Lake
永久儲存。這是使用 Azure 事件中樞資料擷取功能來實現,此功能可讓我們快速輕鬆地
將串流資料儲存到 Azure Data Lake Storage Gen2 中。
5. Coolies 的資料將放入 Azure Data Lake Storage Gen2 中。這些資料來自不同的來源,
有不同的品質層級,以及不同的細微程度。因此,Coolies 資料團隊需要清理、準備、
驗 證 這 些 資 料 集, 並 增 加 其 豐 富 程 度。 這 項 工 作 將 使 用 Azure Synapse Analytics
的 Spark 集區來完成。Azure Synapse Analytics 提供了受管理的 Spark 叢集,如此
Coolies 資料工程師就能輕鬆連接到 Data Lake Storage 中的資料並進行探索,而不需將
資料移至任何其他系統。
6. 當 Coolies 團隊在 Azure Synapse 的 Spark 集區中清理和準備資料的同時,所有資料 ( 更新
/ 新的和歷史資料 ) 都需要合併到一個標準模型中,方便查詢和提供給企業使用者。為實現
此目的,Coolies 團隊打算使用 Azure Synapse Analytics 的資料倉儲 (SQL 集區 )。如此
Coolies 資料團隊就能統合、模型化並準備所有資料供企業使用者使用。這不僅能讓
Coolies 使用者的系統執行查詢並回答有關新到資料的問題,還能將此新資料與資料倉儲
中原有的歷史資料結合,以便在業務績效和客戶行為之間得到共識。
7. Power BI 不僅能讓 Coolies 對 Coolies 使用者發佈報告和儀表板,還能讓每個使用者使
用自助的方式並探索已發佈的資料模型,進而成為其領域中的資料分析師。Coolies 可針
對大型資料集使用複合資料模型,這是 Power BI Premium 的功能。
8. Coolies 使用 Microsoft Excel 投入了複雜的模型。有些 Coolies 資料分析師想要使用
Microsoft Excel 存取來自 Azure Synapse Analytics 的資料。這在 Microsoft excel 和
Azure Synapse Analytics 中都是現成的支援。

Azure 服務
下列各節將進一步探討圖 4.1 的解決方案設計中顯示的每一項 Azure 服務。首先將針對每一
項服務說明為什麼需要此元件,然後解釋為什麼 Azure 服務合乎 Coolies 的用途,最後會顯
示簡短的實務範例,說明實作的核心部分。
Azure 服務 |115

Azure Data Lake Storage Gen2


設計中的角色
Azure Data Lake Storage Gen2 是做為 Coolies 的中央資料存放區。如此可讓 Coolies 將來
自不同來源的大量資料聚集在一起。此外,Coolies 資料集的類型和格式差異很大 ( 結構化、
半結構化和非結構化 ),因而需要比單純表格式儲存體更強大的資料存放區,也就是 Azure
Data Lake Storage Gen2。Azure Data Lake Storage Gen2 可將無結構描述的資料儲存為
Blob,並且可處理各種不同的格式 ( 例如文字檔、影像、影片、社交媒體饋送及壓縮檔案 )。
由於能夠處理無結構搖樹的資料格式,使得 Coolies 能夠輕鬆擷取原始格式的資料,這點對
於進階分析來說至關重要,因為可以直接對原始資料進行分析,而不會因任何資料彙總而出
現任何偏差。
此外,Coolies 團隊需要為沙箱環境提供彈性的儲存體,以探索和轉換資料。Azure Data
Lake Storage Gen2 也可用於此目的。
為什麼選擇 Azure Data Lake Storage Gen2 ?
• Coolies 使 用 Azure Active Directory 進 行 存 取 管 理。Azure Data Lake Storage
Gen2 提 供 了 原 生、 現 成 的 Azure Active Directory 整 合, 可 利 用 Azure Active
Directory 做為企業管控機制來管理資料存取權。如此便降低了設計複雜性,同時提高
了安全性和合規性。
• 研究指出,Azure Synapse Analytics 比其他雲端提供者速度更快,也更便宜。
• 除了低成本之外,Azure Data Lake Storage Gen2 並未限制可儲存的資料量。這表示,
Coolies 團隊可從小處著手,付出非常少的成本,並隨著需要調整規模,而不必擔心達
到任何上限。
• Azure Data Lake Storage Gen2 原本就能與 Azure Synapse Analytics、Power BI 及
許多其他 Microsoft Azure 服務整合。這就是令 Coolies 團隊信服的理由,因為他們
已在使用 Power BI。
• 除了與 Azure Active Directory 整合之外,Azure Data Lake Storage Gen2 還提供了
Coolies 安全團隊要求的安全功能。包括資料加密 ( 待用和傳輸 )、單一登入、多重要
素驗證、細微的使用者和群組存取控制,以及藉由監控 Data Lake 上的每一項存取和
組態變更完整稽核合規性。
116 | 商業使用案例

範例實作
將資料擷取到 Azure Data Lake Storage Gen2 時,一般認為使用名稱空間和容器組織 Data
Lake 中的資料會是良好的做法。這樣不僅更容易找到資料,還有助於存取控制管理。圖 4.2
顯示簡單的 Data Lake 分區範例,其中 Data Lake 分成四個區域:登陸區域 ( 擷取 )、預備區域、
安全區域及分析沙箱:
• 登陸區域:這是所有資料 ( 敏感資料除外 ) 進入 Data Lake 後放置的地方,後續會再進
行處理、清理、彙總等。
• 預備區域:這是資料清理 / 預備的地方,準備就緒後會再提供使用。
• 分析沙箱:這個區域是資料科學家和資料工程師在處理和探索資料的同時,用來儲存
資料的沙箱。
• 安全區域:這是儲存和處理高度敏感資料的地方。將安全區域與其他區域分開,可強
化存取控制管理。此區域的敏感資料包括併購和收購資料、財務資料,以及其他可能
難以遮蓋的客戶資料,如客戶性別、年齡和種族資料 ( 如已知 ):

圖 4.2:Data Lake 儲存分區範例


Azure 服務 |117

Azure Synapse Analytics


設計中的角色
Azure Synapse 為 Coolies 帶來無與倫比的生產力並加速獲得深入分析。Coolies 團隊了解整
合體驗的價值,它能將雲端規模的資料擷取、巨量資料分析及資料倉儲結合在一起。分裂的
世界整合後,使得團隊能夠大幅縮減專案開發時間。Azure Synapse 不會將眾多服務拼接在
一起,或僅為了因應這三個核心區域之一建立單一孤立點解決方案,而是運用不受限的分析
服務將資料、資料任務和資料團隊整合在一起,從而完成所有工作。
Coolies 團 隊 原 本 考 慮 採 用 其 他 競 爭 對 手 的 服 務 和 平 台。 然 而, 在 研 究 Azure Synapse
Analytics 的功能後,Coolies 團隊開始認識到 Azure Synapse Analytics 的獨特性,因為它
是市場上唯一將巨量資料分析、資料倉儲,以及資料擷取和視覺化整合為單一平台的平台。
為什麼選擇 Azure Synapse Analytics ?
• Azure Synapse Analytics 是規模不受限的分析平台,將巨量資料分析和資料倉儲整合
在一起。它是一項完全受管的服務,且可動態擴展。這對 Coolies 來說非常有吸引力,
因為這表示要管理的基礎結構更少、更少負擔,而且這項可擴展的服務能隨著業務一
起成長。
• 研究指出,Azure Synapse Analytics 比其他雲端提供者速度更快,也更便宜。
• Azure Synapse Analytics 提供現成的 Apache Spark 執行階段,而且可透過 SQL 引擎
與它徹底整合。這對 Coolies 來說非常重要,因為這不僅意味著查詢因為執行階段的
整合而更簡化,更意味著協作更有效率,因為每個人 ( 資料分析師、資料科學家、資料
工程師等 ) 都可以使用一般的舊有 SQL 查詢資料。
• Coolies 的安全團隊有一項明確的需求,那就是明定保護其資料資產的需要。Coolies
安全團隊要求不得開放資料倉儲在 Web 上公開存取。這是 Azure Synapse Analytics
透過 Azure 虛擬網路整合提供的原生支援,其中 Azure Synapse Analytics 會部署為
Coolies 網路的一部分 ( 虛擬私人網路 )。
• Coolies 也相當欣賞 Azure Synapse Analytics 的其他安全功能。這些包括與 Azure
Active Directory 整合、活動稽核、原生資料列和資料行安全性、ExpressRoute 整合,
以及現成的威脅偵測和資料加密功能。
118 | 商業使用案例

• Coolies 的某些部分使用其他 BI 工具,如 Power BI、Tableau 和 Qlik,因此希望能確


保新資料倉儲支援這項整合。Azure Synapse Analytics 能與許多 BI 工具相容,包括
Coolies 現有的 BI 工具。
• Azure Synapse Analytics 還可隨需啟動 Apache Spark。這對 Coolies 資料團隊來說
相當實用,讓他們能夠使用相同的開放原始碼工具來處理 Azure Synapse Analytics
內的資料。如此有助於提高工作效率,因為 Spark 叢集可支援多種現成的語言和架構
(Python、R、Scala 等 )。因此,Coolies 團隊成員樂於使用他們最擅長的工具來保持
工作效率。
• 開 發、 部 署 和 管 理 資 料 倉 儲 可 能 會 是 非 常 複 雜 的 工 作。 這 正 是 Azure Synapse
Analytics 擅長的領域,它充分運用了 Microsoft 身為開發公司的豐富經驗。Coolies
對 Azure Synapse Analytics 如此感興趣的部分原因在於,它簡化了工作負載管理,
同時具備出色的開發人員生產力。Azure Synapse Analytics 是唯一提供原生 SSMS 和
SSDT 支援的雲端資料倉儲,包括用於程式碼和結構描述管理的 Visual Studio 專案,
這些對於確保開發生命週期順暢以及降低總擁有成本來說極為重要。
• 此外,Azure Synapse Analytics 提供了豐富的協作環境,能讓多名 Coolies 利害關係
人同時在同一筆記本上處理工作。如此便能大幅提高生產力,同時透過將所有團隊成
員的知識彙集在一起,推動更卓越的創新。
• 多元化有利於創新,因此 Azure Synapse Analytics 支援多種程式設計語言和架構。
Coolies 的資料科學家和資料工程師可使用 R、Python、SQL、Scala、Java 和 C# 在
Notebooks 中撰寫程式碼,而這都是因為 Azure Synapse 可支援 Apache Spark。這對
Coolies 來說尤其重要,因為一直以來都很難招聘和留住這個領域的人才。

Azure Synapse 混合式整合 ( 管線 )


設計中的角色:如同大多數其他企業一樣,Coolies 也有許多資料來源。當中有些資料來源
位於內部部署環境中,有些則位於雲端。如前面所述,Coolies 需要將所有資料集中於一處,
以便能夠結合、相互關聯、模型化和轉換這些資料集,進而探索趨勢和深入分析。這就需要
建置和管理許多資料連接器,才能將資料從 Coolies 的來源系統移至中央資料存放區 (Data
Lake)。而這正是 Azure Synapse 擅長之處,它是一項受管理服務,目的在於為所有技能等級
的使用者簡化資料整合。
Azure 服務 |119

為什麼要使用 Azure Synapse 混合式整合?


1. Azure Synapse Pipelines 提供 90 多種預先建立的資料連接器。這讓 Coolies 能夠快速
輕鬆地將來源系統連接到這個新的現代資料倉儲,而不需額外付費。這些資料連接器是由
Microsoft 建置,提供了高效率且具韌性的整合,並且利用 Microsoft Azure 網路提供高
達每秒 1.5 GB 的輸送量。這不僅為 Coolies 提供了快速的上市時程,還提供了一個平台,
能夠以最少的額外負荷協調資料移動。
2. 除了所有預先建立的資料連接器之外,Azure Synapse 還提供一個視覺化介面,讓每個人
僅需極少甚至不需任何程式碼,就能開發全方位的資料移動管線。此外,Azure Synapse
的 Visual Editor 還提供與 Git 來源控制存放庫整合的能力,能進一步提高靈活度和可維
護性。這與 Coolies 團隊不謀而合,因為該團隊在提高工作效率和開發步調的同時,減少
額外負荷。有了這項功能,就可讓 Coolies 團隊利用 Azure Synapse 在視覺化入口網站
中強大的視覺化資料轉換功能與資料爭論,同時掌控所有工作版本。
3. Azure Synapse 是完全受管理的工具,可讓 Coolies 團隊從小處著手,一開始僅投入少數
或無需投入,後續再隨需要調整規模。這也表示無需管理基礎結構,Coolies 團隊只需針
對使用的部分付費。
4. 除了其他認證之外,Azure Synapse Pipelines 還通過 ISO/IEC 27001 和 27018 認證,並且
於 25 個國家 / 地區提供,包括 Coolies 營運的澳洲和日本。這使得 Azure Synapse 對於
Coolies 來說是相當出色的服務,因為它能滿足該公司在安全性和合規性方面的所有要求。
5. Azure Synapse 提供工具來建置資料管線,使其具備隨著結構描述變遷而調整的韌性。
這表示,當 Coolies 團隊建置管線將資料從來源 A 移至來源 B 時,能夠確認即使來源 A
資料的結構描述已變更,管線仍正常運作。如此即可大幅提升 Coolies 資料管線的可靠性
和韌性。
6. 最後,使用 Azure Synapse 可為 Coolies 提供單一控制平面來管理資料移動和處理的所
有活動。
120 | 商業使用案例

範例實作
以下範例說明 Coolies 如何設定其 Azure Synapse Pipelines 從其銷售交易資料庫提取資料
( 位於 Azure SQL 伺服器 ) 並放入 Azure Data Lake Storage Gen2:
1. Azure Synapse 提 供 與 Azure Data Lake Storage Gen2 的 原 生 整 合。Coolies 可 在
Azure Synapse Pipelines 中 設 定 連 結 服 務, 藉 此 連 接 到 Azure Data Lake Storage
Gen2,如下所示:
{
"name": "CooliesAzureDLStorageLS",
"properties": {
"type": "AzureBlobFS",
"typeProperties": {
"url": "https://{accountname}.dfs.core.windows.net",
"accountkey": {
"type": "SecureString",
"value": "{accountkey}"
}
},
"connectVia": {
"referenceName": "{name of Integration Runtime}",
"type": "IntegrationRuntimeReference"
}
}
}
值得一提的是,此範例包含預留位置以替代主要組態值 ( 如 Azure 儲存體帳戶 name 和
accountKey 欄位 ),以及整合執行階段的名稱。
Azure 服務 |121

2. 在 Azure Synapse Pipelines 中建立連結服務後,我們需有 Azure 資料集來參考此連結服


務。做法如下所示:
{
"name": "CooliesAzureDataLakeSalesDataset",
"properties": {
"type": "DelimitedText",
"linkedServiceName": {
"referenceName": "CooliesAzureDLStorageLS",
"type": "LinkedServiceReference"
},
"schema": [ { optional } ],
"typeProperties": {
"location": {
"type": "AzureBlobFSLocation",
"fileSystem": "{filesystemname}",
"folderPath": "Coolies/sales"
},
"columnDelimiter": ",",
"quoteChar": "\"",
"firstRowAsHeader": true,
"compressionCodec": "gzip"
}
}
}
前述程式碼片段是利用 Azure Data Lake Storage Gen2 連結服務建立資料集。此資料
集將建立逗號分隔值 (CSV) 檔案,並將其儲存為壓縮檔案 (gzip)。
122 | 商業使用案例

3. 將 Azure SQL 資料庫設定為連結服務:


{
"name": "CooliesSalesAzureSqlDbLS",
"properties": {
"type": "AzureSqlDatabase",
"typeProperties": {
"connectionString": {
"type": "SecureString",
Azure Services | 163
"value": "Server=tcp:{servername}.
database.windows.net,1433;Database={databasename};User
ID={username}@{servername};Password={password};Trusted_
Connection=False;Encrypt=True;Connection Timeout=30"
}
},
"connectVia": {
"referenceName": "{name of Integration Runtime}",
"type": "IntegrationRuntimeReference"
}
}
}
同樣地,前述程式碼片段具有下列參數的預留位置:Azure SQL Server 名稱、SQL 資料
庫名稱、SQL Server 使用者名稱和密碼,以及整合執行階段的名稱。此外,範例僅供
示範用途;密碼應一律與程式碼分開,並儲存在 Azure Key Vault 中確保安全性。
4. 與步驟 2 類似,您需要在 Azure Synapse Pipelines 中針對 Coolies 銷售資料庫設定一個
資料集。以下程式碼片段使用 Azure SQL Database 連結服務建立資料集,該資料集參考
Coolies SQL 資料庫中的 sales_table:
{
"name": "CooliesSalesDataset",
"properties":
{
"type": "AzureSqlTable",
"linkedServiceName": {
"referenceName": "CooliesSalesAzureSqlDbLS",
"type": "LinkedServiceReference"
},
"schema": [ {optional} ],
Azure 服務 |123

"typeProperties": {
"tableName": "sales_table"
}
}
}
5. 以下程式碼片段會設定將資料從銷售 SQL 資料庫移至 Azure Data Lake 的活動。這樣將
會在 Azure Synapse Pipelines 中建立一項活動,該活動會參考我們在步驟 2 和步驟 4 中
建立兩個資料集。此活動會將 Azure SQL 銷售資料庫設定為資料移動來源,並將 Azure
Data Lake Storage Gen2 設定為資料移動活動的目的地:
{
"name": "CopyFromAzureSQLSalesDatabaseToAzureDataLake",
"type": "Copy",
"inputs": [
{
"referenceName": "CooliesSalesDataset",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "CooliesAzureDataLakeSalesDataset",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "AzureSqlSource",
"sqlReaderQuery": "SELECT * FROM SALES_TABLE"
},
"sink": {
"type": "ParquetSink",
"storeSettings":{
"type": "AzureBlobFSWriteSetting",
"copyBehavior": "PreserveHierarchy"
}
}
}
}
124 | 商業使用案例

Power BI
設計中的角色
Coolies 團隊需要將其調查結果以及一些原始資料視覺化並傳達給企業。這點至關重要,須確
保企業利害關係人參與,並快速輕鬆地獲得意見回饋。Coolies 還需要一個平台,讓使用者能
夠使用自助式報告和儀表板,並且讓 Coolies 使用者自行探索資料。
Power BI 的作用就在於此,能讓 Coolies 使用各種視覺效果和圖形將資料視覺化,同時讓業
務和非技術使用者自行處理任何報告和 / 或資料需求。
為什麼選擇 Power BI ?
Power BI 是一種商業智慧軟體即服務 (SaaS) 方案,可讓 Coolies 快速輕鬆地將其資料轉換成
互動式視覺效果和儀表板。Coolies 選擇 Power BI 的原因不僅是它的視覺化功能,更是為了
提升資料和報告的協作和自助服務,這是 Power BI 服務的核心功能。Coolies 資料團隊總結
了 Power BI 適合此用途的理由,如下所述:
• Power BI 是完全受管理的 SaaS 方案,這表示 Coolies 團隊要管理的基礎結構更少。
• Power BI 具有簡化的資料視覺化和報告功能,讓任何 Coolies 使用者都能成為資料分
析師。Power BI 中的使用者體驗是該平台的主要優勢,可讓使用者自行探索資料和互
動式儀表板。Coolies 希望這將能減少其資料團隊的額外負荷和資料請求,以及改善協
作並提高企業使用者參與度。
• Power BI 提供桌面應用程式,Coolies 使用者可用它來探索資料、清理資料和建立視
覺效果。這對於 Coolies 來說很有吸引力,因為可免費使用 Power BI 桌面應用程式,
而且不需要商業授權。此外,Power BI 桌面應用程式與 Power BI 雲端服務上的使用
者體驗非常類似,這意味著減少訓練且更容易傳遞知識。
Azure 服務 |125

• Power BI 能與 Azure Active Directory 原生整合,使得 Coolies 使用者能夠使用其現


有的身分識別。這樣可簡化部署、改善治理並提高安全性。此外,Power BI 已通過多
項合規性認證,並且在世界各地的許多地區提供,包括 Coolies 所在的澳洲。
• Coolies 明訂了品牌和促銷指導方針。這表示,所有視覺效果和儀表板都必須遵守
Coolies 的色彩樣式、最佳做法等。Coolies 認為,這樣做提高了品牌和資訊理解程度,
因為報告整齊一致,而且對使用者來說很熟悉。Power BI 提供了多項功能來支援此需
求,例如可自訂的佈景主題、可自訂的版面配置,以及其他自訂視覺效果。
• Power BI 提供與 Azure 的現成整合。如此 Coolies 就能在本機展開任何資料準備和轉
換工作,並隨需要擴展至 Azure。此外,Power BI 能與 Azure AI 服務原生整合。這
讓 Coolies 得以引入 AI 和機器學習功能,進而更快、更輕鬆地實現價值,而這些全都
來自 Power BI。
• Power BI Composite Model 讓 Coolies 能夠從多個來源擷取資料,以產生內容豐富的報
告。Composite Models 可讓 Coolies 順暢地納入多個 DirectQuery 的資料連線,或以
任何組合匯入資料連線。如此可簡化從報表到資料來源的資料連線,並有助於 Coolies
結合多個來源系統以建置複雜的資料模型,以及聯結不同資料集的資料表。此外,
使用 Power BI Premium 中 [Composite Models ( 複合模型 )] 的 [Storage Mode ( 儲存模
式 )] 功能,有助於提升效能並減少後端負載。這是因為 Power BI 能讓報告作者指定哪些
視覺效果需要 ( 或不需要 ) 後端資料來源。然後 Power BI 會從後端資料來源快取 ( 儲存 )
不需要連續更新的視覺效果,進而提升效能並減少後端系統的負載。
126 | 商業使用案例

範例實作
以下是 Coolies 儀表板範例。下列報告的目的是傳達 Coolies 在產品銷售方面各分類的表現、
暢銷產品的目前庫存、每年銷售數字,以及 Coolies 客戶的區域分佈。報告是使用 Microsoft
所提供的範例資料建置:

圖 4.3:Coolies 業務績效儀表板的範例

Azure 支援服務
除了前述所有 Azure 服務之外,Coolies 還需要一些其他服務來支援和實現此解決方案架構。
這些服務都在圖 4.1 中解決方案設計的支援服務區段中顯示。在本節中,我們將簡述每一項
Azure 服務。
Azure Automation
Coolies 擁 有 數 部 資 料 庫 伺 服 器、 測 試 機 器 及 其 他 支 援 伺 服 器。Coolies 可 使 用 Azure
Automation 將這些機器上的更新設定和安裝工作自動化。Azure Automation 能讓 Coolies
透過一致的方式管理這些伺服器,並確保使用無伺服器 Runbook 的安全性和合規性。這樣就
簡化了運營和管銷費用,讓 Coolies 團隊有時間關注更重要的探索深入分析的問題,從而增
添商業價值。
Azure 服務 |127

Azure Key Vault


每個組織都有許多加密金鑰、密碼、憑證、連線字串,以及其他需要妥善保護的敏感資
料。Coolies 充分了解保護這些敏感資訊,並以安全、井然有序的方式進行管理的這層需要。
Azure Key Vault 的設計正是在於解決這個問題,並透過於集中位置安全管理存取權、妥善保
管金鑰的方式保護所有這類敏感資料,以實現這個目的。Azure Key Vault 不僅能改善安全性
控制,還可以簡化操作工作,如憑證和金鑰輪替。
此外,Coolies 想要使用 Azure Key Vault 來消除個人和應用程式直接存取金鑰的需要。
Coolies 可使用 Azure 的受控服務身分識別,如此使用者和應用程式就可以使用金鑰和密碼,
而不必在自己的電腦上保存任何本機副本。如此便改善了 Coolies 的整體安全性態勢,同時
精簡了秘密管理工作。
Azure DevOps
Azure DevOps 為 Coolies 提供了各種工具、架構和服務來執行靈活實務,以交付其解決方案。
Azure DevOps 是一項完全受管理服務,讓 Coolies 團隊能夠:
• 使用 Azure Boards 規劃、討論和監控工作項目。Coolies 已使用靈活的實務,其中目
前實體牆用於追蹤工作項目,但 Coolies 意識到,實體牆無法隨著團隊成長而調整規模,
而且其功能有所限制。例如,Coolies 可以使用 Azure Boards 將缺陷和工作項目與程
式碼變更連結,以監控並提高程式碼品質。
• 使 用 Azure Pipelines 持 續 建 置、 測 試 和 部 署 程 式 碼 變 更。Azure Pipelines 可 推
動靈活實務,如持續整合和持續交付,進而大幅推升交付品質並加快步調。Azure
Pipelines 還可讓 Coolies 將所有推送程式碼變更所需的部署步驟自動化。這樣便減少
了額外負荷,同時提高了對新部署的信心。
• Coolies 需要一套來源控制系統來代管其程式碼和指令碼。Coolies 想要使用 Azure
Repos 來實現此目的,因為它提供了企業級的支援、無限數量的存放庫,以及協作環境,
讓開發團隊能夠在合併前討論和檢閱程式碼變更。
• Azure Test Plans 可幫助 Coolies 在合併之前驗證任何程式碼和資料變更並確認其有
效性,為 Coolies 帶來對變更的極大信心。Coolies 可以使用 Azure Test Plans 進行
手動和探索式測試服務,由於 Azure Test Plans 是 Azure DevOps 的一部分,因此
Coolies 對於案例、功能和缺陷能擁有絕佳的端對端追蹤能力。
128 | 商業使用案例

Azure Active Directory


Coolies 使用 Microsoft Office 365 進行辦公室協作,這表示 Coolies 已使用 Azure Active
Directory。Coolies 不想要管理多部身分識別伺服器,而且明白管理使用者名稱和密碼
是一項艱巨的任務,最好交給配備精良的團隊,如 Active Directory 團隊。Azure Active
Directory 整 合 了 許 多 Coolies 打 算 使 用 的 服 務, 例 如 SQL Server、Azure Synapse
Analytics、Azure Data Lake Storage 及 Power BI。這對 Coolies 來說,除了 Azure Active
Directory 別無他選,因為能夠簡單、流暢地登入所有服務,同時改善對 Coolies 資料和應用
程式的安全性控制。
Coolies 還可受益於 Azure Active Directory 的全方位身分識別保護,包括威脅偵測和回應。
整體而言,Coolies 可透過使用 Azure Active Directory 大幅減少額外負荷並提高安全性。
Azure 監視器
Coolies 認為,資料平台的可用性和效能至關重要,是獲得所有利害關係人的信心與信任的最
大關鍵。為達到此目的,Coolies 不僅需要從所有解決方案層面收集和儲存遙測資料,還需要
分析所有資料並採取行動。這就需要一項專門的服務,因為它是一項重大的挑戰,這也正是
Azure 監視器的設計目的。
Azure 監視器是一項完全受管理的服務,能讓 Coolies 輕鬆快速地從資料平台的所有元件 ( 包括
Azure 服務、虛擬機器、網路效能和其他來源 ) 收集、分析資料並採取行動。Azure 監視器提供
兩種基本的資料類型,也就是記錄和指標。Coolies 可隨時使用指標了解其服務狀態,而記錄
可幫助 Coolies 團隊分析和視覺化來自個別解決方案元件的追蹤訊息。Azure 監視器還提供
許多圖表和視覺效果,方便 Coolies 用來視覺化系統狀態,使其一目了然。最後,Coolies 可
使用 Azure 監視器觸發動作,例如在滿足特定條件時觸發警示 ( 如錯誤數超過特定閾值時,
Coolies 團隊可收到電子郵件或簡訊通知 )。

深入分析和動作
使用 Microsoft Azure,Coolies 資料團隊就能快速輕鬆地設計、建置和部署解決方案。團隊
在兩週內就發現了一些能幫助 Coolies 提高獲利率的關鍵深入分析。以下列出這些深入分析
當中的三項。
深入分析和動作 |129

減少 18% 的浪費
說明:在初始模型化過程中,Coolies 資料團隊能夠減少 18% 的浪費。目前,該組織每年損
失近 4600 萬美元,全是因為保存期限短的產品庫存過多。包括麵包和牛奶這類產品。該團隊
結合了歷史銷售資料與其他來源 ( 如天氣資料和學校行事曆 ),使其能夠更準確預測這些產品
的需求,進而大幅減少浪費。
估計商業價值:每年 828 萬美元
主要資料來源 :銷售交易 ( 線上和實體店面 )、店面資料 ( 店面地點和一段時間的庫存 )、天氣
資料、郊區概況資料、學校行事曆,以及國定例假日行事曆。
動作:Coolies 的企業利害關係人留下了非常深刻的印象,並且希望迅速部署。使用 Azure
Synapse Analytics 和 Power BI,Coolies 資料團隊就能夠快速部署解決方案供店鋪經理使用。
結果是,Coolies 店鋪經理現在擁有互動式儀表板,能夠準確預測銷售量,並且針對每一項產
品提出庫存數量的建議。
資料管線:以下是此計劃的簡化資料管線:

圖 4.4:計劃 1 ( 減少浪費 ) 的資料管線


130 | 商業使用案例

社交媒體趨勢推動銷售量增加 14%
說明:Coolies 資料團隊發展出一個假設,也就是社交媒體趨勢可以增加銷售量。團隊進行了
初步資料探索,發現這種模式確實存在。有趣的是,該團隊發現,將 Coolies 行銷活動的時
間配合社交媒體趨勢,可幫助 Coolies 提高 14% 的銷售量。
團隊在 2019 年澳洲夏季的資料中發現了一個明顯的例子。2019 年 1 月,社交媒體出現了
一次與健康飲食相關的強烈趨勢。這並不是 Coolies 所主導。有超過 450 萬名澳洲人使用
#BeHealthy 話題標記在 Twitter 和 Facebook 貼文上推文、按讚、分享或留言。巧合的是,
Coolies 展開了有關水果沙拉產品的行銷活動。團隊發現,那次行銷活動非常成功,銷售量增
加了 25% 以上,遠高於平均預期增加的 5-10% 銷售量。
估計商業價值:每年 1540 萬美元 ( 根據主打產品銷售量增加 14% 來計算 )
主要資料來源:社交媒體饋送 (Twitter、Facebook 和 Instagram)、銷售交易 ( 線上和實體店
面 )、店面資料 ( 店面地點和一段時間的庫存 ),以及行銷活動資料。
動作:與 Coolies 行銷團隊討論結果後,大家一致認為 Coolies 可透過監控並隨著社交媒體
趨勢調整促銷活動,來重現 2019 年 1 月促銷活動的盛況。Coolies 資料團隊實作了資料管線,
如圖 4.5 中所示,並將它部署為互動式即時儀表板,用來通知 Coolies 行銷團隊和店鋪經理。
總結 |131

資料管線:以下是此計劃的簡化資料管線:

圖 4.5:計劃 2 ( 資加銷售量 ) 的資料管線

總結
您已看到 Coolies ( 或任何其他組織 ) 如何利用 Microsoft Azure 以近乎即時的方式探索客戶
深入分析並增加價值。Microsoft Azure 提供了廣泛的服務用於資料管理和分析,其目的在於
簡化開發程序,同時提高品質和效能。
此外,Microsoft Azure 提供許多資料和分析服務做為完全受管理的方案,這表示 Coolies ( 和任
何其他組織 ) 能夠減少額外負荷。使用無伺服器 Azure 的另一個優勢在於,組織和團隊可從小處
著手,一開始不需大量投入,後續再隨著需求成長擴大規模。這是一種絕佳的經營方式,因為
它能降低預先投資的風險,同時減輕資料專案一開始時,大額資本支出需經過繁複核准流程的
負擔。
最後,Microsoft Azure 在網上提供了大量的文件和學習材料,其目的在於打破入門的門檻,
透過提供任何團隊或個人都能使用的免費額度,讓他們立即開始學習並建置 Azure 環境。
132 | 商業使用案例

使用案例 2:使用 Azure 上的進階分析建立智慧型機場


Najad 是埃及北部的一座大城市。這座城市的主要機場 Najad International Airport (NIA)
每年為 2500 萬名旅客提供服務,相當於每天服務 7 萬名旅客。它是埃及最繁忙的機場,每年
平均有 20 萬次航班起降。
NIA 管理階層希望透過採用 Azure 上的進階資料分析來改善容量規劃和服務品質。目標是使
用資料來解決眼前阻礙 NIA 充分利用其基礎設施和資源的營運問題。這樣一來,就能進一步
提高客戶滿意度,並且讓 NIA 能夠擴大營運以服務更多旅客和航班。
以下各節將界定出 NIA 面臨的問題,並發想出一些設計構思。最後,您將在 Microsoft
Azure 上建立一個能夠解決此問題的可能解決方案架構,並解釋為什麼 Azure 是這類解決方
案最理想的平台。

問題
為了正確界定業務問題,首先要從業務角度來思考挑戰。然後,您將探討導致機場無法進步
的技術問題。

業務挑戰
如前面所述,NIA 每年為數千萬名旅客提供服務。預計在未來 3 到 5 年內,旅客量將增加約
20%。在 2019 年,該機場因運營效率低落而蒙受超過 3 億 7 千萬美元的損失。當中包括因壅
塞和大排長龍導致航班延誤,因旅客體驗不佳導致喪失零售機會、人員配置規劃不周,以及
機場資產利用率不足的成本。
NIA 的 CIO Zara Hassan 才上任不久 ( 她到任 NIA 僅 6 個月 ),且擁有資料和商業智慧的背景。
Zara 的願景是將 NIA 這種效率極低的情況轉變成商機。她向 NIA 董事會提交了一個商業案例,
要求在進階分析進行增加小幅投資,來降低機場的整體運營成本,同時改善客戶體驗。
問題 |133

Zara 是一個有遠見的人,她明白機場要獲得成功,就必須從參考歷史報告轉向預測未來。
她希望她的團隊能幫助機場管理階層預測航班延誤,並減少此類事件發生。她認為,如果機
場管理階層能夠使用正確的工具,那麼容量規劃、資源分配和安全性都可以獲得改善。
提議的方法是使用資料和人工智慧將旅客、航班、行李、資產和其他資料集模型化,以便更
有信心地預測旅客人數和人群動向,進而使機場能夠改善運營並降低成本。
NIA 資料分析團隊所面臨的業務挑戰概括如下:
• 機場管理階層面臨的第一項主要挑戰是改善容量規劃。目前,NIA 的領導團隊是根據
假設和過往經驗做出這些決策,但這樣不一定能反映現實。到目前為止,NIA 還沒有
一種一致的資料導向方式,可用來預測某一天預期的旅客人數。準確預測預期的旅客
人數,對於容量規劃來說至關重要,例如管理人員配置程度和設備採購,以及規劃基
礎設施升級。此外,NIA 沒有能夠預測可能延誤的航班,或預測機場某一天可能需要
多少保全人員來服務旅客的解決方案。這會導致人滿為患、大排長龍,以及基礎設施
利用效率不彰的情況。據估計,光是不良的容量規劃這一項,就造成 NIA 去年損失近
1 億 6 千萬美元。再加上機場因感到需要而購買了車輛和推車等新資產,而實際上只需
要改善現有資產的利用率就能解決。
• 資源分配是 NIA 管理階層的另一個主要問題。旅客必須在機場大排長龍等待,無論是
在海關或是在航空公司報到櫃檯都一樣。這些長時間等待大多是由於 NIA 在機場各區
域的人力分配不周所導致。NIA 的管理階層希望改善資源分配,進而提高客戶滿意度。
• 機場的零售和免稅商店佔機場收入相當大的一部分。NIA 有許多大型看板,他們利用
客戶資訊偶爾提供一些促銷活動。NIA 管理階層希望提高這些機場零售商店的客戶互
動,並最終增加商機。
134 | 商業使用案例

• 客戶服務有一大部分是在客戶需要的時候,向他們提供所需資訊。穿梭於機場內可說
是相當累人的經驗,而當旅客快遲到,或是航班延誤或取消時,也會感到壓力。因此,
NIA 需要以近乎即時的方式更新航班狀態 / 延誤。這就需要 NIA 管理階層思考出既有
創造性又創新的方式,在客戶需要時提供相關資訊。如此將能減少客戶的困擾和壓力,
並改善整體客戶服務。
• 從長遠來看,NIA 需要進行基礎設施大修。這樣會解決擁塞問題,因為過去曾因為壅
塞而發生輕微事故,使機場蒙受損失,同時也對客戶體驗產生負面影響。然而,NIA
希望能透過妥善運用資源做為近期的短期解決方案,藉此改善旅客動線並減少壅塞情
況。當太多人被迫行經狹小的廳堂和 / 或走道,尤其是有老人、嬰兒和身障人士的情
況下,壅塞就會阻礙旅客的動線,並造成安全隱憂。這種情況會造成安全事故,而這
些安全警示和事故都會使機場蒙受損失、危及旅客的生命安全,並且對客戶體驗產生
負面影響。機場希望改善旅客動線以減少壅塞並提高安全性。

現在您已知道 NIA 希望解決的業務主要痛點,那麼接下來您將需要考量的是技術挑戰,如此


才能開始設計解決方案。

技術挑戰
真相不只一種:NIA 的 CIO 嘗試解決的一個主要問題,就是 NIA 目前沒有單一資料來源。今天,
機場仍依賴來自一些舊有內部系統的報告,以及合作夥伴的報告。這些報告通常涵蓋前一天
和前一週營運方面的資料,而且有些數字相互矛盾。例如,航班資料目前由個別承運公司持有。
NIA 擁有超過 35 家航空公司,每家都有自己的系統,而且使用不同的術語。這讓 NIA 管理階
層很難及時獲得可信的報告,更不用說是資料導向的營運。
緩慢取得資料和報告:由於 NIA 無法控制航班和貨運資料,因此只能依賴合作夥伴產生、彙總
和傳送運營報告。這些報告通常慢了數天或數週。這樣會大幅降低組織對這些報告產生的深
入分析採取行動的能力,並迫使 NIA 對於營運永遠只能被動反應,而無法提前規劃。例如,
如果機場管理階層收到一份報告,當中指出昨天有大排長龍的情況導致航班延誤,機場管理
階層無法改變此情況,因為那已是過去發生的事情。及時獲得這些資料,對於 NIA 和幾乎所
有其他組織來說,都是至關重要的。
問題 |135

資料可用性和取得:創新需要探索可能性和實驗各種選擇。在資料方面,這需要 NIA 不斷探


索航班和旅客資料、增加其豐富程度,並且與外部資料來源相互關聯。不幸的是,NIA 目前
仍無法做到上述任何一件事,因為資料位於機場無法控制的許多孤島系統中。
可擴展性:NIA 目前擁有託管於虛擬資料中心的 SQL 資料倉儲。管理團隊一直不願意投資這
個資料倉儲,因為它並未保存全部的資料。這使得目前的資料倉儲過時,因為它無助於企業
找出機場需要的深入分析。此外,目前這個 SQL 資料倉儲沒有能力擷取和 / 或保存 NIA 可
收集的所有資料。
安全性:NIA 訂定了明確而嚴格的政策來保護其資料和所有客戶資料。機場必須通過 ISO/
IEC 27001 和 ISO/IEC 27018 認證,以確保採取適當的安全措施來保護機場、其供應商、客戶
和所有利害關係人。NIA 需保證任何可能的解決方案都納入這些安全性需求。
資料可維護性:資料必須在適當時機提供給相關使用者,才是實用的資料。NIA 目前對旅客
發佈須知和警報的方式,是使用語音廣播以及在機場內少數幾處設置的少數幾台大型監視器。
這是效率非常低的做法,因為它會產生噪音,並且並未考慮到使用者是誰,或是使用者想要
知道什麼樣的內容。NIA 現在承認他們得徹底改頭換面,不僅需要提升資料和報告的效率,
還需要改善將這些報告提供給使用者的方式。
基於這些需求,NIA 的商業智慧團隊和 Zara 同意將問題陳述定義如下:
NIA 每年因運營效率低落損失超過 3 億 5 千萬美元,其中包括大排長龍、人員配置不周,以及
機場資產利用率不足。NIA 商業智慧團隊將致力於提供資料分析工具 ( 儀表板、報告和應用程式 ),
幫助企業最佳化營運並改善效率不彰的情況。
136 | 商業使用案例

設計集思廣益
在定義問題並闡明業務和技術挑戰後,下面幾節將幫助您集思廣益,提出一些設計構思,
為 NIA 設計出解決方案。

資料來源
資料是所有分析解決方案的核心。因此,您首先需要思考 NIA 可能需要的不同類型資料。
接著您需要思考能將這些資料彙集在一起的設計。NIA 需要從以下來源收集資料:
• 海關資料:海關資料保存有關旅客及其報關資訊,無論他們是要入境或離境。目前,
海關資料室由外部系統保存。然而,機場可以提取這些資料並整合到自己的系統中。
目前與海關資料系統整合的機制,是定期將檔案傾印到檔案伺服器。NIA 可以使用此
機制將海關資料提取到其新平台。
• 航空公司 / 航班資料:目前,個別航空公司系統都保存旅客資料、其行程、辦理登機
手續時間,以及其他相關詳細資料。雖然這些資料是由航空公司系統保存,但機場可
以使用整合 API 與這些系統整合。這項特定的整合實作會因各航空公司而異,但機場
需要近乎即時地獲得這些資料。
• 停車系統資料:機場的所有停車設施都有感應器,可以計算進出的車輛數。停車系統
也會指出,在任一特定點有多少個停車位空出及其位置。這些資料將需要與其他來源
一起擷取。
• IoT 和影片串流:NIA 在整個場站架設了許多交通監控攝影機。這些攝影機會傳送即時
影片串流,供控制室用來指揮資源並調整運作程序,以應對交通狀況。機場還在登機
口附近安裝了 IoT 感應器,以指出每個登機口的狀態。另外還有一些感應器用來監控
機場的人群分佈情形。這些來源 (IoT 和攝影機 ) 的資料都可用於即時分析,以便在出
現交通問題時為 NIA 管理階層提供可付諸行動的深入分析。
• 行李系統資料:機場有一套內部系統,用來管理所有行李資料。包括哪些行李已到達、
來自哪個航班,以及現在的位置。機場也會物流公司提供服務,每天會接待多架貨機。
收集和分析所有相關資料非常重要,才能為這些物流公司提供貨運管理服務。
設計集思廣益 |137

• 社交媒體饋送:為了提供良好的客戶服務,NIA 必須分析旅客情緒和意見回饋,因為
旅客預期會使用社交媒體平台來分享他們的經驗。這有助於 NIA 改進其服務並立即解
決任何相關問題。
• 其他資料來源:如使用案例 1 中所討論,資料分析中常見的做法是利用其他外部資料
來源增加現有資料集的豐富程度,進而為所找出的任何趨勢或模式提供更多關聯性。
對於機場運營尤其如此,因為天氣資料、假期季節及其他這類因素可能會對機場運營
產生重大影響。NIA 需要擷取許多外部資料來源,以補充本身的運營資料。

資料儲存
機場估計其現有資料量接近 310 TB,還不包括需要收集和儲存的所有合作夥伴資料。再加上,
機場打算擷取攝影機串流及社交媒體饋送。根據歷史數字來看,每天可能會額外增加 15 GB
資料量。這就需要可高度擴展的資料儲存服務,能夠彈性適應快速增加的資料量。為了因應
這項需求,合理的方式是使用雲端型服務 ( 如 Azure Data Lake Storage),以確保可擴展的彈
性,並且能夠儲存各種不同格式的資料。

資料擷取
為確保能及時向機場工作人員和客戶提供資料,就需要快速有效地從內部和外部來源擷取資
料。根據前面討論過的資料來源,解決方案需要能夠因應多種形式的資料擷取。這包括載入
檔案傾印、處理來自社交媒體和監控攝影機的即時資料串流,以及呼叫外部 API 來提取資料。
NIA 的資料團隊可以建置自己的整合和擷取解決方案,不過可能所費不貲,而且需要相當長
的開發時間,或是使用雲端型資料擷取和協調工具,如 Azure Data Factory (ADF)。ADF 藉
由提供 80 多種預先建置的資料連接器簡化資料擷取程序,這些連接器可用來整合各種不同的
來源系統,例如 SQL 資料庫、Blob 儲存體和一般檔案。
138 | 商業使用案例

安全性和存取控制
解決方案需要為 NIA 管理階層提供正確的安全控制,確保資料安全無虞且受到保護。想當然,
機場肯定可列出一長串需要存取資料的利害關係人,包括機場工作人員、保全承包商、機組
人員、旅客及合作夥伴。因此,解決方案需要讓 NIA 能夠提供資料列層級的安全性,確保使
用者只能存取自己的資料。這就需要有一套精細的存取控制管理系統,建置於選定的平台內,
讓 NIA 商業智慧團隊不需花太多時間來擔憂安全性。NIA 商業智慧團隊的重點應放在找出有
助於機場管理的深入分析。

探索模式和深入分析
Zara 的策略重點在於,賦予企業做出明智決策的能力。這種情報一般認為是透過探索和發掘
資料中的趨勢和模式而獲得。這裡的主要挑戰在於,要在哪裡以及如何建置這些機器學習模
型。建置這類模型需要使用許多大型資料集和彈性的運算資源集區。該團隊預先意識到這項
挑戰,並期望使用受管理的 Apache Spark 叢集來增強資料工程師的能力。Azure Synapse
Analytics 的可擴展性、安全性,以及擁有廣泛的工具和架構支援,為團隊留下了深刻的印象。

解決方案
NIA 的 CIO Zara 在商業智慧團隊的協助下,同意使用 Microsoft Azure 做為雲端提供者來建
置新的解決方案。以下總結他們的推理。

為什麼 NIA 要選擇 Azure ?


• NIA 已使用多項 Microsoft 技術,像是 Windows 10、Office 365 及其他工具。與任
何其他雲端提供者相較之下,Azure 能與這些服務進行更有效的原生整合。因此使
用 Azure 非常理想。此外,NIA 非常積極希望利用開放資料計劃 (ODI),該計劃在單
一資料存放區內結合了行為、交易、財務及營運資料,使得組織能夠交付出色的業務
深入分析。該計劃簡化了在整個組織內建立通用資料模型的工作,並且是與 Adobe、
Microsoft 和 SAP 共同開發。
• 使用 Azure 即表示,NIA 可以繼續使用相同的集中式身分識別伺服器,這是使用
Azure Active Directory for Office 365 進行管理。這也表示,在建立和管理新的使用
者帳戶時,NIA 能擁有更高的安全性且額外負荷更少。
解決方案 |139

• Azure 擁有比其他主要雲端提供者更多座區域資料中心。這表示 Azure 可以為 NIA 提


供更高的韌性和服務可用性。除此之外,Azure 是唯一在非洲擁有區域資料中心的雲
端提供者,而非洲是 NIA 所在地。這使得 Azure 成為最理想的選擇,因為它滿足了所
有需求。
• NIA 商業智慧團隊發現,使用 Azure 比使用其他雲端提供者更具成本效益。Azure
Synapse Analytics 比 AWS 或 Google 服務最多便宜 14 倍,如第一個使用案例中所
述。此外,Azure 還能提供使用預留虛擬機器執行個體和運算執行個體的能力,進而
提供更大的折扣。另外,利用與 Microsoft 現有的企業合約,能讓 NIA 進一步獲得所
有 Azure 服務零售價的折扣。因此,無論選擇任何其他雲端提供者,都很難擁有這些
優勢。
• NIA 同時認為,Microsoft 在開發人員技術和開發人員體驗方面的追蹤記錄是 Azure
的一大優勢。Microsoft 身為一家軟體開發公司,在這個領域納入其豐富的智慧財產權,
藉此提供最佳的開發人員體驗。這表示,NIA 在使用 Azure 的同時,能夠擁有良好的
開發和部署體驗。
• Azure 已通過 30 多項合規性認證,包括 ISO/IEC 27001 和 ISO/IEC 27018,這些也
是 NIA 所需。再加上,Azure 業務模式並非以使用或銷售客戶資料為基礎,那是其他
雲端提供者的業務模式。這對 NIA 及其董事會來說是更大的保證,也就是他們的資料
和客戶資料會受到妥善保護。
• NIA 還希望使用 Azure Stack,它為機場提供了在內部部署和雲端順暢地代管應用程式
和服務的能力,這是透過使用 Azure 和 Azure Stack 所支援的相同基本基礎結構而得
以實現。
• 最後,NIA 希望能夠選擇 PaaS、SaaS 和開放原始碼工具的組合。Azure 能實現 NIA
的這個願望,提供絕佳的 PaaS 和 SaaS 服務 ( 如 Azure Data Lake、ADF 及其他服務 )
供其選擇,同時支援原生的開放原始碼服務整合,如 Azure Synapse Analytics。
140 | 商業使用案例

解決方案架構
現在,BI 團隊已修改了細部需求,並選擇了雲端平台,接下來就要構思一項安全且可擴展的
設計。NIA 商業智慧團隊決定採用下列解決方案架構:

圖 4.6:NIA 的解決方案架構

圖 4.6 中的設計顯示了解決方案架構和各個元件之間的資料流程。這裡我們將依圖中所標記
( 編號 ) 說明每一個工作流程區段:
1. 結構化資料 ( 如航空公司資料、海關資料及行李資料 ) 是使用 Azure Data Factory 擷取。
包括其他資料來源,如停車系統的資料和天氣資料。ADF 為 NIA 提供了設定整合執行階
段的能力,可做為閘道從 Azure 內部用來連接到 NIA 的內部部署資料來源。
2. 所有非結構化資料,包括 IoT 感應器資料、交通影片串流及社交媒體饋送,都將使用
Azure 事件中樞擷取,當中提供了直接擷取 Azure Data Lake Storage Gen2 資料的功能。
解決方案架構 |141

3. Azure Data Factory 會將擷取的結構化資料推送至 Azure Data Lake Storage Gen2 進


行儲存。
4. NIA 資料團隊將採用 Azure 事件中樞來擷取資料串流,並輕鬆快速地擷取 Azure Data
Lake Storage Gen2 中的擷取資料。該團隊利用 Azure 事件中樞的資料擷取功能將資料
儲存到 Data Lake。
5. 接著 NIA 資料工程師可使用筆記型電腦透過 Azure Synapse Analytics 上的 Apache
Sparks 執行階段讀取、清理、轉換和模型化資料。
6. 接著會將清理過可供取用的資料從 Azure Synapse 推送至 Azure Cosmos DB。這包括最
新的航班資料和行李資料。如此一來,機場應用程式和 API 就可以直接從 Cosmos DB 提
取這些資料,以便為旅客和工作人員提供服務。
7. 另外也會設定 Power BI 直接從 Azure Synapse 讀取更廣泛的資料集。舉例來說,利用
此機制推送的資料包括將交通影片串流解碼後,建立人群熱度圖的結果。
8. Azure Machine Learning 用 於 管 理 機 器 學 習 模 型、 資 料 集、 實 驗 及 新 的 模 型 影 像。
Azure Machine Learning 能與 Azure Synapse Analytics 原生整合。
9. Azure Machine Learning 用 於 訓 練 和 建 置 機 器 學 習 模 型。 產 生 的 模 型 會 在 Azure
Container Registry 中儲存為 Docker 影像。Docker 影像通常做為封裝機器學習模型與
所有相依項目 ( 程式庫、原始程式碼及組態檔 ) 的一種方式,從而產生單一可部署套件。
這可改善開發生命週期並減少部署錯誤。
10. Azure Kubernetes Service 經設定後,其部署會從 Azure Container Registry 取得新
的機器學習模型影像,並將這些模型做為 Kubernetes pod 執行。這樣一來,機器學習模
型就能藉由進行簡單的 HTTP 呼叫來產生預測。機器學習模型的範例包括登機口指派的
建議引擎,以及停車需求預測機器學習模型。
142 | 商業使用案例

11. NIA 商業智慧團隊可透過 Web 應用程式部署新的機器學習模型,並且託管於 Azure


Kubernetes Service。如此一來,這些 Web 應用程式就能與 Azure Cosmos DB 互動,
以儲存機器學習推理資料 ( 例如建議機場工作人員採取哪些行動 ),以及提供精心規劃的
資料,如航班時刻表和行李資料。這些 Web 應用程式的範例包括 Passengers Hub 和
Airport Brain。Passengers Hub 的設計是做為一個中央入口網站來提供所有旅客的資
料,包括航班詳細資料、登機口號碼、報到櫃檯,以及對旅客的推薦內容等。旅客只要下
載機場的行動應用程式,就能在行動裝置上查看這些資訊。Airport Brain 是機場管理人
員所使用的新中央入口網站的名稱。目標是為 NIA 的管理階層提供實現高效率運作的工
具。入口網站使用資料來提供登機口指派、人員配置和機場資產分配的建議。
12. Passengers Hub 和 Airport Brain 都會利用儲存在 Azure Cosmos DB 中經過精心規劃
的資料。Azure Cosmos DB 還會用來儲存應用程式專屬的資料類型,例如使用者工作階
段和警示。這一切都是靠 Azure Cosmos DB 的快速查詢引擎和高回應能力來實現。
13. Passengers Hub 和 Airport Brain 都需要資料視覺化。Power BI 會用來建置這些報告,
然後使用 Power BI 的網頁內嵌功能在新的 Web 應用程式上呈現這些 Power BI 報告。精心
規劃的資料包括旅客相關資訊,如旅客航班詳細資料、任何預測的延誤,以及旅客行李資訊。
14. Power BI 儀表板提供報告和視覺效果,當中結合了來自 Azure Cosmos DB 的資料與來
自 Azure Synapse Analytics 的精心規劃資料。

Azure 服務
如同第一個使用案例,下列各節將進一步探討圖 4.6 中顯示的每一項 Azure 服務。首先將
說明為什麼需要各項服務、為什麼適合 NIA,最後再顯示實務範例來示範實作的核心部分。
為了避免重複,除非 NIA 對該服務有特殊需求,否則在此會略過第一個使用案例中涵蓋的
Azure 服務。

Azure Synapse Analytics


設計中的角色
Azure Synapse 是巨量資料分析和資料倉儲的整合平台。需要 Azure Synapse 來提供處理資
料所需的運算能力,以及在眾多利害關係人之間推動更有效的協作。
Azure 服務 |143

為什麼選擇 Azure Synapse ?


除了使用案例 1 中已提到的所有 Azure Synapse 優勢之外,Azure Synapse 還可支援多種
語言、機器學習架構 ( 如 TensorFlow 和 PyTorch),以及與多種開放原始碼工具整合。NIA
的商業智慧團隊需要一個既能處理資料工程,又能處理資料科學工作負載的平台。Azure
Synapse 的設計就是這個用途,能讓資料工程師清理、合併、轉換及策劃資料,同時讓資料
科學家使用任何熱門的機器學習架構,如 TensorFlow 或 PyTorch。
範例實作
以下程式碼片段使用 Azure Cosmos DB 連接器設定從 Spark notebook 到 Azure Cosmos
DB 的連接。下面的 Python 程式碼以預留位置替代 Azure Cosmos DB 執行個體主索引
鍵,並假設 NIA 擁有稱為 NIAAnalytics 的 Azure Cosmos DB 執行個體,當中有一個稱為
flights_data 的 集 合。 程 式 碼 會 將 flights DataFrame (Spark DataFrame) 儲 存 到 Azure
Cosmos DB:
# 設定連接至 Cosmos db

config = {
"Endpoint": "https://NIAairport.documents.azure.com:443/",
"Masterkey": "{masterKey}",
"Database": "NIAAnalytics",
"Collection": "flights_data",
"Upsert": "true"
}

# 將航班資料從 DataFrame 寫入 Azure Cosmos db

flightsDf.write.format("com.microsoft.azure.cosmosdb.spark").
options(**config).
save()
144 | 商業使用案例

Azure Cosmos DB
設計中的角色
Azure Cosmos DB 有兩個主要用途:一是儲存所有應用程式的應用程式資料,如 Passengers
Hub 和 Airport Brain 應用程式,另外也會用來提供精心策劃的資料,隨時供機場工作人員和
外部利害關係人 ( 如旅客 ) 使用。
為什麼選擇 Azure Cosmos DB ?
用於儲存 NIA 精心策劃資料和應用程式資料的選項有很多種。然而,NIA 商業智慧團隊基於
以下理由決定選擇 Azure Cosmos DB:
• Azure Cosmos DB 提供現成而周全的全球發佈,對於確保 NIA 平台可用性和韌性有
非常大的助益。可以理解的是,NIA 無法負擔停機時間的費用,因為它全年為數百萬
名旅客提供服務。因此,新的平台必須具備高可用性,而 Azure Cosmos DB 可提供
這方面的支援。
• NIA 平台需要以近乎即時的方式提供資料。因此減少延遲是非常重要的一環。Azure
Cosmos DB 能讓 NIA 將毫秒為單位的延遲降低到一位數。此外,Azure Cosmos DB
令人印象深刻的 99.999% SLA 也為這一點錦上添花。
• 如前面所述,NIA 估計目前的資料量超過 310 TB,且每天的成長率為 15 GB。這還
不包括來自航空公司合作夥伴的資料,以及像是天氣和交通等外部資料來源的資料。
基於這個理由,該團隊選擇了 Azure Cosmos DB,因為它具有彈性且可無限擴展。
Azure Cosmos DB 為 NIA 提供了所需的可擴展性,並且在儲存和輸送量方面供其選
擇只需針對使用的部分付費。
• 機場目前擁有多個內部系統來保存目前的資料,包括 SQL 伺服器和 MongoDB 伺服
器。該團隊希望提升與所有現有來源系統的相容性,並且讓現有應用程式能夠與新的
資料庫搭配使用,而不需進行任何變更。對於這項需求,Azure Cosmos DB 正是最理
想的選擇,因為它提供的多模型引擎具有與有線通訊協定相容的 API 端點。這表示,
NIA 應用程式可以使用多種驅動程式 ( 如 MongoDB、SQL 和 Gremlin) 連接到同一個
Azure Cosmos DB 執行個體。如此便簡化了開發和部署工作,因為它使用相同驅動程
式的 API,同時還因為有空間進行知識轉移且減少重工,而降低了總擁有成本。
Azure 服務 |145

• Azure Cosmos DB 另一項吸引 NIA 商業智慧團隊的功能,就是能在 Cosmos DB 上進


行即時操作分析和 AI。Azure Cosmos DB 擁有現成的 Apache Spark 整合,能夠執行
Jupyter Notebook 來直接處理 Cosmos DB 中的資料,而不需進一步整合或自訂開發
工作。
• 商業上來說,Azure Cosmos DB 是具有成本效益的選擇,因為它為商業智慧團隊提供
了所需的靈活度和控制能力。使用 Azure Cosmos DB 的美妙之處在於,它能夠提供
全球規模的功能,能夠根據所需的儲存和輸送量控制成本模型。這意味著,當 Azure
Cosmos DB 中的記錄更新時,全球每一位使用者都可以在幾毫秒內看到此更新。
• 最後,Azure Cosmos DB 是一項完全受管理的服務,這表示 NIA 團隊只需關注儲存
在 Cosmos DB 中的資料,而不需擔心基礎結構。此外還能讓團隊以低廉的成本迅速
開始著手,後續再隨著上線更多資料集擴大規模,展現出更大的商業價值。

範例實作
Azure Cosmos DB 有一項優點是能與多種查詢模型和驅動程式相容。以下程式碼片段將示範
如何使用 SQL 或 MongoDB 查詢 Cosmos DB。這兩個範例是用 C# 編寫:
1. 第一個程式碼片段會查詢 passengers 資料表的記錄,從中尋找名為 Bob 的旅客。然後,
它會逐一查看所有傳回的結果,並將旅客的名字列印到主控台:
var sqlQuery = "SELECT * FROM P WHERE P.FirstName = 'Bob'";
Console.WriteLine("Running query: {0}\n", sqlQueryText);
var queryDefinition = new QueryDefinition(sqlQueryText);
var queryResultSetIterator = this.container
.GetItemQueryIterator<Passenger>(queryDefinition);
List<Passenger> passengers = new List<Passenger>();
while (queryResultSetIterator.HasMoreResults)
{
var currentResultSet = await queryResultSetIterator.ReadNextAsync();
foreach (Passenger p in currentResultSet)
{
passengers.Add(p);
Console.WriteLine("\tRead {0}\n", p);
}
}
146 | 商業使用案例

2. 第 二 個 程 式 碼 片 段 會 執 行 類 似 的 查 詢, 但 是 使 用 MongoDB API。 它 會 先 建 立
MongoClientSettings, 然 後 建 立 MongoClient, 接 著 再 用 它 來 取 得 Azure Cosmos
DB 的參考。程式碼會假設此時已完成組態設定。程式碼會建立 NIA Azure Cosmos DB
(NIAAnalytics) 的參考,並查詢 passengerCollection:
var settings = new MongoClientSettings();
MongoClient client = new MongoClient(settings);
var dbName = "NIAAnalytics";
var collectionName = "Passengers";
var database = client.GetDatabase(dbName);
var passengerCollection = database.
GetCollection<Passenger>(collectionName);
passengers = passengerCollection.Find(new BsonDocument()).ToList();

Azure Machine Learning


設計中的角色
NIA 商業智慧團隊使用 Azure Machine Learning 來操作其機器學習模型。為了最佳化資
源分配,團隊需要建置數個機器學習模型來預測旅客人數,並提出登機口分配建議。Azure
Machine Learning 為商業智慧團隊提供了一致且可重現的方式來產生機器學習模型,同時能
追蹤所有機器學習實驗、資料集和機器學習訓練環境。這對於任何機器學習模型實作來說都
至關重要,其中說明能力是客戶和利害關係人的基本需求。
為什麼選擇 Azure Machine Learning ?
• Azure Machine Learning 讓 NIA 得以簡化並加速從資料清理和功能工程設計到模型
建立和驗證的整個機器學習生命週期。Azure Machine Learning 讓多個管線部分自動
化的過程更容易。如此便能進一步減少額外負荷、改善品質,並且讓 NIA 團隊得以加
快創新的腳步。
• 多個資料集快照的版本控制和維護工作,就是建立和實驗機器學習模型的過程中常見
的實務。維護相同資料集的多個版本可能是非常乏味又混亂的過程。Azure Machine
Learning 提供了一整套功能,目的在於幫助 NIA 這樣的客戶因應這項挑戰。Azure
Machine Learning 資料集可讓 NIA 輕鬆追蹤資料集、控制其版本和進行驗證,如範
例實作 一節中所見。
Azure 服務 |147

• 對於任何進階分析團隊來說,有部分挑戰在於尋找合適的演算法來建立機器學習模
型。NIA 商業智慧團隊不僅需要選擇合適的演算法,還需要微調任何超參數。Azure
Machine Learning 將這個程序自動化,如此一來,任何資料分析師都能成為資料科學
家。Azure AutoML 讓 NIA 商業智慧團隊能夠以便宜的方式,快速、輕鬆地將建立機
器學習模型的過程自動化。
• 相容性也是 Azure Machine Learning 的另一大優勢。Azure Machine Learning 能與
開放原始碼工具有效整合 ( 如 Azure Synapse 上的 Apache Spark)。此外還能讓 NIA
使用任何機器學習架構 ( 如 TensorFlow 和 PyTorch),同時充分利用 Azure Machine
Learning。
• Azure 為 NIA 這樣的組織提供了資料和人工智慧方面所有最新的突破性創新。其中一
項突破就是從實際資料及其管線中拿掉運算的概念。如此一來,NIA 商業智慧團隊只
要編寫一次程式碼,就能在任何運算上執行。這包括資料轉換程式碼和機器學習模型
程式碼。NIA 團隊可建置自己的機器學習模型,在開發電腦本機上執行,並且在準備
就緒時,將該程式碼移到雲端上執行。這讓開發人員和組織在開發和運營成本方面擁
有極大的靈活度。NIA 只需針對使用的運算付費,並且在需要大型運算資源時,才會
在雲端上進行機器學習模型訓練。
• NIA 的 CIO 對於 DevOps 及其為組織帶來的各項優勢深信不疑。支援 DevOps 程序
是決定選擇 Azure Machine Learning 的主要因素。Azure Machine Learning 擁有
Azure DevOps 原生整合,可讓 NIA 輕鬆建立和部署機器學習模型。
• 安全性、可重現和治理全都是任何進階分析團隊的重要考量點。Microsoft Azure 透過
與其他 Azure 服務的原生整合,以有效又優雅的方式解決了所有問題,且這些全都經
過企業的實地測試。Azure Machine Learning 提供現成的 Azure AD 和 Azure 監視器
用整合。此外,藉由使用 Azure Resource Manager 範本和 Azure 藍圖,NIA 這樣的
組織就能強制實施適當的治理和標準。
148 | 商業使用案例

範例實作
Azure Machine Learning 可輕鬆進行版本控制、追蹤及處理多個版本的資料集用於機器學習
目的。以下程式碼片段會先建立資料存放區,讓 Azure Machine Learning 得知儲存資料的
位置:
# 建立 Azure ML 服務工作區的參考
import azureml.core
from azureml.core import Workspace, Datastore
ws = Workspace.from_config()
# 將 Azure Blob 容器註冊為資料存放區
datastore = Datastore.register_azure_blob_container(workspace=ws, datastore_
name='NIA_airport_datastore',
container_name='NIA_Analytics',
account_name={storageAccount},
account_key={storageAccountKey},
create_if_not_exists=True)
# 取得命名的資料存放區 ( 如有的話 )
datastore = Datastore.get(ws, datastore_name='NIA_airport_datastore')
前面以 Python 編寫的程式碼片段會先從現有的組態檔建立 Azure Machine Learning 工作
區。接著程式碼會藉由將 Azure Blob 容器註冊為資料存放區來建立資料存放區。此範例將資
料存放區命名為 NIA_airport_datastore,並且以預留位置替代 Azure 儲存體帳戶名稱和
金鑰。最後,此範例會使用已存在的資料存放區的名稱建立其參考。
以下程式碼片段會註冊新的資料集,並提供名稱、描述和標籤,更方便未來找到此資料集:
passengers_ds = passengers_ds.register(workspace =ws,name='passengers_
dataset',description = 'passengers personal data and address',tags =
{'year': '2019'})
以下程式碼片段會依名稱和 / 或版本識別碼擷取現有的資料集。如果同一個資料集有多個版
本,這會非常實用:
# 依名稱取得 Passengers 資料集
passengers_ds = ws.datasets['passengers_dataset']
# 取得 passengers 資料集的特定版本
passengers_ds = ws.datasets['passengers_dataset']
passengers_ds_v3 = passengers_ds.get_definition(version_id = 3)
Azure 服務 |149

Azure Container Registry


設計中的角色
Azure Machine Learning Services 可讓 NIA 商業智慧團隊建立自己的機器學習模型做為
標準容器,以便在任何容器引擎上執行,如 Docker 和 Kubernetes。該團隊使用 Azure
Container Registry 安全地代管和共用這些用來保存其機器學習模型的 Docker 容器。
為什麼選擇 Azure Container Registry ?
• Azure Container Registry 可 讓 NIA 儲 存 所 有 類 型 容 器 的 影 像。Azure Container
Registry 將影像的代管從這些影像的部署中分開,並放到不同的部署目標,如 Docker
Swarm 和 Kubernetes。如此 NIA 就能使用單一登錄 (Azure Container Registry) 來
代管所有類型容器的影像。
• Azure Container Registry 是以標準容器登錄的功能為基礎所建置。例如,Azure
Container Registry 會 與 Azure AD 整 合 以 提 高 安 全 性。 此 外,Azure Container
Registry 提供了使用觸發與容器動作整合的簡單方式。例如,NIA 可設定 Webhook
在新影像新增至 Azure Container Registry 時觸發 Azure DevOps Services。
• Azure Container Registry 與標準 Docker Registry v2 完全相容。這表示,NIA 團隊
可 以 使 用 相 同 的 開 放 原 始 碼 Docker 命 令 列 介 面 (CLI) 工 具 與 兩 種 登 錄 (Azure
Container Registry 和 Docker Registry v2) 互動。
• Azure Container Registry 可支援多區域複製。這項功能很吸引 NIA,因為它對兩方
面有所助益。其一是藉由讓容器登錄靠近部署目標來降低網路延遲和成本。其二是改
善業務續航力與災害復原能力,因為同一個容器登錄可複製到多個區域。
150 | 商業使用案例

範例實作
以下程式碼為 Azure Resource Manager (ARM) 範本的一部分,NIA 用它來建立 Azure
Container Registry 執行個體。它會在 Azure 的南非北部資料中心內建立 Azure Container
Registry ( 標準層 )。此範本還可讓管理員使用者帳戶管理登錄。ARM 範本有兩個參數,一個
參數代表登錄的名稱,另一個參數代表 ARM API 版本:
{ "resources": [
{
"name": "[parameters('registryName')]",
"type": "Microsoft.ContainerRegistry/registries",
"location": "South Africa North",
"apiVersion": "[parameters('registryApiVersion')]",
"sku": {
"name": "Standard"
},
"properties": {
"adminUserEnabled": "True"
}
}
]
}

Azure Kubernetes Service


設計中的角色
Azure Kubernetes Service (AKS) 會做為消費端 API 為機器學習模型提供服務。預測穿梭機
場的人群動向模型,就是這些機器學習模型的範例。這類模型是由團隊使用 Azure Synapse
中的歷史資料進行訓練。然後再使用 Azure Machine Learning 將模型做為 Docker 影像推送。
AKS 會執行這些模型和其他應用程式,如 Passenger Hub。此外,AKS 可協助管理這些應用
程式的服務探索,提供自動調整規模的機制,並且簡化處理錯誤和故障的自我修復原則。
Azure 服務 |151

為什麼選擇 AKS ?
• 管理電腦叢集是一項艱難的任務,而管理和設定 Kubernetes 叢集更是難上加難。這是
因為 Kubernetes 有許多動態的部分,需要進行許多設定。AKS 藉由提供受管理的叢
集來簡化這一點。這表示,Microsoft Azure 負責管理主要節點,而 NIA 團隊只需要
設定和使用從屬節點來部署其工作負載。這樣便能大幅降低 NIA 的額外負荷。
• 運用虛擬節點 和虛擬 kubelet 這類概念,AKS 就能讓 NIA 隨時彈性佈建額外的容量。
這對 NIA 來說很重要,因為不容易預測所需的負載和容量,因此在需要時擁有這樣的
彈性佈建能力就更形重要。
• Azure DevOps 中擁有 AKS 的原生整合和支援,是 AKS 的另一項優勢。這簡化了設定
NIA 工作負載及自動化部署至 AKS 的工作。AKS 還具有 Azure 監視器和 Azure Key
Vault 等服務的原生整合。
• NIA 團隊可利用 Visual Studio Code 的 AKS 支援來改善並加速端對端開發體驗。
• 除了與其他 Azure 服務的原生整合之外,AKS 也能有效整合 Azure Active Directory。
這表示,NIA 可利用這項整合提高安全性。此外,NIA 還可使用 Azure 原則在整個組
織內強制實施治理。
• Azure 提供了強大的開放原始碼工具支援,例如 Kubernetes,不僅在雲端,還包括
在邊緣。NIA 團隊明白,有些情況下,將運算推送到邊緣可能是最佳選擇。例如,他
們打算將機器學習模型推送到靠近交通監控攝影機的位置,以便在發生安全事件時
觸 發 警 示。Microsoft Azure 可 有 效 支 援 在 這 類 情 況 下 於 Azure IoT Edge 上 執 行
Kubernetes。因此,對於這樣的未來規劃,最好使用 AKS 將機器學習模型推送至邊緣,
以便在 Azure IoT Edge 環境中使用 Kubernetes。

範例實作
以下程式碼片段是 NIA 的 Azure DevOps Services 管線的一部分,用於部署新的 Airport
Brain Web 應 用 程 式。 該 程 式 碼 會 使 用 KubernetesManifest 任 務 類 型 來 利 用 Azure
DevOps 的 Kubernetes 支援。這項任務會使用 NIAairport_AksServiceConnection,將位
於 nia/aiportbrain:lastest 的 Docker 影像部署至預先設定的 AKS。以下程式碼會以預留
位置替代 imagePullSecret,它會做為將影像從 Azure Container Registry 提取到部署目標
(AKS) 的驗證機制:
152 | 商業使用案例

步驟:
- task: "KubernetesManifest@0"
displayName: "Deploy AirportBrain to K8s"
inputs:
action: deploy
kubernetesServiceConnection: "NIAairport_AksServiceConnection"
namespace: "airportbrain"
manifests: "manifests/deployment.yml"
containers: 'nia/airportBrain:latest'
imagePullSecrets: |
$(imagePullSecret)

Power BI
設計中的角色
Zara 的 NIA 報告策略中,有一部分是使用 Power BI 做為 NIA 內的視覺化工具。Power BI
可用來產生報告和儀表板,以及用於自助服務目的。BI 團隊希望利用 Power BI 可內嵌於其他
Web 應用程式的能力,以便在其他新應用程式 ( 如 Passenger Hub) 中重複使用 Power BI 視
覺效果。
為什麼選擇 Power BI ?
除了在使用案例 1 中提到的所有 Power BI 優勢之外,Power BI 報告和儀表板還可內嵌於其
他 Web 應用程式中。NIA 商業智慧團隊希望利用 Power BI 視覺效果的單純性和強大功能,
為 Passenger Hub 和 Airport Brain 應用程式建置儀表板。使用嵌入式 Power BI 報告可讓
NIA 商業智慧團隊快速輕鬆地建置並交付報告,同時透過 NIA 的新 Web 應用程式安全地處理
報告。
範例實作
在 Power BI 中,您可以在任何網頁內嵌入任何 Power BI 報告。從 Power BI 服務中顯示
報告的同時,按一下 Share ( 共用 ) 選項,然後選取 Embed report ( 嵌入報告 ),然後選取
Website ( 網站 ) 或 Portal ( 入口網站 )。這樣會建立一個對話方塊,當中包含您要在目的地
網站或入口網站上使用的內嵌程式碼:
Azure 服務 |153

圖 4.7:建立內嵌程式碼

對話方塊將會顯示 HTML iFrame 程式碼,可在任何 HTML 網頁上使用。下一個對話方塊


可讓 NIA 團隊成員設定 iFrame 程式碼屬性,如 width ( 寬度 ) 和 height ( 高度 )。然後使用
iFrame 程式碼將報告嵌入任何 Web 應用程式中:

圖 4.8:設定 iFrame 屬性
154 | 商業使用案例

支援的服務
NIA 希望確保新的解決方案安全且可擴展,並且具有良好的監控和支援水準。Azure 擁有許
多服務,能讓 NIA 這樣的組織保護、調整規模及監控其解決方案。當中包括第一個使用案例
中列出的所有服務,如 Azure DevOps、Azure Key Vault 和 Azure 監視器。

深入分析和動作
Azure 幫助 NIA 在分析並部署必要措施之後,獲得有意義的深入分析,如下面各節所討論。

使用預測分析使航班延誤減少 17%
說明:在進行初步資料發掘與探索時,NIA 商業智慧團隊發現,效率不彰的登機口指派是造
成航班延誤的主因。航班延誤會產生雪球效應,因為一個航班延誤可能影響下一個航班及後
續航班。同時也會產生負面的旅客體驗。目前,NIA 是根據其候機區的容量和飛機的最大容
量來指派登機口。這是假設所有航班為滿機狀態,但這不一定是事實。
結合天氣資料、城市交通資料、歷史航班延誤資料及其他來源,就能讓商業智慧團隊產生更好
的推薦引擎來指派登機口。新的推薦引擎是使用機器學習所建置,它會查看關聯 ( 天氣和交通 )
資料和歷史資料,從而估計某一特定航班的旅客人數,並對應地指派登機口。在初步模型化和
驗證的過程中,團隊發現在 Airport Brain 應用程式中開發推薦引擎可使航班延誤減少 17%。
估計商業價值:每年 1470 萬美元
主要資料來源 :航空公司航班資料、機場資料 ( 配置和登機口 )、天氣資料、城市交通資料、
學校行事曆,以及國定例假日行事曆。
動作:NIA 商業智慧團隊使用圖 4.6 中所示的架構部署解決方案。由於採用這個解決方案,
使得機場管理階層現在擁有了全新的工具,它是新入口網站 (Airport Brain) 的一部分,可用
來提供指派登機口的即時推薦。如此便能藉由排除規劃時的假設並引進根據事實和科學所做
出的營運決策,提升效率並降低營運負擔。
深入分析和動作 |155

資料管線:圖 4.9 顯示此計劃的簡化資料管線:

圖 4.9:計劃 1 的資料管線

使用智慧型視覺效果減少壅塞並提升零售業績
說明:NIA 商業智慧團隊發現了另一個令人振奮的情況,那就是旅客搭車抵達時間與大排長
龍彼此相關。團隊發現,若有許多旅客在航班起飛時間前 4 小時以上抵達機場,就會發生大
排長龍和人滿為患的問題。這是因為機場管理團隊並未預期 / 規劃因應這些提早到達的旅客,
進而造成大排長龍和壅塞的情況。另一種解釋是,機場的一名資深管理人員認為,這些提前
抵達的旅客直接前往登機口,而非前往機場的其他設施。
因此,團隊決定藉由引導提早抵達的旅客前往其他機場設施,像是免稅商店區、電影院和休
息區等,來解決此問題。根據初步測試,該團隊估計這樣做可使零售機會增加 11%,同時使機
場登機口人滿為患的情況降低約 15%。
估計商業價值:每年 930 萬美元
主要資料來源 :航空公司航班資料、機場資料 ( 配置和登機口 )、天氣資料、旅客資訊、機場
零售資料,以及國定例假日行事曆。
動作:根據這些調查結果,團隊在 Passenger Hub 應用程式中建立了新的儀表板。當旅客提前
抵達且掃描他們的身分證時,Passenger Hub 應用程式就會對他們顯示航班詳細資料,並引導
他們前往休息區、免稅商店和機場電影院。團隊還使用了即時交通監控資料來建立大型指標,
並放上機場各處的大型螢幕,讓使用者不需掃描就能看見。
156 | 商業使用案例

資料管線:圖 4.10 顯示此計劃的簡化資料管線:

圖 4.10:計劃 2 的資料管線

總結
機場運營和程序複雜,而且晝夜不停。因此,即使稍作改進,也能為機場節省大筆費用,並提高
安全性和客戶滿意度。
在前幾頁中,您考量了大型機場的實際範例。雖然名稱是虛構的,但此處討論的許多數字都
是筆者曾參與過的實際使用案例。您已了解到,進階分析可用來提高效率,並且為組織節省
數百萬美元。資料不僅能幫助機場節省營運成本,還能創造出競爭優勢。
另外也探討了如何使用 Azure 實作資料導向的解決方案,以及為什麼 Azure 是執行這類工作
負載最理想的平台。Azure 經濟實惠又安全,且能為組織提供敏捷且可擴展的能力。
5 總結

如今,資料是企業成功背後的驅動力。每個組織都在利用資料制定業務決策。Azure Synapse
Analytics 利用組織從眾多資料來源 ( 無論是結構化、半結構化或非結構化資料 ) 產生和收集
的大幅資料增長,提供不受限的分析服務,將資料擷取、企業資料倉儲及巨量資料分析彙集
在一起。
Azure Synapse Analytics 中的整合體驗可讓客戶建置端對端分析解決方案,並從單一簡化的
環境執行資料擷取、資料探索、資料倉儲、巨量資料分析及機器學習任務。Azure Synapse
提供了有力的方式來分析資料,從而獲得即時深入分析。這對於做出業務決策和制定業務策
略來說至關重要。
本書帶您進行了一趟 Microsoft Azure 雲端分析之旅,讓您了解如何使用 Azure Synapse 建
置資料倉儲、處理和視覺化資料,以及使用 Synapse Studio 中整合的環境建置端對端分析解
決方案。
158 | 總結

在下一節中,我們將逐章回顧本書,提醒您我們探討過的資料和技術。
第 1 章 介紹了 Azure 的分析 ,討論了數據分析的重要性,並強調了 Microsoft Azure 是
實現雲端商業智慧能力的理想平臺的幾個原因。內容涵蓋部分有關巨量資料、機器學習和
DataOps 的基本概念。另外也帶您了解採用雲端資料分析的一些業務驅動因素。最後讓您從
較高層次的角度,了解擁有現代資料倉儲必備要件。
第 2 章 , 介 紹 Azure Synapse Analytics 工 作 區 和 Synapse Studio, 當 中 介 紹 了 Azure
Synapse 工作區和 Synapse Studio 的全新整合體驗。
Synapse Studio 針對資料準備、資料管理、資料倉儲、巨量資料分析及 AI 任務提供了全方位
的簡化環境。它提供以下功能:
• 免程式碼視覺化環境,用於管理資料管線
• 自動化查詢最佳化
• 在幾分鐘內建置概念證明的功能
• 無伺服器隨需查詢
• 選擇安全存取資料集和使用 Power BI 在幾分鐘內建置儀表板,這些全都是使用相同的
分析服務來實現

您學到了如何運用逐步指南建立工作區,以開始使用 Azure Synapse。我們也示範了如何


開始使用 Synapse Studio 中的工具建置端對端分析解決方案。另外還帶您探索了 Azure
Synapse 中的一些主要功能,包括隨需無伺服器 SQL 功能。有了隨需使用無伺服器 SQL 功能,
就可以使用熟悉的 T-SQL 語法立即執行資料探索和資料分析,而不需佈建資源。
|159

在完成這趟旅程的過程中,您還學會了如何:
• 佈建 SQL 集區、擷取資料及分析 SQL 集區中的資料
• 建立 Apache Spark 集區、擷取資料及使用 Spark 探索資料
• 在 SQL 集區和 Apache Spark 集區來回複製資料
• 從連結的資料來源提取外部資料
• 使用無伺服器 SQL 隨需分析資料
• 與管線整合

第 3 章 ,處理和視覺化資料 ,當中側重於現代資料倉儲的分析部分,並示範了如何使用
Power BI 處理和視覺化資料及實作機器學習。有了 Azure Synapse 和 Power BI,您就可以
執行強大、可自訂的自助資料分析,以尋找和共用資料深入分析。Azure Synapse 是支援這
些深入分析的引擎,而 Power BI 則是視覺化工具,能讓使用者自行分析資料。
在進階分析方面,Azure Machine Learning 提供了基礎結構和工具,讓您在建置智慧型應
用程式和服務的過程中分析資料、建立高品質資料模型,以及訓練和協調機器學習。使用
Azure Machine Learning 的優勢在於,它提供了企業維持競爭力所需的預測智慧。
第 4 章 ,商業使用案例 ,包含了真實世界的使用案例,說明這些技術如何相互整合,以提
供完整的端對端資料倉儲解決方案。本章中的兩個真實世界商業使用案例,展示了使用
Microsoft Azure 的高階解決方案。同時也說明了如何在 Azure 中分析即時資料,以獲得有
意義的深入分析並做出業務決策。範例實作和使用案例示範了真實的組織如何在不同部門使
用 Azure 技術充分利用資料,讓您了解如何利用這種強大的技術來幫助自己的業務。
160 | 總結

最後重點
Azure Synapse 將企業資料倉儲與巨量資料分析這兩個領域結合在一起,打造出整合一致的
體驗,幫助您加快獲得深入分析的腳步。現代資料倉儲的雲端模型不僅靈活且可擴展,還具
備獨特的彈性屬性,能創造出成本效益。分析工作負載正是這樣的彈性真正發揮之處出。
有了 Azure Synapse,身懷各種不同技能的資料專業人員就都輕鬆協作、管理和分析最重
要的資料,而且全都在同一項服務內進行。從 Apache Spark 整合,搭配強大且值得信賴的
SQL 引擎,再到免程式碼資料整合和管理,Azure Synapse 是為每一位資料專業人員量身打造。
現在,您已學到本書的所有內容,將能掌握所需的服務和工具知識,幫助您在 Azure 上建置
自己的完整資料分析解決方案。最好的方式就是從小處著手,將本書中介紹的一些技術整合
到您現有的工作流程中。後續再隨著需求的發展,逐漸加入更多功能。
祝福您的現代資料倉儲和雲端分析之旅,順利成功。
在下一節中,我們為您準備了額外的資源供您進一步學習。

進一步學習
• 開始使用 12 個月的免費 Azure 服務:https://azure.microsoft.com/free/synapse-
analytics/
• Azure Synapse Analytics:https://azure.microsoft.com/services/synapse-
analytics/
• Azure Synapse Analytics 工具套件:https://azure.microsoft.com/resources/
azure-synapse-analytics-toolkit/
• 比較 Azure Synapse Analytics 與 Google BigQuery 和 Amazon RedShift 的價格及
效能:https://azure.microsoft.com/services/synapse-analytics/compare/
• 四個步驟為您的分析增添強大的功能 (PDF 電子書 ):https://clouddamcdnprodep.
azureedge.net/gdc/gdcEbYaLj/original
> 索引

關於

本節中依字母順序擷取本書中使用的所有主要關鍵字。每一個主要關鍵字都會伴隨其出現位置的頁碼。
A 28, 50, 56, 59-60, 109, 32, 65, 68, 71, 91, 103,
128, 136-137, 159-160 105-106, 109, 112, 114,
abc 品牌 : 108
異常 : 5, 20 117, 124, 126, 129-136,
摘要 : 149
apache: 23, 28, 31, 50-52, 138-140, 142-147, 149,
加速 : 2, 89, 94, 146, 160
65, 91, 93, 117-118, 138, 152, 154-155, 157-159
方便存取 : 2, 4, 8,
141, 145, 147, 159-160
12, 18, 89, 118
accountkey: 120
apiversion: 150 C
套用 : 6, 135
帳戶 : 20, 138 快取 : 125
方法 : 13-14, 72
精準度 : 6-9, 16, 94, 快取 : 15, 65, 71
陣列 : 90
100, 103, 129, 133 行銷活動 : 130
表達 : 106, 110
啟動 : 64 容量 : 18, 132-133, 151, 154
人工 : 2, 6-8, 67, 90,
使用中 : 10-11, 44, 電信業者 : 134
103, 112, 133
71-72, 96, 115, 118, cassandra: 10
評估 : 11
125, 128, 138, 151 類別 : 5-6, 92, 126
資產 : 19, 32, 111, 118,
進階 : 11, 16, 31, 65, 69, 91, 中央 : 112, 114-115,
132-133, 135, 142
115, 132, 147, 156, 159 119, 127, 142
指派 : 154
代理程式 : 7 通道 : 92, 106-107, 113
屬性 : 111
彙總 : 96, 107, 134 聊天機器人 : 26, 92
適用對象 : 96
警示 : 22, 70, 128, 分類 : 11, 20
自動化 : 92-94,
134, 142, 151 清理 : 146
126-127, 146-147
演算法 : 6-7, 91, 94, 147 點擊 : 19, 28, 32
已自動化 : 8, 91, 158
分配 : 133, 146 用戶端 : 96, 146
automl: 65, 91, 93-94, 147 叢集 : 22, 71, 95, 114, 151
amazon: 160
自主 : 16
分析 : 2-4, 6-7, 20, 56, 免程式碼 : 28-29,
平均 : 49, 111, 130, 132
59, 69, 90-92, 94, 60, 158, 160
azureml: 148
115, 136, 154, 158 編碼 : 94, 96
認知 : 7, 89, 92
分析 : 1-2, 4-5, 7-12, 14-17,
20, 22-24, 26-34,
B 命令 : 93
36, 41-43, 50, 59, 後端 : 125 委任 : 52
64-65, 67-74, 76-77, 基準 : 117 提交 : 64
82-83, 89, 91-96, bigquery: 160 相容 : 111, 118, 149
103, 105-106, 112-118, 藍圖 : 147 競爭對手 : 5, 109
128-129, 131-133, 組建 : 120, 149 編譯 : 3
135-139, 141-142, 145, 內建 : 69, 74, 77, 95 合規性 : 30, 112, 115,
147-148, 154, 156-160 業務 : 1-2, 4-10, 12, 14, 16, 119, 125-126, 139
分析 : 3, 13, 15, 17-18, 24, 19, 21-22, 24, 26, 28-29, 元件 : 114
運算 : 6, 18, 30, 儀表板 : 25, 68-70, 61, 71, 82, 112, 119
71, 95, 100-101, 89, 129-130, 142 開發人員 : 29, 118, 139
138-139, 142, 147 資料庫 : 5, 11, 14-19, 21, 裝置 : 5, 89, 142
電腦 : 68, 95, 151 23, 32, 44, 50, 54-56, devtest: 14
運算 : 1, 9, 12, 18, 147, 151 70-71, 74-77, 79, 82-83, 數位 : 7, 14, 106-107, 110, 113
並行 : 23 89-90, 120, 122-123, 直接 : 19, 71, 89, 93,
條件 : 76, 110-111, 128 126, 143-144, 146 108, 141, 145, 155
組態 : 143, 148 databricks: 89, 93-95 顯示 : 56, 72, 79, 81, 84, 86
設定 : 63, 101, 122, 資料中心 : 135, 139, 150 docker: 13, 95, 141, 149-151
140, 149, 151, 153 資料框架 : 53, 143 網域 : 114
已設定 : 14, 141, 146 dataops: 2, 8, 26, 158 下載 : 70, 83
壅塞 : 132, 134, 155 資料集 : 4-6, 13, 16, 19, 停機時間 : 13, 15, 144
連接 : 45, 83, 94, 114, 47, 52-53, 70, 75-77, dresner: 1
119-120, 140, 143-144 79, 82-84, 100, 102, 驅動程式 : 14, 26,
連線 : 22, 72, 84, 109-110, 121-122, 148 144-145, 158
122, 127, 143 資料存放區 : 148 驅動 : 7, 14, 16, 157
連接器 : 143 dateid: 46 下拉 : 77
connectvia: 120, 122 dbname: 146 免稅 : 133, 155
主控台 : 145 決定 : 147 動態 : 7, 20, 65
消費者 : 3, 71, 96, 106 預設 : 38-39, 55-56, 58, 67
容器 : 93, 95, 97, 141, 定義 : 148 E
145, 148-151 延遲 : 132-135, 142, 154 生態系統 : 3, 67, 89-91, 93
cortana: 7, 26, 92 刪除 : 15, 103 效率 : 5, 154, 156
cosmos: 10, 141-146 densenet: 96, 99 彈性 : 71, 111, 115, 137-138,
cosmosdb: 143 部署 : 13, 68, 93-94, 144, 151, 160
新型冠狀病毒 : 72, 75, 103, 110, 127-129, 內嵌式 : 5, 69, 152-153
77, 79, 84, 87 142, 147, 152, 154 編碼 : 5
策劃 : 32, 77, 142, 144 部署 : 30, 94-95, 127, 139, 遭遇 : 64, 71, 105
自訂 : 23, 69-70, 141, 144, 149, 151-152 加密 : 11, 115, 118, 127
125, 140, 145 設計 : 68, 106, 110, 112-115, 端對端 : 9-10, 29-30,
客戶 : 1, 6, 11, 16, 19, 30, 117, 119, 124, 126, 128, 41, 65, 93-94, 127,
106-108, 110-111, 114, 132, 136, 140, 142, 144, 151, 157-159
116, 131-134, 137, 139, 156 146, 149-150, 152 引擎 : 28, 96, 117, 141-142,
自訂 : 3 設計師 : 94, 96, 99 144, 149, 154, 159-160
桌面 : 24, 67-69, 72, 83, 工程師 : 8, 10, 13, 15, 18,
D 85-86, 91-92, 103, 124 21-22, 41, 65, 70, 89, 114,
開發 : 45, 54, 56, 58,
116-118, 138, 141, 143 資料夾路徑 : 121 65, 67-68, 86, 97,
企業 : 9, 28, 41, 69-70, 足跡 : 14 103, 105-109, 119, 126,
115, 139, 157, 160 格式 : 5, 19-22, 70, 77, 86, 128, 131, 134-136, 138,
實體 : 94 95, 108, 111, 115, 143 154, 157, 159-160
項目 : 90 架構 : 89, 91-93 已安裝 : 9-10, 91, 110, 136
設備 : 133 功能 : 6, 10 執行個體 : 4, 6-7, 13-15,
錯誤 : 20, 128, 141, 150 功能 : 120 17, 23, 95, 97, 107-108,
預估 : 129-130, 133, 154-155 111, 115, 127-128, 134,
評估 : 100 G 143-144, 149-150
事件 : 107 整合 : 60-61, 89, 92-93,
閘道 : 11, 69, 140
執行 : 64, 79 119, 136-137, 149, 159
GB: 5, 14-15, 68, 108
練習 : 77, 97, 100, 103, 118 整合式 : 32, 41, 65, 69, 117
github: 16
實驗 : 54, 100-102 介面 : 8, 18, 41, 68,
探索 : 8, 16, 22, 28, 41, 44,
H 93-94, 119, 149
47, 50, 65, 72, 87, 89, 92,
103, 114-115, 124, 135 hadoop: 22
J
擴充 : 92 處理 : 4, 15, 26, 109, 115, 143
jupyter: 94-95, 145
可延伸 : 91 硬體 : 15, 90, 93
證明 : 139
廣泛 : 141 話題標記 : 130
混合 : 14, 113, 119
外部 : 69-70, 85,
K
135-137, 144, 159
I kubelet: 151

F 已識別 : 21, 137 kubernetes: 13, 95,


141-142, 149-151
設施 : 136, 155 身分 : 125
身分 : 10, 92, 127-128, 138
要素 : 5, 7, 147
iframe: 153 L
功能 : 23, 64, 69,
94-96, 114, 119, 125, 實作 : 30, 87, 90-91, 標籤 : 6, 70
141-142, 145-146 103, 112, 128, 159 語言 : 29, 31, 55-56,
意見回饋 : 25, 70, 匯入 : 84-85, 94, 125, 148 58, 92, 108
108, 124, 137 指標 : 106 版面配置 : 154-155
檔案名稱 : 20 擷取 : 21-22, 30, 32, 108, 學習 : 2, 6-8, 10, 13, 16-17,
檔案系統 : 121 110, 116-117, 137, 157 23, 26, 28-32, 65, 67,
篩選 : 23 固有 : 6 70, 89-99, 101, 103, 112,
防火牆 : 11 輸入 : 123, 152 125, 131, 138, 141-143,
名字 : 145 插入 : 19, 70 146-151, 154, 157-160
資料夾 : 76 深入分析 : 2, 4-5, 7, 9, 17, 授權 : 72, 124
22-23, 28-29, 31-32, 生命週期 : 30
已連結 : 28, 52-53, 移轉 : 14 北 : 132
60, 72-74, 76, 83, 行動 : 1, 4, 8, 14, 19, 25, 筆記型電腦 : 53-56, 58,
96, 120-122, 159 69-70, 89, 91-92, 60-61, 93, 118, 143
邏輯 : 14, 60 106-107, 142 數字 : 2, 20, 49, 87, 96,
邏輯上 : 13 模型化 : 2, 21, 23, 109-110, 126-128,
物流 : 5 72, 129, 154 133-134, 136, 146, 154
低程式碼 : 94 模型 : 5, 7, 15-16, 18, 28, 編號 : 113, 140
概略 : 6, 28
M 32, 71, 89-95, 100, 112,
114, 125, 138, 141-142, nytaxiblob: 47
機器 : 2, 6-7, 10, 13,
15-17, 23, 26, 28,
145-147, 149-151, 159
現代 : 2, 4, 7, 15-18, 20-22,
O
30-32, 65, 67-68, 物件 : 91-92
26, 32-33, 67, 70,
83, 85, 89-101, 103, 隨選 : 68, 158-159
94-96, 105, 119, 158-160
112, 125, 138, 141-143, openrowset: 77
mongodb: 10, 20, 144-146
146-151, 154, 157-159 運作 : 92
監控 : 5, 8, 64-65, 71, 94,
管理 : 11, 18, 22, 28-29, 作業 : 132
112, 127-128, 147, 151, 154
43, 50, 72, 115, 117, 最佳化 : 31, 106, 135, 146
監視 : 3, 22, 30, 65, 107,
119-120, 124, 127-128, 輸出 : 6-7, 48
115, 130, 136-137,
136, 141, 150-151, 160 概觀 : 90, 98
151, 154-155
管理員 : 110, 147, 150
眾多 : 117, 157
手動 : 22, 127
mysynws: 35, 41
P
市場 : 1, 4-5, 16, 117, 119 套件 : 141
主要 : 13, 143, 151
主要金鑰 : 143
N 包裝 : 141
平行 : 111, 117
機制 : 15-16, 25, 69, 94, 命名空間 : 152
參數 : 5, 150
115, 136, 141, 151 命名空間 : 116
停車 : 136, 140-141
MB: 68 原生 : 69, 115, 118, 120, 125,
parquet: 77
中繼資料 : 20 138-139, 141, 147, 151
乘客 : 49, 106, 132-138,
方法 : 41-42, 83 瀏覽 : 7
141-142, 144-146,
microsoft: 2, 4, 7-18, 導覽 : 7
148, 154-155
20-22, 26, 28, 30, navigator: 84
密碼 : 38, 122
67-68, 89-90, 92-94, 網路 : 5, 11, 69, 107,
模式 : 6-7, 11, 18, 22, 130
105, 112, 114-115, 118-119, 128, 149
執行 : 10, 13, 19, 22-23,
118-119, 126, 128, 網路 : 3, 15, 38-39
26, 29-30, 32, 56,
131-132, 138-139, 143, 網路 : 11, 14
60, 64, 68, 70-72, 85,
147, 150-151, 157-160 niaairport: 143, 151-152
89, 93, 96, 157-159
移轉 : 7 無程式碼 : 94
PB: 4, 12, 14, 16
管線 : 2, 4, 7, 17, 21-23, 提示 : 77, 83 參考 : 85, 121, 146, 148
29-30, 32-33, 60-61, 屬性 : 78, 120-122, 地區 : 13, 35, 70, 77, 86
64-65, 89, 93, 96, 150, 153, 160 地區 : 12, 14, 24, 77,
99-100, 102, 129-131, 保護 : 8, 11, 30, 71, 112, 119, 125, 149
146-147, 151, 155-156 118, 127, 135 註冊 : 35, 148
平台 : 2, 4, 9-11, 23, 26, 通訊協定 : 22 已註冊 : 19, 35
29-30, 67-68, 70, 96, 原型 : 16 報告 : 71-72, 107-108,
111-112, 117, 119, 124, 提供者 : 2, 15-16, 18, 124, 152
128, 132, 136, 138, 140, 22, 35, 138-139 報告 : 23, 25, 67-72,
142-144, 156, 158 佈建 : 15, 33, 43, 50, 60, 77, 96, 103, 107,
原則 : 14, 71, 135, 150 65, 71, 151, 158-159 112-114, 124-126,
熱門 : 3, 17, 89, 143 公用 : 11, 14, 77, 91, 133-135, 142, 152
可攜 : 93, 95 111, 129, 154-155 存放庫 : 5, 11, 16, 91, 100
入口網站 : 34, 41, 71, 97, pyspark: 55-56, 58 要求 : 11, 13, 65, 124
119, 142, 152, 154 python: 9, 31, 55-56, 資源 : 11-15, 27-28,
powerbi: 88 58, 94, 118, 143, 148 30, 44, 59-60, 103,
預先建置 : 119, 137 pytorch: 94, 143, 147 132, 134, 136, 138,
premium: 114, 125 147, 150, 158, 160
預覽 : 76 Q 結果 : 5, 8, 18, 20, 29, 32,
隱私權 : 11 34, 50, 54, 56-57, 60,
品質 : 4-5, 109, 114,
私人 : 11, 14, 118 81, 90, 112, 130, 141, 145
127, 131-132, 146
程序 : 136, 156 結果集 : 65
查詢 : 23, 31, 59-60, 70-72,
程序 : 4, 8, 16, 18, 114, 117, 145-146, 158 零售 : 2, 9, 92, 96, 106,
22-23, 32, 67, 91, 132-133, 139, 155
佇列 : 110, 132-135, 155
107, 109, 131, 137, 142, 健全 : 4, 9, 16, 71-72
快速入門 : 34, 36
146-147, 157, 159 執行階段 : 117, 120,
quotechar: 121
處理 : 2, 4, 8, 10, 13, 16, 122, 140-141
23, 29, 32-33, 67, 70,
R
90, 92, 107, 111, 113, S
116-117, 120, 137, 159 提高 : 131
沙箱 : 115-116
生產 : 13-14 牧場主人 : 3
可擴充 : 4, 17, 21, 67,
產品 : 1-2, 4, 6-7, 9-10, 即時 : 8, 17, 21, 23, 65, 95,
70-71, 111, 117, 137,
14-15, 21-22, 24, 26, 29, 103, 105-106, 108-110,
140, 154, 156, 160
67, 93, 106-107, 110-111, 130-131, 136-137, 145,
調整 : 5, 12-13, 15, 26, 71
117, 126, 129-130 154-155, 157, 159
掃描 : 155
設定檔 : 110-111, 129 記錄 : 5, 19, 107, 139, 145
結構描述 : 18-19, 23,
程式 : 6, 106, 110 復原 : 18, 30, 149
118, 120-122 67, 69, 71-72, 89-90, 84-85, 108, 110, 112,
畫面 : 84 92-93, 95, 105-106, 115-116, 122, 137, 141-142
指令碼 : 11, 45-48, 109, 112, 114-115, 117, 存放區 : 106, 108-111,
60, 76-78, 80 122, 125-128, 131-132, 125, 144-145
搜尋 : 3, 34, 72, 92, 97 137-139, 142, 147, 149, 策略 : 157
節 : 4, 17-18, 29, 33, 41, 43, 151, 154, 159-160 串流 : 20, 141
54, 56, 60, 64, 71-72, 74, 工作階段 : 142 串流處理 : 114,
78-79, 82, 86-87, 89, 設定 : 7-8, 15, 74, 92, 101 136-137, 140-141
98, 126, 146, 158, 160 共用 : 71, 130 簡化 : 131, 146
安全 : 22, 70, 111, 116, 程式碼片段 : 121-123, 字串 : 21
127, 140, 154, 156 143, 145-146, 148, 151 結構 : 4
安全性 : 11, 30, 37-38, 65, 軟體 : 1, 9, 28, 68, 結構化 : 4-5, 13, 18-23,
69-71, 95, 115, 118-119, 93-94, 124, 139 68, 70, 107-109, 111,
122, 125-128, 133, 135, 解決方案 : 9-10, 14, 18, 113, 115, 140-141, 157
138, 147, 149, 151 33, 106, 110, 112-114, studio: 7, 16, 27-28, 33,
區段 : 113, 140 117, 126-129, 132-138, 41-43, 45, 48, 50, 52,
選取 : 34, 43, 45, 48-50, 140, 154, 156, 158, 160 54, 56, 58, 60-61,
52-54, 56, 58, 60-62, 來源 : 1, 4-5, 14, 16, 18-23, 64-65, 67, 71-72, 74, 79,
64, 70, 76-77, 80-81, 28-29, 32, 52, 68, 82, 89, 93-95, 98-99,
84, 101, 123, 145, 152 70-71, 84-85, 94, 96, 118, 151, 157-158
選取器 : 86 108-111, 114-115, 119, 125, 子集 : 6
無伺服器 : 28, 31, 50, 128-130, 134-137, 140, 支援 : 4, 11, 14, 17, 19,
59-60, 65, 74, 91, 144, 154-155, 157, 159 21, 28, 31-32, 65, 69,
126, 131, 158-159 splunk: 107 91-92, 95, 118, 126-127,
伺服器名稱 : 122 sqlpool: 44-45, 48, 138, 147, 151, 154
伺服器 : 14-15, 107, 54-55, 58 synapse: 4, 9-11, 14-17,
113, 126, 128, 144 sqlquery: 145 22-23, 26-39, 41-43,
服務 : 1-2, 7, 9-11, 13-16, 戳記 : 19-20 45, 48, 50, 52, 54,
22-23, 28, 31-32, 65, 標準 : 114, 149-150 56, 58-61, 64-65, 67,
68-69, 73-74, 89, 陳述 : 47, 77, 135 70-77, 79, 82-83, 89,
91-92, 96, 110, 114, 117, 儲存體 : 6, 10, 15, 18-19, 91, 93-96, 103, 106,
119-122, 124, 127-128, 21-22, 30, 32, 36-37, 113-115, 117-123, 128-129,
132, 134, 137, 139, 47, 59-60, 69, 76, 97, 138-139, 141-143,
141-142, 145, 148, 150, 111, 113-116, 120-121, 147, 150, 157-160
152, 157-158, 160 123, 125, 128, 137, 語法 : 158
服務 : 3-5, 7, 9-18, 20, 140-141, 144-145, 148 系統 : 5, 18-21, 36,
22, 24, 28-30, 32-34, 儲存 : 5, 17-18, 22-23, 71, 92-93, 110, 114,
127-128, 136, 138 V
T 驗證 : 16, 107, 110, 114, 146
驗證 : 127, 146, 154
tableau: 24, 118 有價值 : 4, 107-108
資料表名稱 : 123 varchar: 46-47
資料表 : 21, 48, 69, 125 變數 : 6, 13
表格式 : 107, 115 多種 : 4, 93, 95, 107,
稅金 : 47 111, 124, 137
taxitrip: 46-49, 55-56 版本 : 119, 146, 148, 150
技術 : 13, 69, 106-107, 虛擬 : 9, 11, 13-14, 89,
110, 112, 132, 134, 136 93, 100-101, 118,
科技 : 3, 8-9, 20, 159 128, 135, 139, 151
tensorflow: 89, 91, 視覺化 : 24, 41, 57,
94, 143, 147 67-69, 72, 89, 102,
TB: 4-5, 12, 14-15, 108 124, 128, 157, 159
測試 : 9, 14, 112, 127, 155
工具組 : 160 W
流量 : 5, 7, 96, 136, 140-141, 倉儲 : 2, 4, 7, 15-18, 22-23,
144, 151, 154-155 26-31, 33, 65, 67, 70-71,
訓練 : 21, 23, 91-92, 100, 94-96, 105, 107, 114,
112, 124, 146-147 117-119, 135, 157-160
傳輸 : 22-23, 69, windows: 9, 47, 67-68,
76, 124, 144 72, 77-78, 83, 91,
轉型 : 19, 23, 29, 89, 92, 93, 120, 122, 138
109, 115, 119, 124, 141, 143 工作負載 : 7, 13, 31,
運輸 : 5, 115 143, 151, 156, 160
翻譯 : 92-93 研討會 : 107
觸發 : 62-64, 101, 113, 工作區 : 25, 27, 32-38,
128, 149, 151 41-43, 65, 69-75, 77,
79, 82, 85-86, 88-89,
U 92-94, 96-98, 148, 158
整合式 : 27-28, 30, 65,
67, 70-71, 96, 103, 117, Z
142, 157-158, 160
壓縮 : 115
更新 : 85, 134, 145
分區 : 116
使用者名稱 : 122

You might also like