论亚马逊QLDB与腾讯TDSQL对历史数据的管理和计算
AWS re: Invent 2018上,AWS CEO Andy Jassy發(fā)布了QLDB - Quantum Ledger Database(量子賬本數(shù)據(jù)庫)[1]。引用Amazon關(guān)于QLDB的FAQ[2],QLDB是一款特型數(shù)據(jù)庫,它能夠提供應(yīng)用數(shù)據(jù)全部的歷史變遷。
QLDB與我們之前提出的TDSQL全時(shí)態(tài)數(shù)據(jù)庫有些相似,本文分析比較QLDB和TDSQL全時(shí)態(tài)數(shù)據(jù)庫的異同。
一、 生產(chǎn)背景
1.1 QLDB產(chǎn)生背景
Andy Jassy提到,QLDB其實(shí)已經(jīng)在AWS中穩(wěn)定運(yùn)行了幾年,為EC2、S3等一批大規(guī)模服務(wù)提供支持,QLDB將所有的數(shù)據(jù)變化記錄下來,以簡化操作、計(jì)費(fèi)等。
據(jù)Andy Jassy說,經(jīng)過與數(shù)百位區(qū)塊鏈用戶溝通,AWS發(fā)現(xiàn)用戶最迫切的需求有二:中心化可信賬本(ledgers with centralized trust)和去中心化可信事務(wù)(transactions with de-centralized trust,本文不討論)。
供應(yīng)鏈跟蹤、醫(yī)保記錄、機(jī)動車管理、個(gè)人履歷等應(yīng)用有追溯數(shù)據(jù)變化的需求,用于記錄這些數(shù)據(jù)變化的稱為賬本(ledgers),賬本需要可靠、透明、不可更改、加密認(rèn)證,QLDB即扮演中心化可信賬本的角色。
可見,此次AWS對外發(fā)布QLDB,是要將其作為進(jìn)軍區(qū)塊鏈的一大利器(另一為Amazon Managed Blockchain[3],本文不討論)。
?
1.2 TDSQL全時(shí)態(tài)數(shù)據(jù)庫的產(chǎn)生背景
TDSQL全時(shí)態(tài)數(shù)據(jù)庫產(chǎn)生于騰訊計(jì)費(fèi)業(yè)務(wù)。據(jù)統(tǒng)計(jì),騰訊計(jì)費(fèi)平臺部每天需要對363億獨(dú)立賬戶準(zhǔn)確無誤地處理,在線交易要求極高的可靠性和準(zhǔn)確性,因此,交易監(jiān)控功能至關(guān)重要。
交易監(jiān)控包括對賬、審計(jì)、風(fēng)控等手段,以對賬為例,通過比對一段時(shí)間內(nèi)的賬戶數(shù)據(jù)變化和流水?dāng)?shù)據(jù)來定位異常交易。
受限于傳統(tǒng)關(guān)系型數(shù)據(jù)模型和現(xiàn)有數(shù)據(jù)庫產(chǎn)品的實(shí)現(xiàn),交易監(jiān)控?zé)o法做到實(shí)時(shí)和精確。再以對賬為例,業(yè)界通用做法是:賬戶表按日分表,業(yè)務(wù)低谷時(shí)在當(dāng)天賬戶表、前天賬戶表、流水表上做計(jì)算。此方法的問題在于只能在“天”的粒度上對賬,定位具體的問題交易還要借助其他手段。要細(xì)化對賬粒度,精確到異常交易,就需要記錄每一筆交易導(dǎo)致的數(shù)據(jù)變化。
另外,銀監(jiān)會規(guī)定金融行業(yè)的重要數(shù)據(jù)須保存規(guī)定年限[4],深圳市互聯(lián)網(wǎng)金融協(xié)會要求賬戶信息、資金流水、交易數(shù)據(jù)等須保存超過15年[5]。
出于以上需求和規(guī)定,我們設(shè)計(jì)了TDSQL全時(shí)態(tài)數(shù)據(jù)庫,以管理歷史(后續(xù)在全時(shí)態(tài)模型下稱為歷史態(tài)數(shù)據(jù))數(shù)據(jù),包括了歷史數(shù)據(jù)的存儲、計(jì)算。
?
1.3 小結(jié)
QLDB和TDSQL全時(shí)態(tài)數(shù)據(jù)庫都誕生于業(yè)務(wù)、服務(wù)于業(yè)務(wù):QLDB源于AWS EC2,S3等的內(nèi)部支持,可作為區(qū)塊鏈中心化賬本。
TDSQL全時(shí)態(tài)數(shù)據(jù)庫源于互聯(lián)網(wǎng)在線交易監(jiān)控,初衷是提供更精細(xì)的監(jiān)控粒度,但應(yīng)用場景不限于金融、計(jì)費(fèi)、交易,任何有追溯過往需求的場景均適用。
但是,二者共同之處,在于提供歷史數(shù)據(jù)的生命周期的管理。這表明,騰訊和Amazon都認(rèn)識到了歷史數(shù)據(jù)的價(jià)值,并在生產(chǎn)實(shí)踐中加以管理和使用。
?
2.數(shù)據(jù)模型
2.1 QLDB數(shù)據(jù)模型
2.1.1 QLDB的“賬本”
圖2-1(引用自ref[6])展示了QLDB“賬本”的設(shè)計(jì)理念,由Current、History和Journal組成:
1.Current:用戶的當(dāng)前數(shù)據(jù),比如,當(dāng)前銀行賬戶的狀態(tài);
2.History:用戶數(shù)據(jù)的歷史版本,比如,歷史上的銀行賬戶的狀態(tài);
3.Journal:只可追加、無法修改的日志,存儲序列化的、可密碼驗(yàn)證的數(shù)據(jù)變化,比如,銀行賬戶的交易記錄。
?
2.1.2 QLDB文檔數(shù)據(jù)模型
QLDB以文檔數(shù)據(jù)模型維護(hù)當(dāng)前和歷史的應(yīng)用數(shù)據(jù),圖2-2(引用自ref[6])是一例,可以看到,QLDB支持嵌套的數(shù)據(jù)類型,與傳統(tǒng)關(guān)系數(shù)據(jù)模型相比,能夠集中完善地存儲、表現(xiàn)數(shù)據(jù)。
Journal中日志由兩部分組成:本次數(shù)據(jù)增量,SHA-256哈希值H(T)。
以圖2-3(引用自ref[6])為例,可以看到,數(shù)據(jù)增量包括應(yīng)用數(shù)據(jù)的變更,以及操作類型、操作時(shí)間等元數(shù)據(jù)。
?
可以發(fā)現(xiàn),QLDB參考區(qū)塊鏈,保證所記錄的“賬目”是不可修改的:
1.圖2-3所示,插入操作的日志,其HASH值為數(shù)據(jù)增量的SHA-256的值;
2.更新或刪除操作的日志,如圖2-4所示,其HASH值由兩部分組成,一是本條日志的數(shù)據(jù)增量,二是上一條日志的HASH值,如此構(gòu)成一HASH鏈。
此HASH鏈維系了一個(gè)數(shù)據(jù)項(xiàng)的歷史操作和數(shù)據(jù)增量。一旦HASH鏈中某一條日志的數(shù)據(jù)被修改,那么該日志的HASH值會發(fā)生變化,之后的日志就無法連接到這條日志,這種機(jī)制保證了數(shù)據(jù)一旦寫入就無法篡改,做到了歷史發(fā)生不可修改。
于是QLDB的“賬目”是不可修改、加密認(rèn)證的。
?
此處,我們簡單對比QLDB和騰訊區(qū)塊鏈TBaaS[7]采用的Hyperledger[8]。與QLDB不同,Hyperledger是去中心化的區(qū)塊鏈賬本,每個(gè)參與者保存一個(gè)區(qū)塊鏈賬本的副本,所有參與者通過協(xié)作共同維護(hù)著賬本。
?
4.1 QLDB:How it works節(jié)介紹QLDB文檔數(shù)據(jù)模型如何工作。
2.2 TDSQL全時(shí)態(tài)數(shù)據(jù)模型
TDSQL全時(shí)態(tài)數(shù)據(jù)是具有全態(tài)特性和時(shí)態(tài)屬性的數(shù)據(jù)的統(tǒng)稱。
?
2.2.1 TDSQL數(shù)據(jù)全態(tài)
數(shù)據(jù)在其變遷過程中,處于不同狀態(tài),TDSQL提出將數(shù)據(jù)狀態(tài)劃分為3個(gè)階段:
?
1. 當(dāng)前態(tài)(Current State):數(shù)據(jù)項(xiàng)的最新版本,是處于當(dāng)前階段的數(shù)據(jù)。封鎖和MVCC機(jī)制下,能被讀取到的最新版本的數(shù)據(jù)為當(dāng)前態(tài)數(shù)據(jù)。
?
2. 歷史態(tài)(Historical State):數(shù)據(jù)在歷史上的一個(gè)狀態(tài),其值是舊值,而非當(dāng)前值。一個(gè)數(shù)據(jù)項(xiàng)可以有多個(gè)歷史態(tài),反映數(shù)據(jù)狀態(tài)的變遷過程。處于歷史態(tài)的數(shù)據(jù),只能被讀取而不能再被修改或刪除。
封鎖機(jī)制下,更新操作發(fā)生后,原更新前的數(shù)據(jù)版本處于歷史態(tài)。MVCC機(jī)制下,當(dāng)前活躍事務(wù)列表中最小的事務(wù)之前的事務(wù)產(chǎn)生的版本處于歷史態(tài)。
?
3. 過渡態(tài)(Transitional State):既非數(shù)據(jù)項(xiàng)最新版本,亦非歷史態(tài)版本,處于從當(dāng)前態(tài)向歷史態(tài)轉(zhuǎn)變的中間狀態(tài)。基于封鎖實(shí)現(xiàn)并發(fā)控制的系統(tǒng)中不存在過渡態(tài)。
MVCC機(jī)制下,被讀取的版本上有最新的相關(guān)事務(wù)使用,因最新的事務(wù)修改了數(shù)據(jù)項(xiàng)的值,其最新值處于當(dāng)前態(tài),那么被讀取到的版本相對于最新值成為歷史。
而讀取此版本的事務(wù)還是活躍的,此版本還不處于歷史態(tài)。
這樣一種,從當(dāng)前態(tài)向歷史態(tài)過渡的數(shù)據(jù),稱為過渡態(tài)數(shù)據(jù)。
數(shù)據(jù)的當(dāng)前態(tài)、歷史態(tài)、過渡態(tài),合稱為數(shù)據(jù)的全態(tài)。
可以看到,QLDB有歷史數(shù)據(jù),但沒有把數(shù)據(jù)的生命周期加以統(tǒng)一模型化管理。
?
2.2.2 TDSQL數(shù)據(jù)時(shí)態(tài)
時(shí)態(tài),即時(shí)態(tài)數(shù)據(jù)庫概念中的時(shí)態(tài)。
依據(jù)時(shí)態(tài)數(shù)據(jù)庫理論,參考SQL:2011時(shí)態(tài)相關(guān)準(zhǔn)則,TDSQL提供有效時(shí)間和事務(wù)時(shí)間的支持。
有效時(shí)間用來表示,數(shù)據(jù)所表達(dá)的事實(shí)在現(xiàn)實(shí)世界真實(shí)有效的這段時(shí)間。比如,小明在2000-9-1到2003-7-30上中學(xué),那么“小明上中學(xué)”這個(gè)事實(shí)的有效時(shí)間為2000-9-1到2003-7-30。有效時(shí)間可用于保險(xiǎn)在保、食品保質(zhì)期等事實(shí)。
事務(wù)時(shí)間用來表示,數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)中發(fā)生變化的時(shí)間。比如,“小明在2000-9-1到2003-7-30上中學(xué)”這條數(shù)據(jù)在2003-9-1寫入學(xué)籍管理系統(tǒng),2003-9-1是此數(shù)據(jù)入庫時(shí)間。事務(wù)時(shí)間維系了數(shù)據(jù)生命周期的時(shí)間線。
相比下,QLDB并沒有提供時(shí)態(tài)支持。
可參考ref[9]了解更多TDSQL時(shí)態(tài)內(nèi)容。
?
2.2.3 TDSQL全時(shí)態(tài)
數(shù)據(jù)全態(tài)和數(shù)據(jù)時(shí)態(tài)合稱為TDSQL全時(shí)態(tài),全時(shí)態(tài)刻畫了數(shù)據(jù)完全的生命周期。TDSQL在全時(shí)態(tài)概念的基礎(chǔ)上,進(jìn)一步提出了全時(shí)態(tài)數(shù)據(jù)模型的概念,有基礎(chǔ)的全時(shí)態(tài)(全態(tài)+雙時(shí)態(tài))數(shù)據(jù)結(jié)構(gòu),更有基于全時(shí)態(tài)的豐富的語義操作。在這一點(diǎn)上,還沒有看到QLDB有更多的信息展示。
另外,數(shù)據(jù)在變遷過程中所經(jīng)歷的操作、操作者、操作發(fā)生時(shí)間等元信息都被維系下來,我們將此稱為數(shù)據(jù)血統(tǒng)。在TDSQL中,數(shù)據(jù)每一個(gè)版本、每一次操作都由血統(tǒng)維護(hù)起來,如此形成更完整的生命周期,此生命周期可以如此表述,即TDSQL能夠幫助用戶了解到:什么人在什么時(shí)間做了什么事情,數(shù)據(jù)項(xiàng)數(shù)據(jù)變遷的事件是什么。
?
2.3 小結(jié)
QLDB和TDSQL全時(shí)態(tài)數(shù)據(jù)庫的共同點(diǎn)是,二者都對數(shù)據(jù)狀態(tài)做出區(qū)分,QLDB把數(shù)據(jù)分為當(dāng)前和歷史兩個(gè)狀態(tài),TDSQL提出全態(tài)的概念。
QLDB采用文檔數(shù)據(jù)模型,相比于傳統(tǒng)的關(guān)系數(shù)據(jù)模型,具有支持?jǐn)?shù)據(jù)類型更多、靈活性高的特點(diǎn),關(guān)系型數(shù)據(jù)庫應(yīng)用和非關(guān)系型數(shù)據(jù)庫應(yīng)用都可與之對接,代價(jià)是模型不同的數(shù)據(jù)庫系統(tǒng)間數(shù)據(jù)遷移的復(fù)雜性。
TDSQL全時(shí)態(tài)數(shù)據(jù)模型是基于關(guān)系數(shù)據(jù)模型的,并包含數(shù)據(jù)狀態(tài)和時(shí)態(tài)兩個(gè)概念,具備更豐富的計(jì)算能力。作為全時(shí)態(tài)數(shù)據(jù)模型的子集,大量現(xiàn)行的關(guān)系型數(shù)據(jù)庫應(yīng)用可以輕松遷移。完備的全時(shí)態(tài)數(shù)據(jù)模型使得TDSQL在處理歷史數(shù)據(jù)時(shí)更加富有優(yōu)勢。
3.架構(gòu)
3.1 QLDB之于Amazon數(shù)據(jù)庫生態(tài)
Andy Jassy展示了Amazon的database freedom,如圖3-1(引用自ref[1]),Amazon提供諸多數(shù)據(jù)解決方案,涵蓋關(guān)系型、K-V、內(nèi)存等存儲,并包含圖、時(shí)序、賬本等特型數(shù)據(jù)庫,QLDB即特型數(shù)據(jù)庫之一。
?
QLDB作為Amazon整個(gè)數(shù)據(jù)庫服務(wù)生態(tài)的一個(gè)成員,與RDS、DynamoDB、ElasticCache等產(chǎn)品彼此獨(dú)立但緊密合作,互相補(bǔ)充共同構(gòu)成database freedom。
QLDB如何與其他產(chǎn)品協(xié)作,還需等Amazon開放更多資料。
?
3.2 TDSQL全時(shí)態(tài)數(shù)據(jù)庫的HTAC架構(gòu)
圖3-2展示了TDSQL全時(shí)態(tài)數(shù)據(jù)庫的HTAC架構(gòu),HTAC基于master-slave架構(gòu),此架構(gòu)下全態(tài)數(shù)據(jù)管理方式為:
●?主節(jié)點(diǎn)Current存放當(dāng)前數(shù)據(jù),從節(jié)點(diǎn)History存放歷史數(shù)據(jù);
●?主節(jié)點(diǎn)的更新操作引發(fā):
? ?■?當(dāng)前數(shù)據(jù)的版本推進(jìn);
? ?■?數(shù)據(jù)的舊版本同步至從節(jié)點(diǎn),追加舊版本到歷史庫;
●?Proxy路由TP請求到主節(jié)點(diǎn),操作當(dāng)前數(shù)據(jù);路由AP請求到從節(jié)點(diǎn),執(zhí)行全態(tài)查詢。
Master-Slave是目前廣泛采用的高可用方案之一,HTAC架構(gòu)基于此,適用性廣泛。并且,在現(xiàn)有的數(shù)據(jù)庫服務(wù)中增加一備即可承載歷史,避免了重新設(shè)計(jì)部署數(shù)據(jù)庫服務(wù)。
主、備在物理上分別存放當(dāng)前、歷史數(shù)據(jù),保證數(shù)據(jù)安全。主節(jié)點(diǎn)數(shù)據(jù)出現(xiàn)問題時(shí),可以使用該從節(jié)點(diǎn)的數(shù)據(jù)快速恢復(fù)。另外,當(dāng)前和歷史數(shù)據(jù)物理上的隔離,導(dǎo)致TP和AP服務(wù)切割,因此可以針對AP業(yè)務(wù)針對優(yōu)化此從節(jié)點(diǎn)。
在主備間傳輸?shù)臍v史數(shù)據(jù),是原生數(shù)據(jù),而非日志。其優(yōu)勢在于,避免本地封裝數(shù)據(jù),節(jié)約計(jì)算開銷,盡可能降低對業(yè)務(wù)系統(tǒng)的影響;避免異地解析日志,同樣節(jié)約計(jì)算開銷,使得歷史數(shù)據(jù)快速落地存儲,實(shí)時(shí)性高。
?
3.3 小結(jié)
QLDB是Amazon數(shù)據(jù)庫生態(tài)中的一環(huán),作為RDS等“賬本”的存在,事務(wù)在RDS上執(zhí)行,在QLDB上“入賬”。
TDSQL全時(shí)態(tài)數(shù)據(jù)庫采用基于Master-Slave的HTAC架構(gòu),在需要追溯歷史的數(shù)據(jù)庫實(shí)例上增加一備,作為歷史數(shù)據(jù)的存儲即可,避免了額外的系統(tǒng)設(shè)計(jì)和部署,而且數(shù)據(jù)安全得到進(jìn)一步保障,快速恢復(fù)觸手可及。另外,節(jié)點(diǎn)間傳輸原生數(shù)據(jù)格式,具有對業(yè)務(wù)系統(tǒng)影響低、歷史數(shù)據(jù)落地快、實(shí)時(shí)性高的優(yōu)勢。
4.功能
4.1 QLDB:How it works
根據(jù)ref[2] FAQ,QLDB支持事務(wù)并滿足ACID,并且提供SQL-like的接口。以機(jī)動車管理系統(tǒng)為例,圖4-1(引用自ref[6])為QLDB的插入操作,用戶使用SQL-like風(fēng)格的語句,插入過程如下:
1)首先寫Journal,其數(shù)據(jù)為文檔數(shù)據(jù)格式,并計(jì)算其SHA-256哈希值也存放在日志中;
2)寫Journal完成,更新Current和History。(圖中以二維表的方式展現(xiàn)數(shù)據(jù),但QLDB采用文檔數(shù)據(jù)模型)
?
圖4-2(引用自ref[6])和圖4-3(引用自ref[6])分別為QLDB更新和刪除操作,類似的,用戶使用SQL-like語句,更新和刪除過程先追加寫Journal,隨后更新Current和History。本質(zhì)上,這種操作方式,就是“流水日志”,所以歷史數(shù)據(jù)被“Append”到歷史庫中。而TDSQL天然利用了MVCC中多版本技術(shù),歷史數(shù)據(jù)自然以原生格式沉淀在數(shù)據(jù)庫系統(tǒng)中,沒有封裝為流水記錄、沒有重新插入到歷史表中的過程,非常自然和流暢地解決了歷史數(shù)據(jù)存儲的問題。
更多語義、操作、使用方法等,待Amazon開放更多資料。
?
4.2 TDSQL全時(shí)態(tài)數(shù)據(jù)庫功能
我們將TDSQL全時(shí)態(tài)數(shù)據(jù)庫的操作稱為全時(shí)態(tài)操作,全時(shí)態(tài)操作是傳統(tǒng)關(guān)系操作的超集。除傳統(tǒng)關(guān)系操作外,全時(shí)態(tài)操作還提供時(shí)態(tài)操作和全態(tài)操作。
4.2.1 時(shí)態(tài)操作
TDSQL提供有效時(shí)間和事務(wù)時(shí)間兩種時(shí)態(tài)語義和操作。
?
有效時(shí)間操作:
1.有效時(shí)間點(diǎn)查詢、有效時(shí)間段查詢;
2.有效時(shí)間區(qū)間更新、有效時(shí)間區(qū)間刪除。
?
事務(wù)時(shí)間操作:
1.獲取某時(shí)間點(diǎn)可見的數(shù)據(jù);
2.獲取某時(shí)間段可見的數(shù)據(jù)集合;
3.獲取某事務(wù)操作的數(shù)據(jù)版本;
4.獲取事務(wù)狀態(tài)。
?ref[10]詳細(xì)介紹了時(shí)態(tài)操作的語法語義、內(nèi)部機(jī)制。
?
4.2.2 全態(tài)操作
根據(jù)作用域不同,全態(tài)操作劃分為:
1.當(dāng)前態(tài)數(shù)據(jù)讀取,作用域?yàn)楫?dāng)前態(tài)數(shù)據(jù),即傳統(tǒng)關(guān)系型數(shù)據(jù)庫操作的作用域;
2.歷史態(tài)數(shù)據(jù)讀取,作用域?yàn)闅v史態(tài)數(shù)據(jù),只獲取歷史數(shù)據(jù);
3.全態(tài)數(shù)據(jù)讀取,作用域?yàn)槿我鉅顟B(tài)數(shù)據(jù)。
?
在全態(tài)操作中,我們模糊過渡態(tài)這一概念。
在以MVCC作為并發(fā)控制機(jī)制的數(shù)據(jù)庫系統(tǒng)中,傳統(tǒng)數(shù)據(jù)讀取操作的作用域?yàn)楫?dāng)前態(tài)和過渡態(tài)。讀取到最新的數(shù)據(jù)版本即當(dāng)前態(tài),或如圖4-4 a例,讀已提交(或更高)隔離級別下,事務(wù)T1 read獲取數(shù)據(jù)為T2 write之前的值,即過渡態(tài)。
歷史態(tài)數(shù)據(jù)讀取中,獲取過去某時(shí)段的數(shù)據(jù),很可能取到過渡態(tài)數(shù)據(jù),如圖4-4 b。
因此,過渡態(tài)數(shù)據(jù)的讀取融于當(dāng)前態(tài)數(shù)據(jù)讀取和歷史態(tài)數(shù)據(jù)讀取中,根據(jù)不同查詢要求和數(shù)據(jù)的可見性決定過渡態(tài)數(shù)據(jù)查出與否。
?
4.3 小結(jié)
Amazon目前開放的資料顯示,QLDB支持ACID事務(wù),提供SQL-like接口。
TDSQL全時(shí)態(tài)數(shù)據(jù)庫的功能是完全適用關(guān)系型數(shù)據(jù)庫的SQL操作,沒有自定義一套新接口,方便了用戶的使用。
TDSQL還在時(shí)態(tài)維度上提供有效時(shí)間和事務(wù)時(shí)間操作,在狀態(tài)維度上提供全態(tài)數(shù)據(jù)獲取。
5.應(yīng)用場景
QLDB和TDSQL全時(shí)態(tài)數(shù)據(jù)庫都誕生于內(nèi)部計(jì)費(fèi)、交易系統(tǒng),都維系了數(shù)據(jù)的全生命周期,這樣看來,QLDB和TDSQL適用的場景應(yīng)該是相似的。
QLDB定位是區(qū)塊鏈中心化可信賬本,可見其發(fā)力點(diǎn)主要在區(qū)塊鏈應(yīng)用上,比如ref[6]提到的機(jī)動車管理、商品生產(chǎn)供應(yīng)線、職業(yè)生涯等。當(dāng)然,QLDB需要在Amazon的數(shù)據(jù)庫生態(tài)當(dāng)中發(fā)揮作用。
TDSQL全時(shí)態(tài)數(shù)據(jù)庫并非針對某一應(yīng)用方向所設(shè)計(jì),所以有全時(shí)態(tài)數(shù)據(jù)管理需求的應(yīng)用都可以使用,比如個(gè)人賬戶系統(tǒng)、服務(wù)器管理、職業(yè)生涯等。因?yàn)門DSQL全時(shí)態(tài)數(shù)據(jù)庫基于關(guān)系數(shù)據(jù)模型設(shè)計(jì),現(xiàn)有關(guān)系型數(shù)據(jù)庫應(yīng)用都可以方便使用。
6.總結(jié)
QLDB和TDSQL表現(xiàn)出Amazon和騰訊認(rèn)識到了歷史數(shù)據(jù)的價(jià)值,引用TDSQL全時(shí)態(tài)數(shù)據(jù)庫的核心價(jià)值觀--歷史數(shù)據(jù)富有價(jià)值,核心理念--為數(shù)據(jù)賦能[11]。
?
下面以表格形式簡要總結(jié)QLDB和TDSQL全時(shí)態(tài)數(shù)據(jù)庫的異同。TDSQL和其他類似產(chǎn)品的對比,請參考ref[9]。
?
Quantum Ledger Database | TDSQL全時(shí)態(tài)數(shù)據(jù)庫 | |
產(chǎn)生背景 | 業(yè)務(wù)出發(fā) | |
1. AWS內(nèi)部服務(wù) 2. 區(qū)塊鏈中心化可信賬本 | 1. 在線交易監(jiān)控 2. 金融數(shù)據(jù)留存 | |
數(shù)據(jù)模型 | 1.數(shù)據(jù)分為當(dāng)前和歷史 2.保留數(shù)據(jù)的全部歷史 | 1.數(shù)據(jù)分為當(dāng)前態(tài)、過渡態(tài)、歷史態(tài) 2.雙時(shí)態(tài)支持 |
文檔數(shù)據(jù)模型: ? 1.數(shù)據(jù)類型多,靈活性高 2.關(guān)系型/非關(guān)系型均可遷移 | 全時(shí)態(tài)數(shù)據(jù)模型: 1.維護(hù)數(shù)據(jù)血統(tǒng)和完全的生命周期 2.豐富的計(jì)算功能 3.關(guān)系型應(yīng)用輕松遷移 4.非關(guān)系型應(yīng)用遷移相對復(fù)雜 | |
架構(gòu) | Amazon數(shù)據(jù)庫生態(tài)的“賬本”: ? 1.業(yè)務(wù)系統(tǒng)使用,需遷移到Amazon數(shù)據(jù)庫服務(wù) 2.業(yè)務(wù)系統(tǒng)使用,需接入新系統(tǒng)QLDB,并了解操作 | HTAC主備架構(gòu): 1.現(xiàn)有數(shù)據(jù)庫服務(wù)的主備架構(gòu)增加一備即可,無新系統(tǒng)接入,遷移方便 2.當(dāng)前數(shù)據(jù)和歷史數(shù)據(jù)物理隔離,提高數(shù)據(jù)安全,用于快速回復(fù) 3.TP/AP服務(wù)隔離,針對優(yōu)化 4.傳輸原生數(shù)據(jù)格式,業(yè)務(wù)影響低,歷史數(shù)據(jù)落地快,實(shí)時(shí)性強(qiáng) |
功能 | 1.SQL-like接口 2.事務(wù)ACID | 1.遵循SQL標(biāo)準(zhǔn) 2.事務(wù)ACID、日志等傳統(tǒng)關(guān)系型數(shù)據(jù)庫功能 3.時(shí)態(tài)操作 4.全態(tài)操作 |
應(yīng)用場景 | 1.發(fā)力點(diǎn)在區(qū)塊鏈應(yīng)用 2.只在Amazon數(shù)據(jù)庫生態(tài)服務(wù) | 1.任何有全態(tài)數(shù)據(jù)管理需求的應(yīng)用 2.關(guān)系型數(shù)據(jù)庫應(yīng)用輕松遷移 |
7.TDSQL關(guān)于歷史數(shù)據(jù)的思考
金融計(jì)費(fèi)領(lǐng)域中,出于數(shù)據(jù)安全、交易可靠、計(jì)費(fèi)精準(zhǔn)等原因,追溯歷史是必要的。在騰訊公司的計(jì)費(fèi)業(yè)務(wù)中,隨著業(yè)務(wù)不斷增長,帶有時(shí)態(tài)屬性的數(shù)據(jù)被管理的需求日益旺盛。這正是TDSQL全時(shí)態(tài)數(shù)據(jù)庫的萌芽,全面、方便地管理金融歷史數(shù)據(jù),以便基于歷史數(shù)據(jù)做大量的計(jì)算驗(yàn)證,進(jìn)而保證金融數(shù)據(jù)安全、交易可靠、計(jì)費(fèi)精準(zhǔn)。
歷史數(shù)據(jù)的意義不僅限于金融領(lǐng)域,在地籍管理、電子政務(wù)等應(yīng)用都可大顯身手。事實(shí)上,在數(shù)據(jù)量急速膨脹的今天,任何業(yè)務(wù)都存在歷史數(shù)據(jù)管理的需求,然而,現(xiàn)代的數(shù)據(jù)庫系統(tǒng)只保留數(shù)據(jù)的當(dāng)前值,因存儲成本等原因,歷史數(shù)據(jù)被丟棄。
數(shù)據(jù)作為重要的資產(chǎn),不論是當(dāng)前數(shù)據(jù),還是歷史上曾存在過的數(shù)據(jù),都具有重要價(jià)值。歷史數(shù)據(jù)的存儲、被分析、被挖掘、被反復(fù)使用,是當(dāng)前互聯(lián)網(wǎng)企業(yè)的需求,是金融行業(yè)的需求,也是數(shù)據(jù)管理未來的方向。
在歷史數(shù)據(jù)管理需求日益增長的趨勢下,TDSQL數(shù)據(jù)工作者提出核心價(jià)值觀:歷史數(shù)據(jù)富有價(jià)值,一切過往(數(shù)據(jù)的歷史和狀態(tài))兼可追溯,并以“為數(shù)據(jù)賦能”作為核心理念,為用戶提供更可靠、更完善、更精準(zhǔn)的數(shù)據(jù)服務(wù)。
References
1.?AWS re:Invent 2018 Keynote - Andy Jassy?
https://youtu.be/ZOIkOnW640A
2.?Amazon Quantum Ledger Database (QLDB)
https://aws.amazon.com/cn/qldb/
3.?Amazon Managed Blockchain?
https://aws.amazon.com/managed-blockchain/
4.?銀行業(yè)金融機(jī)構(gòu)信息系統(tǒng)風(fēng)險(xiǎn)管理指引
http://www.cbrc.gov.cn/upload/zwgk/ml3/2/5-2-32.doc
5.?深圳市互金協(xié)會對銀監(jiān)會存管指引的全面解讀
http://www.szifa.org.cn/enrollment_view.aspx?TypeId=121&Id=605
6.?Introduction to Amazon Quantum Ledger Database (QLDB)
https://youtu.be/7G9epn3BfqE
7.?騰訊區(qū)塊鏈服務(wù)TBaaS?
https://cloud.tencent.com/product/tbaas
8.?Hyperledger
https://www.hyperledger.org/
9.?TDSQL時(shí)態(tài)數(shù)據(jù)庫-理論與主流實(shí)現(xiàn)
http://blog.itpub.net/31544289/viewspace-2157766/
10.?TDSQL時(shí)態(tài)數(shù)據(jù)庫-功能實(shí)現(xiàn)
http://blog.itpub.net/31544289/viewspace-2157282/
11.?TDSQL時(shí)態(tài)數(shù)據(jù)庫-理念與愿景
http://blog.itpub.net/31540857/viewspace-2155687/
總結(jié)
以上是生活随笔為你收集整理的论亚马逊QLDB与腾讯TDSQL对历史数据的管理和计算的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 首届“腾讯云+社区开发者大会”正在直播!
- 下一篇: MySQL性能基准测试对比:MySQL