用Azure打造一個Data Platform

去年有幸在中原大學教導學生關於資料科學相關知識。然後就用Azure一些服務建構關於資料平台。為什麼需要資料平台?在IoT是世界中其實要蒐集結構化的資料並不是那樣容易,此外,很多人會很習慣資料讓資料能有結構化,方便做後續的資料分析。不過,在AI或是ML時代再加上需要大數據的世界,大家都希望能從大量數據中找出些甚麼或是AI化甚麼,但是,因為一開始蒐集資料就想要有邏輯性或是結構性或是主觀性
的資料,這樣做法,往往都會犧牲掉一些我們自己認為不需要的資料或是不重要資料。有時候這樣反而忽略掉許多資訊或是跡象,進而失去獲取資料價值機會

因此,在雲端時代的到來,我認為要先有一個資料平台去蒐集大量資料,無論是結構化或是非結構化的資料都因該被蒐集,除非可以很明確認為這資料是跟現行的Domain無相關,則可以不去規劃蒐集。因此,Data Platform規劃必須要三種角色

- 領域或是行業知識學家
- 資料科學家
- 平台架構師
其中,領域專家是相當重要,再搭配資料科學家,資料科學家並非企業的DBA,雖然,很多企業會是DBA兼任,但我認為這兩者因該要有所區分。在資料蒐集或是說領域資料蒐集時,現狀其實很難是一種結構化的資料,常常都是會是非結構化的資料儲存。尤其在我們要探索未知的領域知識時候,非結構化資料更是常見。
當時在中原大學分享案例是智慧製造,從設備或是相關製造端的來源的資料,有時候很難去結構化出來,甚至更難做到關聯性。有時候要做到結構化,資料表欄位就不知道要設計多少個。
那時我搭建的資料平台剛好用到下面幾個Azure 資料面的服務
Azure Data Lake Store
關聯式資料庫雖然最常見的資料儲存和建置資料倉儲和商業智慧解決方案,隨著物聯網的興起,也越來越多是屬於非結構化、非關聯的資料類型。因此,開始有了非關聯式的資料倉儲出現。Data Lake 是以自然格式儲存的資料存放庫,格式通常為 Blob 或檔案

Azure Blob Storage
Blob Storage是Azure最常使用的資料儲存服務,且再加上可儲存非結構化的資料,因此,對於要進行資料科學前期來儲存未整理的資料,是相當方便。但缺點就是無直接工具可以從Blob內搜尋資料或是直接進行邏輯運算與分析

Azure Cosmos DB
Azure Cosmos DB 是全域分散式資料庫服務。 支援無結構描述資料,可讓建置回應迅速且永遠可用的應用程式,以支援經常變更的資料,可以用 SQL、MongoDB、Cassandra,Tables 或 Gremlin 等 API,快速進行資料存取。
Azure SQL Database
到了Azure SQL部分,通常是先從上述非結構化資料,透過領域專家及相關人員分析出相關指標後,再匯入到關聯性資料。 關聯式資料庫,是數十年來處理此類資料最常用的工具之一。在Azure除了可以自建Microsoft SQL Server,也可以透過Azure SQL Data base Service建置SQL Database的PaaS級服務。這樣要做報表分析可支援工具也比較多一些
我大致上透過上面幾個儲存體將資料儲存,至於要使用Cosmos DB還是blob,個人認為如果只是先建置一個資料平台,這些資料並為要立即取出作分析,其實,用Blob是比較省錢,Cosmos DB在效能與分散式資料儲存是比較有優勢,但是換來的代價就是價格相對不便宜。因此,要規劃規劃使用資料儲存服務的效益,個人經驗還是必須依照不同型態或是需求資料去規劃,我通常會從下面幾個角度去看

當打造這樣的資料平台後,再來就是需要從這些資料萃取後,進行一系列的資料分析、應用和發現。不過,很多企業都認為當資料蒐集好之後,就可以很快做出資料分析、發現,甚至AI,或是認為後面一切都就可以很順遂。
其實,當資料蒐集好後,到真正要把資料變成有價值的知識或是AI,要投入的人力其實是更多。像是準備可用數據、建立AI / ML 模型,到模型訓練,不同Case,都是需要重複這些流程,很難用生產模式方式,認為只要做出一次,後面就可以依序套用,唯一可以套用只有準備可用數據、建立AI / ML 模型,到模型訓練
這樣吧,但這個用講的,大家都會知道,但是做的過程投入的心血是需要很大量的



而認為只要把原本職務是DBA的人就可以轉換成資料科學家,如同,下面所定義

我覺得必須有一些行業知識再加程式開發能力,以及對於數據統計敏感度高的人機會才可能會大一些。
個人覺得想要把資料科學效益好好應用到實際場域或是做為企業改善,必須要能體認這是一個需要
是一個需要跨部門、跨領域的工作;是一個需要不斷重複試驗的工作。
以上是個人的淺見