這兩年我所看到的資料庫的發展
應客戶要求,給他們聊一下資料庫領域這兩年在做什麼。自從加入創業公司以來,我也看了很多產品,觀察過很多DB類的創業公司,交際的範圍也從興趣轉到資料庫範圍,參加過很多技術聚會,集合自己規劃產品的想法,還是有很多可以講的,於是就列了一個提綱。技術人員的問題不是把技術說清楚,是怎麼把技術的價值講給客戶,尤其是大客戶,所以先把技術部分整理了下。
分析型資料庫的活躍
資料庫最近幾年的繁榮主要在實時分析領域。數據存儲的積累導致海量數據的產生,數據挖掘的價值持續放大,數據分析的需求不停催生對資料庫查詢性能的要求。從學術界到開源社區、商業公司,都在圍繞資料庫的查詢性能推陳出新:
需要注意的是,分析性資料庫(OLAP)注重數據的分布,對事務能力有所降低,往往犧牲了實時寫和更新的部分能力。
橫向擴展
數據的增長勢必帶來存儲和查詢能力的擴展需求,以至於從16年底開始,資料庫都不好意思再做單機資料庫方案了。
RDB的回歸
NoSQL適用場景的細化
互聯網爆發過後的後互聯網時代,大數據對資料庫的要求跟互聯網時代有所不同。資料庫使用者回歸理性,能認識到NoSQL資料庫並不是完美的解決方案,而是針對具體的數據場景的狹義資料庫。NoSQL的使用好壞取決於架構師或者程序員對數據場景的理解,也依賴對資料庫的調優能力。
隨著NoSQL的使用場景明確,人們還是需要更加通用的關係型資料庫來儘可能的做統一數據管理,兼顧實時讀寫、結構化/非結構化的混合存儲能力。PostgreSQL對JSON這樣的半結構化數據的友好支持,直接導致文檔資料庫Mongo的日漸式微。
SQL能力是RDB重新受歡迎的最重要原因。具備複雜編程能力的程序員還是稀少的,眾多的NoSQL對集成要求過高,難以形成技術積累。數據的合併和即席查詢是數據分析領域習以為常的,NoSQL在這方面就捉襟見肘。技術圈也是合久必分分久必合,標準化才利於技術產品的推廣和方案的落地。機器學習領域選擇了Python作為標準語言,那麼兵家必爭之地的資料庫領域需要SQL作為統一的訪問介面,很多資料庫發展過程中,都要考慮到這一點。DBA輝煌的年代,培養了眾多SQL達人,因為NoSQL的發展,讓這部分人有點無所適從的,「SQL->數據分析->大數據」這樣的路線,技術路線更好走。
大數據平台建設為目標的異構數據架構
印象15年以來有個很火的詞叫數據資產,擴大了數據管理的範圍,催生了大數據的需求。以前的硬體成本和人力成本以及技術,讓我們更關注關鍵數據的管理,現在連日誌都要保存分析,大量的價值低密度的數據在被重視,通過大數據的產品和技術管理起來,等待何時的時機和技術去數據變現。
數據的概念被放大,每個行業的數據呈現繁雜不同的數據特徵。以工業場景為例,數據以設備的海量時序數據為主;醫療場景,會有大量的影像處理需要處理,還有很多現有系統的非結構化數據需要提取。所以具體行業肯定是通用產品+行業解決方案這樣的異構架構,除了傳統的表結構數據,我們有相當比例的離線文件、半結構化數據需要管理。
屬於BI範疇的報表、數據挖掘和可視化仍然是數據驅動應用的主要價值。資料庫建設要充分考慮未來BI場景。
BI可以通過Power BI、OBIEE這樣的平台來實現,也可以輕量的BI軟體Tableau、SuperSet來做。不同的業務場景需要不同的BI能力和數據通道。
數據平台的建設要符合AI計算的架構要求,支撐AI建模、測試、部署的全過程。AI的痛點還在計算力和業務能力上,數據的能力先行發展了多年,不是瓶頸。跟AI如何契合,是現在資料庫普遍想發力而又不知道如何發力的點。
時序資料庫的活躍
DB-Engine 2017的年終總結顯示,時序資料庫在2017年非常活躍。時序資料庫不是一個通用的資料庫,很多KV資料庫都在往時序資料庫領域發展分支。2017年或者更早之前的時序資料庫主要是為了實時監控設計的,在運維後端發光發熱,很多平台都會設計一個小型的時序資料庫來支撐監控。但是隨著大數據開始覆蓋工業領域,以及一些時序演算法的流行,專門的時序資料庫開始走上前台,作為數據採集的方案,或者作為數據持久化存儲的方案。有了行業解決方案的落地,隨著對具體場景的處理能力最優化需求,包括金融、設備管理、能源等領域,選用時序資料庫做存儲分析日益增多。時序資料庫+流計算這樣的搭配是比較流行的應用框架。
資料庫與雲計算、容器
資料庫是天然的多租戶模型,但是虛擬化資源下的性能表現很難下定論。也有很多聲音反對資料庫的docker化,鮮有生產環境使用。出於彈性計算的考慮,仍受大廠的青睞,畢竟資料庫服務化後更容易賣。
優秀的產品和理論
冗餘:Ruft、Paxos
KV存儲:RocksDB
通信:gPRC
加速策略:LLVM
里程碑式的產品:Google Spanner;Amazon Dynamo;Ali PolarDB;Snowflake
語言:Go
工具集
資料庫開發者關注內核較多。而數據產品需要關注更多的工具鏈,比如ETL、分散式中間件、監控、部署。
以ETL發展為例,相比傳統的ETL工具,現在的ETL增加新的高級特性
異地多中心
數據的安全在技術圈關注的不多,大廠對災備更重視。阿里X-DB、蘇寧雲商最近倒騰最多的是異地多中心。
融合:1個就好
不管是異構的數據架構,還是集成的AI/BI的ABC平台,企業自建的成本確實很高。數據盡量只有一份存儲,統一的監控運維,統一的數據訪問,是這樣的平台產品化的的方向。平台產品不能只追求技術上的先進,要兼顧使用者的運維門檻和二次開發複雜度。
All In One Product:Oracle12c架構
All In One Ecosystem: Hadoop
All On One Cloud:天數的SkyDiscovery機器學習平台產品
我們的努力方向是,讓一個大的平台看起來用起來就是1個產品,運維亦是如此,畢竟我們面向的客戶不是BAT這樣的不乏工程師的技術型公司。
TAG:全球大搜羅 |