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