聽聞Teradata退出中國,我想起了我經歷過的一個數倉專案
昨天,Teradata撤出中國,我想起了我在20年前做的資料倉儲專案。想當年Teradata是資料倉儲的代名詞啊,就如同現在搜尋東西好多人說百度一下一樣。
可惜我沒有用過Teradata。2002年,我基於SQLServer的資料倉儲+商業智慧做了一套所謂的決策支援系統。決策支援系統DSS,這樣的名字在當年很流行。
(1)
20年前的資料來源和現在仍然差不多:
-
不少來自Excel,那就ETL抽進來
-
有些想要採集的資料沒有應用軟體,那就用OA-無程式碼表單做個簡單應用錄入進來,然後再ETL抽進來
-
有些資料是專門的應用軟體沉澱下來的,ETL抽進來
所以第一個需要的就是ETL工具。我是2013年以前用SQLServer套件,記得SQLServer的ETL工具被命名為Integration Services。
(2)
多種資料來源的資料抽進來,因為他們都來自不同系統,所以有些公用的資料事實上是主資料,但是過去企業上應用都是一塊塊上的應用,財務部門上財務軟體供本部門的財務人員內部使用,銷售部門上銷售軟體供本部門的銷售人員內部使用,採購部門上採購部門供本部門的採購人員內部使用,所以事實上的主資料都是不統一的,事實上的同一個東西,在不同系統有不同名字、不同編碼、不同欄位。在日常應用軟體各自部門使用時沒啥問題,但是這次要做企業整體的決策支援系統,要給老闆看資料,這就必須要做統一。所以必須要有主資料管理系統,這就涉及到了MDM(Master Data Mgt.)。
(3)
主資料要人為地定義下來標準,然後做清洗-整合-統一,或者以誰為主做互相對映,這就涉及到主資料的複製分發或同步。我記得SQLServer有一個專門的Replication Services。現在在新一代大資料技術中,大家更經常使用Kafka。
(4)
除了主資料放在MDM裡,那些業務資料ETL來-清洗好,就放在事實表裡。這就涉及到ODS服務(Operational Data Store),以便下一步在資料倉儲裡建立模型-建立模型維度,然後把資料從ODS裡再抽取到資料倉儲裡,按照維度儲存取來,以後好做多維分析。
企業資料往往是文字型、結構性的,所以過去的ODS最擅長處理這類資料。網際網路公司的資料更加多樣化,部落格文章、郵件、IM訊息、文件、圖片、影片,所以才發明了Hadoop來充當資料湖。不過Hadoop資料湖擅長處理非結構化、多媒體資料,反而又不擅長處理文字型、結構性資料,所以現在人們又在探索湖上架倉、湖倉一體,如Delta、Hudi、Iceberg就是這麼探索著。
(5)
好,下一步這就涉及到了資料倉儲。我學習到的資料倉儲都是列式多維資料倉儲。但是現在很多人說資料倉儲就是個虛擬概念,不需要非得用多維資料倉儲,普通的行式關聯式資料庫就能搞資料倉儲。這就讓我比較懵啊,這和我的經歷不一樣啊。我想最起碼你也得用OLAP型資料庫啊,而不能用OLTP型資料庫啊。
所以對於中國客戶,目前的現狀主要是出複雜的二維報表,而不是做多維分析,我的建議是不要搞多維資料倉儲,不要用真正的資料倉儲產品,用OLAP型資料庫搞就行了。所以我更建議推薦類似Greenplum、ClickHouse、Apache Doris就可以。但是我堅決反對用OLTP關聯式資料庫搞資料倉儲。有的人是直接在OLTP SQLServer行式關聯式資料庫或者MySQL行式關聯式資料庫上搞所謂的資料倉儲,把所謂的資料倉儲、報表、商業智慧都混為一談,要麼都叫資料倉儲、要麼都叫商業智慧,真是偷樑換柱的可以啊。
(6)
按照領域-按照主題-按照模型-按照維度,把資料從ODS入倉。但是入倉過程中還有一個小插曲。因為有些複雜分析指標需要複雜計算出來,還得儲存起來,以便以後做歷史對比。
所以,需要專門的多維計算程式語言來做某些指標的複雜計算,計算出來結果再放進數倉裡。像SQLServer裡有DMX(多維擴充套件開發語言)就是幹這事用的。現在在開源新一代大資料技術中,其實Flink或Spark它們乾的就是這個事。
(7)
資料終於全都按維度條狀入了倉後,人們做的最常見的事情就是出複雜分析報表,需要很多關聯性的指標都配比出現在同一張報表裡。所以這裡就涉及到SQLServer的Rerport Service。
很多人不搞多維數倉,在OLTP關聯式資料庫上直接出複雜配比綜合分析報表,我見過有人寫了1000多行的儲存過程來出一張報表,根本很難閱讀看懂、修改、除錯跟蹤。
在90年代用Powerbuilder出複雜報表時有個工具叫Cross Table,我們叫交叉報表,我看在Excel裡叫Pivotal叫透視表。這都是做複雜配比綜合分析平面報表的常見工具。
(8)
還有一種根本不是報表,但被人們稱作報表,其實我把它稱為查詢Query,只不過用Grid顯示為Table格式。我想這類東西就不應該用多維資料倉儲搞,只需要從ODS事實表裡出就行。不過現在新一代大資料技術中,主要使用Presto這樣的大資料查詢引擎來搞。
SQLServer商業智慧套件裡還有一個服務叫Index Services,就是全文檢索服務。不過現在新一代大資料技術中,主要使用ElasticSearch這樣的大資料搜尋引擎來搞。
(9)
還有一種更復雜的視覺化分析,它既帶有視覺化的特點,又帶有分析的特點,我們把它叫做Cube。
我在SQLServer商業智慧套件裡、在IBM Cognos套件裡,都使用過Cube。它可以上鑽下鑽、旋轉、切片。我看在新一代大資料技術中,Kylin就在重點做這個。
(10)
除了Cube這種既帶有視覺化特點又有分析特點的工具之外,還有一種真正的分析,在SQLServer裡叫Analysis Services。也有人稱作是資料探勘。
我用Analysis Services做過分類演算法、聚類演算法、決策樹演算法、線性迴歸演算法、時序演算法。當時微軟還沒提供神經網路演算法。現在新一代大資料技術Spark套件中,也有MLLib,就是機器學習演算法庫,也是這些。不過現在人工智慧Tensorflow平臺和Pytorch平臺上的,都已經是深度學習的各種演算法和模型了,這和機器學習演算法庫是另外的路數了。
(11)
我幾乎把SQLServer商業智慧套件裡的產品都用了遍,不過事實結果是:
賣的不好,可以在宣傳和打單時展示實力,但實際上沒賣出幾套。
實施很複雜,要做很多SQL編寫工作。過去的實施顧問還會資料庫結構和SQL,現在的實施顧問只會功能介面配置了。雖然已經內建了不少業務分析模板,但是總要做一些從展示修改到資料計算修改到資料ETL抽取修改的東西。
客戶使用過程中,倒是出了很多內建的複雜的配比指標報表視覺化和圖表視覺化,但是很不幸,客戶業務專業能力水平比較低,看不懂這麼複雜的配比綜合報表。
真是有什麼樣水平的甲方,就需要匹配什麼樣水平的乙方。
(12)
你問我這十多年來產生了那麼多新一代大資料技術,到底解決了啥問題?
我想說的是:這些新一代大資料技術,主要適用於網際網路公司,他們主要是多模態的資料,而且是真正的海量資料。而中國企業內部應用,主要是文字型結構性資料,而且是假的海量資料(每天連十萬條重要的業務資料記錄都產生不了),所以我的觀點是:中國企業內部應用資料分析,建議還是用20多年前老的商業套件來搞,不要趕時髦。因為新一代大資料技術,又不適合,又更復雜,沒那麼必要。
不過,我也知道我這麼說也是白說。乙方總得要講新故事新產品,管你需不需要新一代大資料技術,搞就是了。掙錢嘛,不寒磣。
來自 “ 阿朱說 ”, 原文作者:呂建偉;原文連結:https://mp.weixin.qq.com/s/K64FeQolMhhgXosKMblDkQ,如有侵權,請聯絡管理員刪除。
相關文章
- 我做IT專案的專案經理的經歷(轉)
- 6個專案帶給我的專案經驗
- Teradata退出中國背後:雲數倉成為行業主流發展趨勢行業
- 請給我一個使用Struts的理由。 (我從專案工程開發經驗談拷過來的)
- 經驗&教訓分享:我的第一個機器學習專案機器學習
- 我的軟體專案過程管理經驗
- 假如我是一個專案總監/經理——我手寫我心
- 我的第一個Laravel專案Laravel
- 專案經理成長之路-我的大學(一)
- 我眼中的專案經理
- [軟體人生]關於離婚對孩子的影響——我想說,我經歷
- 我的軟體專案過程管理經驗(轉)
- 我的開發經歷
- 分享一個我的 Django 部落格專案Django
- 我大一學習C++的經歷C++
- 我踩過的聽過的那些坑
- 我經歷過的監控系統演進史
- 我的前端學習經歷前端
- 聊聊我找工作的經歷
- 分享我成為GDE(Google開發者專家)的經歷Go
- Teradata退出中國,您可以相信中國資料庫!資料庫
- 我做過的最糟糕的專案
- 高二的他已透過NOI保送北大了,讓我們一起了解他的資訊學奧賽學習經歷吧!!!
- 記一次我的 MySQL 調優經歷MySql
- 一個專案的前端佈局給我的思考前端
- 聊聊我所經歷的遊戲公司遊戲
- 我所經歷的Android面試Android面試
- 我的真實面試經歷薦面試
- 我是個失敗的產品經理,我走過這5個坑
- 我寫了一個開源專案AlphabetPyAlphabet
- 我如何用Django開發一個專案Django
- 親愛的專案經理,我恨你
- 親愛的專案經理 我恨你
- 我滴天!我曾經寫過 21 個巢狀的回撥巢狀
- 經歷虛假新聞指責後,Facebook擬推出新聞專案
- 如果讓我完善幾年前的一個專案,我會做哪些改進?
- 當我完善幾年前的一個老專案時,我做了哪些改進
- 我們是如何將一個專案做爛的