VLDB 2019 | 揭秘腾讯TDSQL全时态数据库系统
導(dǎo)語(yǔ):全時(shí)態(tài)數(shù)據(jù)為數(shù)據(jù)安全、數(shù)據(jù)重演、數(shù)據(jù)挖掘和AI技術(shù)的施展提供了物理基礎(chǔ)。這篇入選VLDB 2019的論文介紹,基于騰訊云TDSQL擴(kuò)展而來(lái)的全時(shí)態(tài)數(shù)據(jù)庫(kù)系統(tǒng)(T-TDSQL),在保證OLTP性能的前提下提供了輕量級(jí)的全時(shí)態(tài)數(shù)據(jù)管理功能和全時(shí)態(tài)數(shù)據(jù)的事務(wù)處理能力、以及集當(dāng)前態(tài)數(shù)據(jù)于生產(chǎn)系統(tǒng)集歷史態(tài)數(shù)據(jù)于分析型系統(tǒng)的集群架構(gòu),構(gòu)成了全時(shí)態(tài)數(shù)據(jù)的完備解決方案。
前言騰訊與中國(guó)人民大學(xué)于2017年起,依托于騰訊TEG計(jì)費(fèi)平臺(tái)部豐富的實(shí)戰(zhàn)經(jīng)驗(yàn)和中國(guó)人民大學(xué)數(shù)據(jù)工程與知識(shí)工程教育部重點(diǎn)實(shí)驗(yàn)室的多年學(xué)術(shù)積累,在數(shù)據(jù)庫(kù)前沿研究領(lǐng)域開(kāi)展了深入合作,研究成果已經(jīng)連續(xù)兩年入選國(guó)際頂級(jí)會(huì)議VLDB。(TDSQL帶你走進(jìn)數(shù)據(jù)庫(kù)頂會(huì)VLDB 2018 | 論文縱覽)。
VLDB 會(huì)議是國(guó)際公認(rèn)的數(shù)據(jù)管理與數(shù)據(jù)庫(kù)領(lǐng)域頂尖的三大學(xué)術(shù)會(huì)議(SIGMOD、VLDB、ICDE)之一,旨在展示和推廣領(lǐng)域內(nèi)最新的研究成果和核心科技。自1975年開(kāi)辦至今,VLDB會(huì)議已經(jīng)成功舉辦了44屆,每年的VLDB能在全球范圍內(nèi)吸引到大量?jī)?yōu)秀的研究人員、企業(yè)代表以及行業(yè)精英到場(chǎng)參會(huì),是一場(chǎng)不容錯(cuò)過(guò)的學(xué)術(shù)盛會(huì)。VLDB 2019會(huì)議于當(dāng)?shù)貢r(shí)間2019年8月26日至8月30日在美國(guó)洛杉磯召開(kāi),屆時(shí)團(tuán)隊(duì)將會(huì)對(duì)本次研究成果進(jìn)行公開(kāi)展示,盡請(qǐng)期待。
?
繼去年在VLDB2018上通過(guò)DEMO論文展示了合作成果MSQL+后 (基于TDSQL的插件式近似查詢工具),今年騰訊與中國(guó)人民大學(xué)最新聯(lián)合研究成果“ALightweight and Efficient Temporal Database ManagementSystem in TDSQL”成功被VLDB2019 IndustryTrack接收并將通過(guò)長(zhǎng)文形式發(fā)表。該研究成果由騰訊TEG計(jì)費(fèi)平臺(tái)部TDSQL數(shù)據(jù)庫(kù)團(tuán)隊(duì)與中國(guó)人民大學(xué)數(shù)據(jù)工程與知識(shí)工程教育部重點(diǎn)實(shí)驗(yàn)室深度合作完成。論文介紹了一款基于TDSQL擴(kuò)展而來(lái)的全時(shí)態(tài)數(shù)據(jù)庫(kù)系統(tǒng),該系統(tǒng)在保證OLTP性能的前提下,提供了輕量級(jí)的時(shí)態(tài)數(shù)據(jù)管理功能。本文將對(duì)論文研究成果進(jìn)行詳細(xì)的分析解讀。
圖1? VLDB官網(wǎng)截圖
?
騰訊TEG計(jì)費(fèi)平臺(tái)部擁有多年的數(shù)據(jù)庫(kù)實(shí)戰(zhàn)研發(fā)經(jīng)驗(yàn),其推出的金融級(jí)分布式數(shù)據(jù)庫(kù)TDSQL,承載了騰訊90%的金融、交易、計(jì)費(fèi)類業(yè)務(wù)。從2014年開(kāi)始,通過(guò)騰訊金融云平臺(tái),TDSQL對(duì)外提供穩(wěn)定可靠的云數(shù)據(jù)庫(kù)服務(wù),目前在公有云上服務(wù)金融機(jī)構(gòu)500余家,為44余家銀行及政企(包括中國(guó)銀行、微眾銀行等)提供專有云服務(wù),在業(yè)內(nèi)享有較好的口碑。中國(guó)人民大學(xué)數(shù)據(jù)工程與知識(shí)工程教育部重點(diǎn)實(shí)驗(yàn)室在數(shù)據(jù)庫(kù)基礎(chǔ)研究領(lǐng)域底蘊(yùn)深厚,作為國(guó)內(nèi)最早開(kāi)展數(shù)據(jù)庫(kù)相關(guān)研究的實(shí)驗(yàn)室,目前已經(jīng)獲得了國(guó)家科學(xué)技術(shù)進(jìn)步二等獎(jiǎng)、教育部科技進(jìn)步一等獎(jiǎng)等殊榮。
研究背景時(shí)態(tài)數(shù)據(jù)主要指隨時(shí)間推移不斷發(fā)生變化的數(shù)據(jù),例如溫度、賬戶余額等數(shù)據(jù)。時(shí)態(tài)數(shù)據(jù)在現(xiàn)實(shí)生活中非常普遍,而在金融場(chǎng)景下,在數(shù)據(jù)庫(kù)層面時(shí)態(tài)數(shù)據(jù)管理尤為重要。例如,金融審計(jì)時(shí)需要獲取2018年11月08日至2018年11月10日的賬戶余額變動(dòng)情況。如果通過(guò)傳統(tǒng)數(shù)據(jù)庫(kù)(RDBMS)中的普通關(guān)系表進(jìn)行賬戶余額管理(如圖1所示),賬戶余額變動(dòng)不會(huì)被維護(hù),因而上層應(yīng)用需要通過(guò)日志等形式來(lái)額外記錄余額的每次變動(dòng),這會(huì)大大提高應(yīng)用復(fù)雜度;而采用如表2所示的時(shí)態(tài)數(shù)據(jù)表,余額的變遷被原生維護(hù)在數(shù)據(jù)庫(kù)中,即可準(zhǔn)確獲取到余額變動(dòng)數(shù)據(jù)(表中標(biāo)紅數(shù)據(jù))。
系統(tǒng)簡(jiǎn)介結(jié)合TDSQL系統(tǒng)的特點(diǎn),研究團(tuán)隊(duì)提出并實(shí)現(xiàn)了一個(gè)輕量且高效的全時(shí)態(tài)數(shù)據(jù)庫(kù)系統(tǒng),該系統(tǒng)可以在保留原有TDSQL強(qiáng)勁的OLTP處理性能的同時(shí),通過(guò)巧妙的系統(tǒng)設(shè)計(jì),提供了內(nèi)建的時(shí)態(tài)數(shù)據(jù)管理能力(如圖2所示)。
圖2? 系統(tǒng)概覽
1. 存儲(chǔ)
TDSQL全時(shí)態(tài)數(shù)據(jù)庫(kù)系統(tǒng)創(chuàng)新性地采用了一種混合存儲(chǔ)模式,來(lái)對(duì)時(shí)態(tài)數(shù)據(jù)進(jìn)行管理。系統(tǒng)將時(shí)態(tài)數(shù)據(jù)拆分為當(dāng)前數(shù)據(jù)和歷史數(shù)據(jù),針對(duì)不同的數(shù)據(jù)類型,分別采用不同的存儲(chǔ)策略。當(dāng)前數(shù)據(jù)管理模塊,采用了基于MVCC(多版本并發(fā)訪問(wèn)控制協(xié)議)設(shè)計(jì)的數(shù)據(jù)庫(kù)所普遍采用的段頁(yè)式結(jié)構(gòu),并且專門開(kāi)辟回滾段,來(lái)對(duì)更新或刪除操作產(chǎn)生的舊版本進(jìn)行暫存。在回滾段中暫存的數(shù)據(jù)會(huì)在數(shù)據(jù)庫(kù)進(jìn)行資源回收操作(如MySQL中的Purge和PostgreSQL中的VACUUM等)時(shí),遷移到歷史數(shù)據(jù)管理模塊,這個(gè)過(guò)程被稱為數(shù)據(jù)轉(zhuǎn)儲(chǔ)。這是一種異步的轉(zhuǎn)儲(chǔ)策略,因而幾乎不會(huì)造成性能損耗。歷史數(shù)據(jù)存儲(chǔ)模塊,通過(guò)k-v格式來(lái)進(jìn)行組織,可以大幅度縮小存儲(chǔ)開(kāi)銷。由于一個(gè)數(shù)據(jù)項(xiàng)會(huì)存在多個(gè)歷史版本,而這些歷史版本會(huì)在某些屬性上存在一樣的值,例如表一中的James被重復(fù)四次。因此,在歷史數(shù)據(jù)存儲(chǔ)模塊中,系統(tǒng)將每一個(gè)版本轉(zhuǎn)化為一條k-v,并且只存儲(chǔ)相較于上一個(gè)版本發(fā)生變化的屬性值。
?
2. 查詢與事務(wù)處理
系統(tǒng)對(duì)時(shí)態(tài)查詢處理邏輯進(jìn)行了針對(duì)性設(shè)計(jì)與優(yōu)化。通過(guò)專門的時(shí)態(tài)查詢編譯器,部分時(shí)態(tài)查詢條件(如有效時(shí)間查詢)會(huì)被重寫并拼接到WHERE條件中。而對(duì)于事務(wù)時(shí)間查詢,系統(tǒng)將其查詢條件轉(zhuǎn)化為了內(nèi)嵌的可見(jiàn)性判斷過(guò)程,從而使得時(shí)態(tài)查詢所獲取的數(shù)據(jù)滿足事務(wù)一致性的要求,保證數(shù)據(jù)的準(zhǔn)確性,這點(diǎn)在金融場(chǎng)景下顯得尤為重要。另外,通過(guò)持久維護(hù)事務(wù)狀態(tài),系統(tǒng)可以快速獲取到事務(wù)的執(zhí)行狀態(tài),結(jié)合時(shí)態(tài)數(shù)據(jù),即可原生支持事務(wù)級(jí)數(shù)據(jù)閃回等實(shí)用操作。對(duì)于歷史數(shù)據(jù),系統(tǒng)利用k-v存儲(chǔ)的特性,可以根據(jù)時(shí)間條件快速定位到所需數(shù)據(jù)版本,具備了較好的時(shí)態(tài)查詢性能,且在SQL語(yǔ)句的寫法上方便用戶直接使用SQL語(yǔ)句進(jìn)行查詢。
?
3. 架構(gòu)設(shè)計(jì)
系統(tǒng)體現(xiàn)了HTAC(HybridTransaction / Analytical ?Cluster,混合事務(wù)/分析集群)這一新型的系統(tǒng)架構(gòu)設(shè)計(jì)理念,如圖3。TDSQL全時(shí)態(tài)數(shù)據(jù)庫(kù)系統(tǒng)分為OLTP集群和OLAP集群,OLTP集群負(fù)責(zé)事務(wù)型業(yè)務(wù),OLAP系統(tǒng)處理分析型業(yè)務(wù),提供歷史數(shù)據(jù)的查詢分析等功能。通過(guò)統(tǒng)一路由模塊根據(jù)查詢語(yǔ)句、查詢操作的語(yǔ)義將SQL發(fā)送到對(duì)應(yīng)集群進(jìn)行處理。由于時(shí)態(tài)數(shù)據(jù)查詢等負(fù)載需要占用大量系統(tǒng)資源,這種拆分的系統(tǒng)設(shè)計(jì)可以盡量影響減小生產(chǎn)系統(tǒng)受到的性能影響。其次,歷史數(shù)據(jù)量級(jí)較大,OLAP集群通過(guò)擴(kuò)展存儲(chǔ)的方式,即可實(shí)現(xiàn)歷史數(shù)據(jù)的無(wú)限存儲(chǔ)。
圖3 T-TDSQL全時(shí)態(tài)數(shù)據(jù)庫(kù)系統(tǒng)架構(gòu)圖
論文貢獻(xiàn)論文提出了一種拓展的時(shí)態(tài)數(shù)據(jù)模型。除了在SQL:2011中定義的有效/事務(wù)時(shí)間屬性外,本模型通過(guò)新引入的事務(wù)ID屬性描述時(shí)間。MIN_ID與創(chuàng)建記錄的事務(wù)相對(duì)應(yīng),MAX_ID對(duì)應(yīng)于刪除/更新記錄的事務(wù)。事務(wù)ID能夠識(shí)別在同一事務(wù)中插入/更新/刪除的所有記錄,從而實(shí)現(xiàn)由于業(yè)務(wù)邏輯破壞數(shù)據(jù)的修復(fù)。
論文提出了一種內(nèi)建的時(shí)態(tài)數(shù)據(jù)庫(kù)解決方案,并針對(duì)TDSQL進(jìn)行了大量?jī)?yōu)化,最終實(shí)現(xiàn)了TDSQL全時(shí)態(tài)數(shù)據(jù)庫(kù)系統(tǒng)。同時(shí),該解決方案具有很強(qiáng)的通用性,可以方便的引入到其他數(shù)據(jù)庫(kù)系統(tǒng)中。通過(guò)引入異步數(shù)據(jù)遷移、增量歷史數(shù)據(jù)管理、原生時(shí)態(tài)查詢執(zhí)行器等策略,該解決方案具有輕量且高效的特點(diǎn)。
通過(guò)在真實(shí)場(chǎng)景和TPC基準(zhǔn)負(fù)載下的大量實(shí)驗(yàn),TDSQL全時(shí)態(tài)數(shù)據(jù)庫(kù)系統(tǒng)具有非常小的性能損失(相較于原始TDSQL系統(tǒng)),并且能夠快速響應(yīng)時(shí)態(tài)查詢,與其他現(xiàn)有的時(shí)態(tài)數(shù)據(jù)庫(kù)系統(tǒng)相比具有較好的性能。
通過(guò)TPCC測(cè)試基準(zhǔn),論文展示了時(shí)態(tài)數(shù)據(jù)管理對(duì)原有系統(tǒng)性能的影響情況。如圖3所示,在256、512、1024個(gè)數(shù)據(jù)倉(cāng)庫(kù)的場(chǎng)景下,基于TDSQL實(shí)現(xiàn)的全時(shí)態(tài)數(shù)據(jù)庫(kù)系統(tǒng)的系統(tǒng)性能相較于原始TDSQL下降率不到10%,領(lǐng)先于其他基于傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)實(shí)現(xiàn)的時(shí)態(tài)數(shù)據(jù)庫(kù)系統(tǒng)。
圖3? TPCC測(cè)試結(jié)果
另外,基于真實(shí)的批處理業(yè)務(wù)場(chǎng)景,論文展示了系統(tǒng)在實(shí)際業(yè)務(wù)場(chǎng)景下的表現(xiàn)。如圖4所示,通過(guò)連續(xù)30天對(duì)比原始系統(tǒng)和新型全時(shí)態(tài)數(shù)據(jù)庫(kù)系統(tǒng)(T-TDSQL)在處理該業(yè)務(wù)時(shí)所需的執(zhí)行時(shí)間,實(shí)驗(yàn)結(jié)果展示騰訊全時(shí)態(tài)數(shù)據(jù)庫(kù)系統(tǒng)在簡(jiǎn)化業(yè)務(wù)應(yīng)用開(kāi)發(fā)的同時(shí),可以縮短近一半的業(yè)務(wù)執(zhí)行時(shí)間。
圖4? 實(shí)際業(yè)務(wù)場(chǎng)景測(cè)試
對(duì)于該論文,VLDB評(píng)審委員會(huì)做出如下點(diǎn)評(píng):This paper extends the TDSQL system from Tencent for temporal datamanagement. A new temporal data model is proposed with optimizedimplementation. Extensive experimental study has been conducted to compare theperformance with existing temporal database systems over benchmarks and realdata.
TDSQL全時(shí)態(tài)數(shù)據(jù)庫(kù)的價(jià)值和意義TDSQL全時(shí)態(tài)數(shù)據(jù)庫(kù)核心價(jià)值觀是“歷史數(shù)據(jù)富有價(jià)值”,核心理念是“為數(shù)據(jù)賦能”,因而系統(tǒng)提供了如下特性:
全時(shí)態(tài)數(shù)據(jù)模型。數(shù)據(jù)庫(kù)系統(tǒng)通過(guò)統(tǒng)一的數(shù)據(jù)模型管理數(shù)據(jù)的生命周期,即數(shù)據(jù)的誕生、修改、消亡的全過(guò)程、過(guò)程中的狀態(tài)變遷操作等。
全時(shí)態(tài)數(shù)據(jù)存儲(chǔ)。全時(shí)態(tài)數(shù)據(jù)存儲(chǔ)保證了所有狀態(tài)數(shù)據(jù)的永久保存。解決了現(xiàn)有的數(shù)據(jù)庫(kù)系統(tǒng),大部分只能保存當(dāng)前數(shù)據(jù),而舊版本數(shù)據(jù)被丟棄的問(wèn)題。
全時(shí)態(tài)數(shù)據(jù)查詢。提供了對(duì)時(shí)態(tài)數(shù)據(jù)的快速查詢能力,由于歷史數(shù)據(jù)的數(shù)據(jù)量級(jí)巨大,在海量歷史數(shù)據(jù)上的查詢能力非常重要。
全時(shí)態(tài)數(shù)據(jù)計(jì)算。數(shù)據(jù)都是具有價(jià)值的,因此需要具備在海量時(shí)態(tài)數(shù)據(jù)上的分析計(jì)算能力。
?
TDSQL全時(shí)態(tài)數(shù)據(jù)庫(kù)的意義主要體現(xiàn)在功能和成本兩個(gè)方面。從功能角度看,TDSQL全時(shí)態(tài)數(shù)據(jù)庫(kù)(用T-TDSQL表示)可以支持如下功能特性:
精確的歷史數(shù)據(jù)讀取。可以查詢到對(duì)于歷史上任意一個(gè)時(shí)間段內(nèi)的數(shù)據(jù)變化情況,如新插入的數(shù)據(jù)、連續(xù)被更新的數(shù)據(jù)、以及被刪除的數(shù)據(jù)。因此可以追蹤數(shù)據(jù)的歷史軌跡,并能方便的在增量數(shù)據(jù)的基礎(chǔ)上進(jìn)行多表連接的增量計(jì)算。
數(shù)據(jù)庫(kù)中存儲(chǔ)有數(shù)據(jù)的歷史狀態(tài)信息,數(shù)據(jù)的安全性得到保證。防止篡改數(shù)據(jù)、數(shù)據(jù)誤刪除的恢復(fù)、賬戶變化軌跡追蹤、回溯歷史時(shí)空里的“過(guò)去的”數(shù)據(jù)等功能,在T-TDSQL中成為現(xiàn)實(shí)。
T-TDSQL管理海量時(shí)態(tài)數(shù)據(jù),因而流水日志不再重要。基于索引檢索歷史態(tài)數(shù)據(jù)時(shí)如同基于索引檢索當(dāng)前數(shù)據(jù)一樣的方便快捷且消耗最少量的計(jì)算資源,這對(duì)于審計(jì)、安全、檔案等部門有幫助。另外,HTAC系統(tǒng)架構(gòu)提供不受限于單機(jī)系統(tǒng)的存儲(chǔ)能力,可以通過(guò)分布式網(wǎng)絡(luò)文件系統(tǒng)來(lái)支持單機(jī)無(wú)限數(shù)據(jù)量的存儲(chǔ)。
T-TDSQL還可以參與到數(shù)據(jù)關(guān)聯(lián)分析的環(huán)節(jié)中,為數(shù)據(jù)賦予了事務(wù)時(shí)態(tài)、與用戶的關(guān)聯(lián)關(guān)系等,甚至還可以創(chuàng)造數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系以實(shí)現(xiàn)“數(shù)據(jù)血統(tǒng)”的產(chǎn)生等。
全時(shí)態(tài)數(shù)據(jù)為數(shù)據(jù)安全、數(shù)據(jù)重演、數(shù)據(jù)挖掘和AI技術(shù)的施展提供了物理基礎(chǔ)。
?
致謝本項(xiàng)目在騰訊TEG計(jì)費(fèi)平臺(tái)部立項(xiàng),研究?jī)?nèi)容和實(shí)現(xiàn)過(guò)程得到中國(guó)人民大學(xué)數(shù)據(jù)工程和知識(shí)工程教育部重點(diǎn)實(shí)驗(yàn)室和騰訊公司的參與和支持,特別向項(xiàng)目參與人、支持者表示感謝。
總結(jié)
以上是生活随笔為你收集整理的VLDB 2019 | 揭秘腾讯TDSQL全时态数据库系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 腾讯重磅发布全栈机器学习平台Angel
- 下一篇: 【招募】腾讯技术开放日·5G多媒体专场