Data Warehouse 上雲趨勢

在 2020年九月,轟動一時的 Snowflake IPO新聞事件,連以價值投資見長的巴菲特 Warren Edward Buffett 也投了至少八億美金,三個月後這家公司的股價持續上漲,竟然水漲船高超越了IBM與AMD這些科技大廠。本文不談投資,但是會帶大家來了解資料倉儲在雲端的相關應用,以及發展的趨勢。

前言:延續Snowflake 的新聞,先簡單地介紹這家公司,再回過頭看看台灣雲端的發展現況,就能再展開資料倉儲的技術細節給大家…

  1. 如上圖,Snowflake 提供了客戶在商業智慧所需的一條龍服務。例如,資料倉儲主要是設計來解決四個問題,包括 Subject-oriented主題導向(非正規化被打散的資料,而且是主題式的資料集,例如銷售、庫存、行銷…)、Integrated整合(不是單獨部門,而是整合全公司)、Time-variant時間差異性(例如某個產品不會只有一筆一直被更新的值,而是會有不同時間點的資料,來滿足企業分析的需求)、Nonvolatile穩定(不會像帳戶餘額每分每秒變來變去,而是像每天結帳後的金額)。OLAP線上分析就是基礎於資料倉儲提供使用者,定期產出的分析,以及滿足 Ad-hoc當場分析的系統。Data science則包含了傳統的 Data mining與 AI人工智慧…
  2. 公有雲廠商為了因應客戶在商業智慧這個特殊領域的軟硬體需求,提供了雲端 on demand 的解決方案,有效地解決客戶在機房/硬體設備/空間/軟體使用者授權…的各種問題,尤其是針對週期性的單點尖峰(月、季、年底)與高昂的資料倉儲持有成本,提出了更彈性地收費模式。使用時才收費、用多少付多少、沒有低消成本(傳統資料倉儲一個專案都需要上千萬的建置金額)  
  3. Snowflake 於2012年成立於美國加洲,為了滿足大型企業對於商業智慧 BI的需求,尤其是著眼於企業在開發、測試、上線環境重覆高額的投資與維運上挑戰與困擾,於三年後已經成為 Gartner report  Magic Quadrant 魔術象限中 DWaas(Data Warehouse as a Service) 優勝的解決方案廠商。拜雲端科技的普及,接下來的幾年,除了能同時支援三家主流的公有雲(AWS, Azure, GCP),做到跨雲地的資料交換、資料探索,以最快速便捷的方式導入資料倉儲,並且不會被某一家公有雲廠商而綁住。所以能從大型企業迅速地擴展至中小企業。並且隨著其業務的快速成長,甚至還能吸引到雲端的巨擘 Salesforce 的投資成為其主要的股東,然後又順利的走上 IPO康莊大道,達到新的里程碑… 
  4. Microsoft 雖然沒有正式宣佈在 SQL Server MPP一體機的特殊版本(例如早期的 PWD, APS)停產,但是你 Road map 中不難發現,以及APS 官網的 Redirect 網頁的再導向,雲端的 Azure Synapse Analytics 產品才是目前的中流砥柱。
  5. 即使公有雲廠商陸陸續續地在台灣落地,但由於先天上台灣的人口稠密與物流的便捷,再加上優先考量CP值的企業文化,造成了台灣在雲端普及率低於五成的現象,尤其是新竹以北與以南存在著極大的差異。未來台灣南部的雲端市場上還有很大的成長空間…

資料倉儲應用情境:
untitled在上圖中,紅色的區域是微軟將商業智慧應用情境的歸納。一般來說,它依序可能會這樣的發生:

  1. 集中式的管理:企業透過手動接著是自動化的方式,將 Operation 營運端的資料蒐集,然後透過待會要介紹的綠色區域,轉換為 Business 決據支援的數據,由上而下,向企業內部進行戰略決策的傳達
  2. 自助分析:不同的部門,應用集中管理的 Data mart 資料超市資料,以自己的角度進行分析,產出戰術性的數據
  3. 多人協作:透過權限的管理,將戰略、戰術的數據做跨部門或是部門內的集思廣義,讓決策更加的周嚴與完整
  4. 隨手可得的行動應用:透過 Web 或是手機 App 的架構,讓員工可以隨時隨地的集思廣義
  5. 人工智慧的預測:以傳統的 Data mining 或是 Machine learning技術,以利決策的支援能更具前瞻性

在上圖中,綠色的區域是微軟將商業智慧在查詢技術的應用。包括了:

  1. ETL(Extract/ Transform/ Load):在非 Hadoop 的環境下,資料由 OLTP進入 OLAP依序依據商業邏輯,來進行資料連接與萃取、資料清理與轉換、資料載入(包含 Truncate再重新匯入) 三大流程
  2. 單一資料源的查詢:基礎於Cube 或是 Tabular 的模型,透過簡單的 SQL 或是 DMX(Data Mining Extensions) 語法查詢,來取得所需資料
  3. 跨資料源的查詢(補充):以 Data virtualization 技術在 on the fly 的情況下,來取得所需的資料
  4. 資料品質:以字典、Knowledge based、自然語言、Fuzzy的方式,來修正人工的 Key in 錯誤,以提升資料的正確性
  5. 資料整合:在 No code 的前題下,整合企業中不同應用系統,以滿足使用者對於資料的應用需求,例如 ERP, CRM, MRP, MES, KM ...

在上圖中,橘色的區域是微軟將商業智慧在查詢技術的應用。包括了:關聯式資料庫、非關聯式資料庫、OLAP、Streaming串流資料、企業內外部…等來源的結構化與非結構化資料

資料倉儲系統架構:
以下我們將介紹 Data Warehouse (上圖紅色框框的區域)其中的技術架構,若對上圖的全貌有興趣者,可以參考之前寫的文章
如果預算足夠,企業將會採用 MPP(Massively Parallel Processing) 架構一體機的解決方案,以地端的 Microsoft  APS(Analytics Platform System) 為例(前身為 Parallel Data Warehouse 縮寫為PDW),企業需要佈署 Control node與 Compute node來進行分散式的運算。經過比較 MPP 比起傳統的 SMP(Symmetric Multi-Processing) 大約可以快上50倍
設備架構再展開其細節
平行處理資料倉儲軟體

資料倉儲資料流:
資料存儲系統是MySql、Oracle、SQL Server還是其他系統。
資料倉庫結構及各庫表如何關聯,星型、雪花型還是其他。細節可以參考微軟官網做延伸的閱讀…
透過 Fact table (Measure 大多為數值型欄位)為中心,Dimension (又可稱為類別型,大多為文字型欄位)為周邊。這樣的設計可以兼具,未來資料空間的成長(Fact table 成長的比較快)、資料特性的區分(資料存儲與索引比較有效率)、易於變化資料的顆粒度(從至高點,逐漸往下展開)…等優勢

Illustration of a star schema因此 Star schema 的關聯性就會是由中心一對周圍多嘍!
Conceptual star schema像是階層式的產品大類、產品子類、產品名稱,就很適合Snowflake
Snowflake diagram example生產資料庫接收資料時是否有一定規則,比如只接收特定類型欄位。
生產資料庫面對異常值如何處理,強制轉換、留空還是返回錯誤。
生產資料庫及資料倉庫系統如何存儲資料,名稱、含義、類型、長度、精度、是否可為空、是否唯一、字元編碼、約束條件規則是什麼。
接觸到的資料是原始資料還是ETL後的資料,ETL規則是什麼。
資料倉庫資料的更新更新機制是什麼,全量更新還是增量更新。
不同資料庫和庫表之間的同步規則是什麼,哪些因素會造成資料差異,如何處理差異的。

資料倉儲主要 Player:
Snowflake Recognized as a Leader by Gartner

資料倉儲上雲的好處:

  1. 企業等級的雲端資料倉儲服務:除了尋找高可用性的解決方案,企業更希望可以花錢買到專業的服務來消除專案中的不確性風險,Azure 就能提供了這樣的解決方案
  2. 能將儲存與運算分開計價:這是雲端很基礎的優勢,在傳統的地端架構下,受限於硬體插槽的數量限制,所以 CPU + RAM 的運算量與硬碟的儲存空間也會是客戶的困擾之一,例如資料量大,即使計算目前不複雜,還是要採購大量的運算資源,以免將來的擴充成本或是採購 lead time 太長拖很久才到貨…
  3.  可暫停服務來節省成本:雲端強調用多少算多少,但用畢如果你移得不夠乾淨能是要算錢。但是微軟對於高單價的雲端資料倉儲,提供了較彈性的計價,當你按下暫停,一切就靜止了。比起 VM 虛擬機器,為了節省成本,你需要卸除雲端的網路、IP、運算規格、儲存空間…等動作,你只需要持續地繳納少少的 Azure data storage 並按下 Resume 回復,就能趕快算出月結分析,不必再費心 Debug 哪個環境細節沒有被重新建置回來…
  4. 透過 PolyBase 整合資料更方便:基礎於地端已經發展多年的技術,在雲端可以輕易地享受 Data virtualiaztion 的便利與好處
  5. 支援 Hybrid infrastructure:讓企業的商業模式不同限,不管是 Cloud native的新創,還是百年企業,全雲/全地/雲地各半… 在Azure 的環境下都能支援

資料倉儲發展趨勢:
除了資料分析的本質,隨著法規與企業營運的複雜化,還帶出了許多週邊的需求…

  1. 企業資料服務整合
  2. 排程作業自動化
  3. Meta data 管理
  4. 資料保護與法規遵循
  5. 資料品質管理
  6. 大數據界接與管理
  7. 文字探勘

結論:
隨著 Power BI、Tableau…等資料視覺化的強者,裡面內建的 VertiPaq 或是 Hyper技術,讓台灣的許多中小企業,在資料量不大(小於20TB)的狀況下,透過 ODS 短期內就能做出不錯的商業智慧成效了。隨著時間,你會發現沒有專業的BI報表設計師、DBA、Cloud專家的職務配置,報表會就會愈跑愈慢。所幸雲端不像地端,可能要浪費之前的投資,重買更大的伺服器來解決,只要加錢加項目就可以解決。但是如果你是二岸三地的台商,又有專線、資料編碼(GB、Big5、UTF16)、ERP、MES資料同步的需求,資料倉儲與OLAP才能解決你的問題。
資料就像水一樣,在你將資料集丟進視覺化工具之前,請先想一下你的原料!分析時,在水不多時 Excel 就可以搞定;遇到不同的地形地貌,水開始有了軟水、硬水、淡水、海水;你需要能規劃出,兒童池(最近三個月或是每半小時一次的戰報)、成人池(熱資料區,透過近二年的資料,可支援企業進行短期決策)、五公尺潛水池(冷資料區,存放大量歷史資料,可支援企業進行中長期決策)、SPA池(外部資料,天氣、新聞…等公開資訊或付費的產業分析,來協助衡量企業自身與競爭對手的差距,或是進行人工智慧分析)、蒸汽室(Streaming data 即時戰情室),方能隨心所欲,儘情分析!

李秉錡 Christian Lee
Once worked at Microsoft Taiwan