2018數(shù)據(jù)庫(kù)技術(shù)發(fā)展趨勢(shì)
當(dāng)前,正由IT時(shí)代進(jìn)入DT時(shí)代,隨著移動(dòng)互聯(lián)網(wǎng)、物聯(lián)網(wǎng)的發(fā)展,企業(yè)正產(chǎn)生大量的數(shù)據(jù),而數(shù)據(jù)的存儲(chǔ)和組織離不開(kāi)數(shù)據(jù)庫(kù)技術(shù),更多的公司意識(shí)到了數(shù)據(jù)能夠?yàn)楣編?lái)商業(yè)利益,于是如何管理和利用好數(shù)據(jù)已經(jīng)變得越來(lái)越重要。
挖掘數(shù)據(jù)的價(jià)值,對(duì)數(shù)據(jù)進(jìn)行分析,讓數(shù)據(jù)指導(dǎo)決策已經(jīng)成為很多公司最重要的工作之一,因此選擇合適的數(shù)據(jù)庫(kù)系統(tǒng)對(duì)公司的技術(shù)發(fā)展至關(guān)重要。
筆者曾經(jīng)在某大型互聯(lián)網(wǎng)公司負(fù)責(zé)Hadoop平臺(tái)及部分MySQL數(shù)據(jù)庫(kù)的管理,工作中涉及到對(duì)DBMS的選型、管理及優(yōu)化等工作內(nèi)容,筆者認(rèn)為,未來(lái)數(shù)據(jù)庫(kù)發(fā)展將有三大趨勢(shì):
一、數(shù)據(jù)庫(kù)管理技術(shù)正在向AI方向發(fā)展
由于DBMS的發(fā)展越來(lái)越快,功能越來(lái)越多,需要優(yōu)化的參數(shù)內(nèi)容也相對(duì)更多,而各個(gè)公司的應(yīng)用場(chǎng)景不同,對(duì)數(shù)據(jù)庫(kù)的要求也各有特點(diǎn)。傳統(tǒng)DBMS對(duì)管理人員要求專業(yè)性高,成本也很高,DBMS可以處理大量的數(shù)據(jù)和復(fù)雜的負(fù)載工作,但是卻難以管理,因?yàn)樗鼈兙哂袛?shù)百個(gè)配置選項(xiàng),用于控制諸如用于緩存的內(nèi)存量以及將數(shù)據(jù)寫(xiě)入存儲(chǔ)器等因素。
基于這些原因,一些DBMS與AI的結(jié)合相繼出現(xiàn),例如Oracle提出的自治數(shù)據(jù)庫(kù)的概念,以及“OtterTune”,OtterTune是亞馬遜和卡內(nèi)基梅隆大學(xué)一起開(kāi)發(fā)的機(jī)器學(xué)習(xí)自動(dòng)化調(diào)整DBMS的系統(tǒng),并公布起設(shè)計(jì)論文和開(kāi)源項(xiàng)目,重點(diǎn)解決DBMS長(zhǎng)期存在的一些問(wèn)題:
1、對(duì)管理人員專業(yè)性要求高;
2、管理成本高;
3、無(wú)法實(shí)現(xiàn)配置資源***化等一系列問(wèn)題。
據(jù)了解,OtterTune可以自動(dòng)為DBMS的配置選項(xiàng)找到***的設(shè)置方法。
OtterTune目標(biāo)是使任何人都更容易部署數(shù)據(jù)庫(kù)管理系統(tǒng),即使是那些在數(shù)據(jù)庫(kù)管理方面沒(méi)有任何專業(yè)知識(shí)的人也可以使用它。
OtterTune與其他DBMS配置工具不同,因?yàn)樗脧南惹暗腄BMS部署調(diào)整中學(xué)到知識(shí)。大大減少了調(diào)整新的DBMS部署所需的時(shí)間和資源。
為此,OtterTune維護(hù)了從以前的調(diào)優(yōu)會(huì)話收集的調(diào)優(yōu)數(shù)據(jù)庫(kù)。它使用此數(shù)據(jù)構(gòu)建機(jī)器學(xué)習(xí)(ML)模型,以捕獲DBMS如何響應(yīng)不同的配置。OtterTune使用這些模型來(lái)指導(dǎo)新應(yīng)用程序的實(shí)驗(yàn),推薦改進(jìn)目標(biāo)參數(shù)的設(shè)置(例如,減少延遲或提高吞吐量)。
AI與DBMS的結(jié)合目前已經(jīng)開(kāi)始嘗試,隨著技術(shù)的發(fā)展,未來(lái)應(yīng)該會(huì)變的更加成熟,然而,我并不以為,AI的出現(xiàn)會(huì)讓DBA失業(yè),DBA的工作對(duì)于數(shù)據(jù)庫(kù)的管理依然非常必要,并且各類AI工具的研發(fā)和使用通常也是由經(jīng)驗(yàn)豐富的DBA來(lái)完成。
例如,我在工作中也曾經(jīng)通過(guò)客戶服務(wù)器的硬件配置及業(yè)務(wù)場(chǎng)景來(lái)自動(dòng)生成大數(shù)據(jù)系統(tǒng)的配置文件,這在某種意義上也是一種AI的實(shí)現(xiàn),而這個(gè)工具的實(shí)現(xiàn)是基于DBA平時(shí)對(duì)系統(tǒng)參數(shù)調(diào)整的經(jīng)驗(yàn)才實(shí)現(xiàn)的。
因此,我認(rèn)為作為DBA應(yīng)該積極的擁抱技術(shù)的變化,嘗試用各種手段來(lái)簡(jiǎn)化和優(yōu)化數(shù)據(jù)庫(kù)管理的工作,讓AI等技術(shù)成為一個(gè)未來(lái)的DBA所必備的知識(shí)。
二、經(jīng)歷了NoSQL,NewSQL時(shí)代正在到來(lái),融合OLTP和OLAP的HTAP發(fā)展迅速。
過(guò)去幾年,起源于Google三大基礎(chǔ)設(shè)施論文(GFS,Mapreduce和Bigtable),誕生了開(kāi)源的Hadoop系統(tǒng),通常用作公司對(duì)于海量非結(jié)構(gòu)化數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)及分析,得益于開(kāi)源社區(qū)的貢獻(xiàn)和各大互聯(lián)網(wǎng)公司的應(yīng)用,Hadoop生態(tài)系統(tǒng)迅速發(fā)展,已經(jīng)成為了OLAP方面對(duì)海量數(shù)據(jù)處理的事實(shí)標(biāo)準(zhǔn),盡管Hadoop生態(tài)系統(tǒng)已經(jīng)日趨成熟并被業(yè)界廣泛認(rèn)可,然而作為一個(gè)離線數(shù)據(jù)分析系統(tǒng),Hadoop無(wú)法實(shí)時(shí)對(duì)數(shù)據(jù)的分析提供結(jié)果,因此通常用作業(yè)務(wù)數(shù)據(jù)庫(kù)之外構(gòu)建一個(gè)新的數(shù)據(jù)倉(cāng)庫(kù),并且通常僅提供OLAP也就是數(shù)據(jù)分析方面的支撐,這就要求在傳統(tǒng)的數(shù)據(jù)庫(kù)和Hadoop之間構(gòu)建一套ETL系統(tǒng),用作兩者之間數(shù)據(jù)的導(dǎo)入導(dǎo)出,這就使得數(shù)據(jù)庫(kù)和數(shù)據(jù)倉(cāng)庫(kù)的管理更加的復(fù)雜。
Hadoop系統(tǒng)作為一個(gè)龐大的開(kāi)源系統(tǒng),往往需要很多組件才能滿足業(yè)務(wù)的需求,所以我通常認(rèn)為基于Hadoop構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)滿足OLAP的需求目前仍存很多不足,而NoSQL數(shù)據(jù)庫(kù)的不斷發(fā)展,也為很多大數(shù)據(jù)量業(yè)務(wù)的發(fā)展帶來(lái)了福音。
例如可以通過(guò)Hbase來(lái)管理近千億的url數(shù)據(jù),并且NoSQL數(shù)據(jù)庫(kù)通常是可以動(dòng)態(tài)擴(kuò)容并且支持容錯(cuò),但是NoSQL系統(tǒng)的缺點(diǎn)也非常的明顯,例如應(yīng)用場(chǎng)景相對(duì)簡(jiǎn)單,通常無(wú)法兼容傳統(tǒng)的sql語(yǔ)句,多表關(guān)聯(lián)以及事物等需求也通常無(wú)法滿足。對(duì)于開(kāi)發(fā)人員還需要重新學(xué)習(xí)NoSQL的API和使用方式,帶來(lái)了額外的代價(jià)。
基于上述原因,出現(xiàn)了融合OLTP和OLAP的一種提法HTAP,意味著可以通過(guò)一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)同時(shí)滿足事務(wù)性需求和分析型需求,而***代表性的就是Google的Spanner+F1的論文,產(chǎn)生了一批NewSQL系統(tǒng)。
例如CockroachDB和國(guó)內(nèi)PingCAP團(tuán)隊(duì)開(kāi)發(fā)的TiDB,以TiDB為例,TiDB采用Raft實(shí)現(xiàn)分布式協(xié)議,并且完全兼容MySQL的客戶端,這對(duì)筆者本人也非常有吸引力,即可以用熟悉的MySQL的接口,又不需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行分庫(kù)分表,既實(shí)現(xiàn)了分布式,又減輕了用戶的學(xué)習(xí)成本,對(duì)于企業(yè)來(lái)講,可以通過(guò)構(gòu)建一套分布式數(shù)據(jù)庫(kù)系統(tǒng),同時(shí)滿足事務(wù)性和分析型需求,減輕系統(tǒng)復(fù)雜性的同時(shí)也提高了效率。
在這里向TiDB團(tuán)隊(duì)致敬,在數(shù)據(jù)庫(kù)領(lǐng)域作出了***的開(kāi)源項(xiàng)目,可以說(shuō)是具備里程碑的意義。HTAP將成為未來(lái)的數(shù)據(jù)庫(kù)的主流發(fā)展趨勢(shì)。
三、 時(shí)序數(shù)據(jù)庫(kù)正在崛起
物聯(lián)網(wǎng)發(fā)展勢(shì)頭迅猛,互聯(lián)網(wǎng)和傳統(tǒng)公司也爭(zhēng)相布局,隨著物聯(lián)網(wǎng)的發(fā)展,傳感器等產(chǎn)生了大量的數(shù)據(jù),而這些數(shù)據(jù)往往都是時(shí)間順序,在其他一些應(yīng)用場(chǎng)景,例如金融領(lǐng)域的,股票交易,匯率等以及Devops的監(jiān)控?cái)?shù)據(jù),都是屬于時(shí)序數(shù)據(jù)。
基于這些場(chǎng)景產(chǎn)生了時(shí)序數(shù)據(jù)庫(kù)的概念,時(shí)序數(shù)據(jù)庫(kù)可以對(duì)時(shí)間屬性進(jìn)行特殊的索引,實(shí)現(xiàn)數(shù)據(jù)的快速查詢以及更高的壓縮,例如InfluxDB項(xiàng)目,InfluxDB是一個(gè)使用Go語(yǔ)言開(kāi)發(fā)的分布式時(shí)序、時(shí)間和指標(biāo)數(shù)據(jù)庫(kù),無(wú)需外部依賴。特別適合處理和分析資源監(jiān)控?cái)?shù)據(jù)。
筆者在物聯(lián)網(wǎng)項(xiàng)目已經(jīng)嘗試使用了InfluxDB,用于存儲(chǔ)大型中央空調(diào)設(shè)備產(chǎn)生的數(shù)據(jù),目前項(xiàng)目已經(jīng)穩(wěn)定運(yùn)行半年,與傳統(tǒng)DBMS相比,InflluxDB的存儲(chǔ)空間減少了近70%,存儲(chǔ)和查詢效率也有大幅度提升,并且通過(guò)InfluxDB集成的聚合函數(shù)和連續(xù)查詢功能,可以自動(dòng)生成數(shù)據(jù)的日?qǐng)?bào)表、月報(bào)表、年報(bào)表,極大減輕了開(kāi)發(fā)成本和系統(tǒng)復(fù)雜度。
同樣,國(guó)內(nèi)由陶建輝領(lǐng)銜的濤思數(shù)據(jù)(TAOS Data)團(tuán)隊(duì)也正在做時(shí)序數(shù)據(jù)庫(kù)產(chǎn)品TDengine,目前已經(jīng)開(kāi)放測(cè)試,希望更多的國(guó)內(nèi)團(tuán)隊(duì)做出屬于我們自己的優(yōu)秀數(shù)據(jù)庫(kù)產(chǎn)品。
四、結(jié)語(yǔ)
數(shù)據(jù)庫(kù)作為IT技術(shù)架構(gòu)的核心,新技術(shù)層出不窮,隨著物聯(lián)網(wǎng)及人工智能時(shí)代的到來(lái),數(shù)據(jù)庫(kù)技術(shù)迎來(lái)高速發(fā)展期,DBMS與AI的結(jié)合,HTAP以及時(shí)序數(shù)據(jù)庫(kù)將解決企業(yè)海量數(shù)據(jù)增長(zhǎng)帶來(lái)的各種需求及問(wèn)題。