VLDB 2019 | 揭秘騰訊TDSQL全時態資料庫系統

2021-12-30 AI前線
AI 前線導讀:全時態數據為數據安全、數據重演、數據挖掘和 AI 技術的施展提供了物理基礎。這篇文章重點介紹了基於騰訊雲 TDSQL 擴展而來的全時態資料庫系統(T-TDSQL),T-TDSQL 在保證 OLTP 性能的前提下提供了輕量級的全時態數據管理功能和全時態數據的事務處理能力,以及集當前態數據於生產系統集歷史態數據於分析型系統的集群架構,構成了全時態數據的完備解決方案。相應論文已入選 VLDB 2019。

更多優質內容請關注微信公眾號「AI 前線」(ID:ai-front)

騰訊與中國人民大學於 2017 年起,依託於騰訊 TEG 計費平臺部豐富的實戰經驗和中國人民大學數據工程與知識工程教育部重點實驗室的多年學術積累,在資料庫前沿研究領域開展了深入合作,研究成果已經連續兩年入選國際頂級會議 VLDB。(TDSQL 帶你走進資料庫頂會 VLDB 2018 | 論文縱覽)。

VLDB 會議是國際公認的數據管理與資料庫領域頂尖的三大學術會議(SIGMOD、VLDB、ICDE)之一,旨在展示和推廣領域內最新的研究成果和核心科技。自 1975 年開辦至今,VLDB 會議已經成功舉辦了 44 屆,每年的 VLDB 能在全球範圍內吸引到大量優秀的研究人員、企業代表以及行業精英到場參會,是一場不容錯過的學術盛會。

繼去年在 VLDB2018 上通過 DEMO 論文展示了合作成果 MSQL+ 後(基於 TDSQL 的插件式近似查詢工具)),今年騰訊與中國人民大學最新聯合研究成果「A Lightweight and Efficient Temporal Database Management System in TDSQL」成功被 VLDB2019 Industry Track 接收並將通過長文形式發表。該研究成果由騰訊 TEG 計費平臺部 TDSQL 資料庫團隊與中國人民大學數據工程與知識工程教育部重點實驗室深度合作完成。論文介紹了一款基於 TDSQL 擴展而來的全時態資料庫系統,該系統在保證 OLTP 性能的前提下,提供了輕量級的時態數據管理功能。本文將對論文研究成果進行詳細的分析解讀。

圖 1  VLDB 官網截圖

時態數據主要指隨時間推移不斷發生變化的數據,例如溫度、帳戶餘額等數據。時態數據在現實生活中非常普遍,而在金融場景下,在資料庫層面時態數據管理尤為重要。例如,金融審計時需要獲取 2018 年 11 月 08 日至 2018 年 11 月 10 日的帳戶餘額變動情況。如果通過傳統資料庫(RDBMS)中的普通關係表進行帳戶餘額管理(如圖 1 所示),帳戶餘額變動不會被維護,因而上層應用需要通過日誌等形式來額外記錄餘額的每次變動,這會大大提高應用複雜度;而採用如表 2 所示的時態數據表,餘額的變遷被原生維護在資料庫中,即可準確獲取到餘額變動數據(表中加粗數據)。

表 1  普通關係表

表 2  時態數據表

結合 TDSQL 系統的特點,研究團隊提出並實現了一個輕量且高效的全時態資料庫系統,該系統可以在保留原有 TDSQL 強勁的 OLTP 處理性能的同時,通過巧妙的系統設計,提供了內建的時態數據管理能力(如圖 2 所示)。

圖 2  系統概覽

TDSQL 全時態資料庫系統創新性地採用了一種混合存儲模式,來對時態數據進行管理。系統將時態數據拆分為當前數據和歷史數據,針對不同的數據類型,分別採用不同的存儲策略。當前數據管理模塊,採用了基於 MVCC(多版本並發訪問控制協議)設計的資料庫所普遍採用的段頁式結構,並且專門開闢回滾段,來對更新或刪除操作產生的舊版本進行暫存。在回滾段中暫存的數據會在資料庫進行資源回收操作(如 MySQL 中的 Purge 和 PostgreSQL 中的 VACUUM 等)時,遷移到歷史數據管理模塊,這個過程被稱為數據轉儲。這是一種異步的轉儲策略,因而幾乎不會造成性能損耗。歷史數據存儲模塊,通過 k-v 格式來進行組織,可以大幅度縮小存儲開銷。由於一個數據項會存在多個歷史版本,而這些歷史版本會在某些屬性上存在一樣的值,例如表一中的 James 被重複四次。因此,在歷史數據存儲模塊中,系統將每一個版本轉化為一條 k-v,並且只存儲相較於上一個版本發生變化的屬性值。

系統對時態查詢處理邏輯進行了針對性設計與優化。通過專門的時態查詢編譯器,部分時態查詢條件(如有效時間查詢)會被重寫並拼接到 WHERE 條件中。而對於事務時間查詢,系統將其查詢條件轉化為了內嵌的可見性判斷過程,從而使得時態查詢所獲取的數據滿足事務一致性的要求,保證數據的準確性,這點在金融場景下顯得尤為重要。

另外,通過持久維護事務狀態,系統可以快速獲取到事務的執行狀態,結合時態數據,即可原生支持事務級數據閃回等實用操作。對於歷史數據,系統利用 k-v 存儲的特性,可以根據時間條件快速定位到所需數據版本,具備了較好的時態查詢性能,且在 SQL 語句的寫法上方便用戶直接使用 SQL 語句進行查詢。

系統體現了 HTAC(Hybrid Transaction / 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%,領先於其他基於傳統關係資料庫實現的時態資料庫系統。

圖 4  TPCC 測試結果

另外,基於真實的批處理業務場景,論文展示了系統在實際業務場景下的表現。如圖 4 所示,通過連續 30 天對比原始系統和新型全時態資料庫系統(T-TDSQL)在處理該業務時所需的執行時間,實驗結果展示騰訊全時態資料庫系統在簡化業務應用開發的同時,可以縮短近一半的業務執行時間。

圖 5  實際業務場景測試

對於該論文,VLDB 評審委員會做出如下點評:

This paper extends the TDSQL system from Tencent for temporal data management. A new temporal data model is proposed with optimized implementation. Extensive experimental study has been conducted to compare the performance with existing temporal database systems over benchmarks and real data.

TDSQL 全時態資料庫核心價值觀是「歷史數據富有價值」,核心理念是「為數據賦能」,因而系統提供了如下特性:

全時態數據模型。資料庫系統通過統一的數據模型管理數據的生命周期,即數據的誕生、修改、消亡的全過程、過程中的狀態變遷操作等。

全時態數據存儲。全時態數據存儲保證了所有狀態數據的永久保存。解決了現有的資料庫系統,大部分只能保存當前數據,而舊版本數據被丟棄的問題。

全時態數據查詢。提供了對時態數據的快速查詢能力,由於歷史數據的數據量級巨大,在海量歷史數據上的查詢能力非常重要。

全時態數據計算。數據都是具有價值的,因此需要具備在海量時態數據上的分析計算能力。

TDSQL 全時態資料庫的意義主要體現在功能和成本兩個方面。從 功能角度 看,TDSQL 全時態資料庫(用 T-TDSQL 表示)可以支持如下功能特性:

精確的歷史數據讀取。可以查詢到對於歷史上任意一個時間段內的數據變化情況,如新插入的數據、連續被更新的數據、以及被刪除的數據。因此可以追蹤數據的歷史軌跡,並能方便的在增量數據的基礎上進行多表連接的增量計算。

資料庫中存儲有數據的歷史狀態信息,數據的安全性得到保證。防止篡改數據、數據誤刪除的恢復、帳戶變化軌跡追蹤、回溯歷史時空裡的「過去的」數據等功能,在 T-TDSQL 中成為現實。

T-TDSQL 管理海量時態數據,因而流水日誌不再重要。基於索引檢索歷史態數據時如同基於索引檢索當前數據一樣的方便快捷且消耗最少量的計算資源,這對於審計、安全、檔案等部門有幫助。另外,HTAC 系統架構提供不受限於單機系統的存儲能力,可以通過分布式網絡文件系統來支持單機無限數據量的存儲。

T-TDSQL 還可以參與到數據關聯分析的環節中,為數據賦予了事務時態、與用戶的關聯關係等,甚至還可以創造數據之間的關聯關係以實現「數據血統」的產生等。

全時態數據為數據安全、數據重演、數據挖掘和 AI 技術的施展提供了物理基礎。

本項目在騰訊 TEG 計費平臺部立項,研究內容和實現過程得到中國人民大學數據工程和知識工程教育部重點實驗室和騰訊公司的參與和支持,特別向項目參與人、支持者表示感謝。

你也「在看」嗎?👇

相關焦點

  • TDSQL 全時態資料庫系統--核心技術
    一是新的數據模型—全時態數據模型,表達了T-TDSQL的雙時態語義,其中對於數據的事務時態,首次提出全態數據的概念,以刻畫數據的生命周期。二是對於新的數據模型,如何在基於關係模型的資料庫中實現存儲,全時態數據的存儲,使得具有全時態語義的數據有了計算的依據;本文提出的全時態數據模型的實現,以MySQL為載體。
  • 揭秘DDos防護 - 騰訊雲大禹系統
    揭秘DDos防護 - 騰訊雲大禹系統本文是根據郭偉、徐偉在高可用架構微信群所做分享整理而來。
  • 「圖型計算架構」GraphTech生態系統2019-第1部分:圖型資料庫
    這篇文章是關於GraphTech生態系統的3篇文章的一部分,截至2019年。這是第一部分。它涵蓋了圖形資料庫環境。第三部分是圖形可視化工具。
  • 資料庫系統原理-實踐
    https://ce.sjtu.edu.cn/ste/tmaterial/4/04736.doc上海市高等教育自學考試計算機科學與技術專業(專升本)《資料庫系統原理》實踐性環節考核大綱(上海交通大學主考,2019年修訂)一、 考核目標1.
  • 《資料庫系統概論》 資料庫完整性
    包括:什麼是資料庫的完整性,資料庫的完整性概念與資料庫的安全性概念的區別和聯繫,RDBMS的資料庫完整性實現機制,包括實體完整性、參照完整性和用戶自己定義的完整性約束的定義機制、完整性檢查機制和違背完整性約束條件時RDBMS採取的預防措施。觸發器的概念和在資料庫完整性檢查中的應用。
  • NTP挖礦蠕蟲利用至少12種漏洞武器攻擊傳播,騰訊雲防火牆支持攔截
    該挖礦木馬具備蠕蟲化攻擊擴散能力,攻擊成功後投遞的最終載荷名為ntpclient,其主要目的為感染主機挖礦牟利,騰訊安全因此將其命名為NTP挖礦蠕蟲。該挖礦木馬在蠕蟲化傳播擴散過程中利用了至少12種高危漏洞攻擊武器。根據騰訊安全雲原生預警系統的檢測數據,已觀察到較多未安裝任何防護系統的主機被入侵感染。
  • 歐洲航天局行星探索項目核心資料庫TBase,開源版本重磅升級
    沒錯,它是騰訊開源的自研HTAP分布式資料庫TBase。2020年7月,騰訊自研的HTAP分布式資料庫TBase正式迎來重大升級,發布了最新開源版本2.1.0。此次開源發布,不但帶來了性能的大幅提升,還帶來了分布式多活的能力。
  • 從「卡脖子」到「主導」,國產資料庫 40 年的演變!
    入選 Gartner 領導象限;華為 GaussDB 革命性功能全密態的發布;TDEngine 多次霸榜 GitHub;PingCAP 完成 D 輪融資回首過往這一年,我們的國產資料庫發展如何?須臾之間,可謂是國產資料庫的豐收年之 2020 已然進入了倒計時,從螞蟻的 OceanBase 再破 TPC 速度記錄,到阿里雲 PorlarDB 首進 Gartner 資料庫領域的領導者象限;再到華為 GaussDB 革命性功能全密態的發布,國產資料庫可謂是精彩紛呈。
  • 昆明逸馬軟體 — Win10系統上安裝SQL2000資料庫操作指南
    第一步:首先下載一個《win10系統安裝2000資料庫註冊表》文件下載連結:http://pan.baidu.com/s/1mij1eq8   下載好之後,運行win10系統安裝2000資料庫的註冊表文件。
  • SDCC講師專訪|京東資料庫系統研發部田琪的架構之路
    即將到來的SDCC深圳技術峰會講師陣容強大,主辦方邀請了來自於百度、阿里、騰訊、滴滴出行、攜程、平安科技、AdMaster、華為、京東、唯品會、一號店、中國電信、閱文集團等公司的技術骨幹、首席架構師來為與會者分享演講和交流,必定是一場技術人的饕餮盛宴。
  • 第一章:資料庫系統概述--《資料庫系統原理》
    第一章 資料庫系統概述第一節 資料庫基本概念
  • 騰訊內部全鏈路追蹤系統「天機閣「的設計與實現
    傳說中天機閣裡有一臺掌控世間一切的機器,萬物運行由此產生。
  • 如何在Kubernetes上部署MySQL資料庫
    在本文中,我們將展示如何在Kubernetes中部署資料庫,以及可以使用哪些方法在Kubernetes中部署資料庫。資料庫資料庫是一種用於在計算機系統上存儲和處理數據的系統。資料庫引擎可以在資料庫上創建,讀取,更新和刪除。資料庫由資料庫管理系統(DBMS)控制。在大多數資料庫中,數據按行和列進行建模,稱為關係型,這種類型的資料庫在80年代佔主導地位。
  • 資料庫系統設計概述
    資料庫系統設計概述世界上只有兩種開發人員,一種使用資料庫系統的,一種開發資料庫系統的。數據是系統最重要的信息。大部分系統都是對數據的管理。應用系統通過數據模型來構建現實世界,通過算法操作對象或數據結構,來改變數據模型的狀態。數據被組織在作業系統文件中,我們通過數據系統來組織,查詢,搜索,處理數據。
  • DarkSide勒索黑客攻擊美最大燃油管道商,騰訊安全專家解讀勒索黑客行為
    勒索病毒團夥在利用多種技術手段入侵目標系統後,會留置後門、安裝多種遠程控制軟體(如TeamView破解版、RemoteUtilities商業遠控軟體破解版、RemcosRAT、AgentTesla、SnakeKeylogger、AsyncRAT、Nanocore等商業木馬),勒索黑客會使用此類工具將失陷網絡的機密數據上傳到該團夥控制的伺服器上。
  • 今日威脅情報(2019/06/11)
    APT相關1、騰訊發布MuddyWater APT報告,汙水(MuddyWater)近期針對塔吉克斯坦、土耳其等地的攻擊活動匯總。基於OSINT的MuddyWater也在全網關注涉他和他關注的目標情況。人物:Nima(不是罵人的)帶你走進MuddyWaterhttps://0xffff0800.blogspot.com/2019/06/a-muddywater-cyber-spy.html4、FIN8重新開始活動,瞄準酒店行業。使用的馬是ShellTea/PunchBuggy後門惡意軟體。
  • SQL SERVER2014系統資料庫
    在SQLServer 2014系統運行時間會用到相關的信息,如系統對象和組態設置等,都是以資料庫的形式存在的,而存放這些系統信息的資料庫稱為系統資料庫
  • 2019勒索病毒專題報告
    ,下圖中IP:185.176.27.132,騰訊安圖情報平臺中已標識為Phorpiex殭屍網絡資產,其上投遞了Nemty 1.6版本的勒索變種,此次病毒間的勾結行為導致在2019年國慶期間Nemty勒索病毒一度高發,國內多家企業受到Nemty勒索病毒影響。
  • 《資料庫系統概論》課程回顧
    資料庫系統概論課程系統講述資料庫系統的基礎理論、基本技術和基本方法。
  • 資料庫系統原理(教學大綱)
    第一章 緒論教學目標:熟悉資料庫、資料庫管理系統、資料庫系統等術語;了解資料庫系統和資料庫管理系統結構;了解大數據的概念,以及數據管理技術發展趨勢。教學內容:1.1 資料庫1.2 資料庫管理系統1.3 資料庫系統1.4 數據管理技術發展趨勢第二章 關係模型教學目標:熟悉關係模型、元組、欄位、屬性等術語;掌握超鍵、候選鍵、主鍵、外鍵、約束等概念;了解資料庫上的典型操作