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