丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預(yù)覽,將在時失效
金融云 正文
發(fā)私信給周舟
發(fā)送

0

「騰訊云數(shù)據(jù)庫」火速拿下2000家金融客戶,背后的技術(shù)方法論

本文作者: 周舟 2021-01-19 10:43
導(dǎo)語:萬字長文,領(lǐng)略騰訊云TDSQL的十年創(chuàng)新路。

近年來,金融行業(yè)數(shù)據(jù)泄漏事故頻發(fā),遠(yuǎn)高于其他行業(yè)。

通過永安在線數(shù)據(jù)資產(chǎn)泄露風(fēng)險監(jiān)測平臺統(tǒng)計,金融行業(yè)是數(shù)據(jù)資產(chǎn)泄露的主要來源,占到了42%,而數(shù)據(jù)資產(chǎn)泄露高發(fā)的互聯(lián)網(wǎng)行業(yè)也只排名第二,占27%。出現(xiàn)這種情況是因為金融行業(yè)涉及到的人群大多是高凈值人群,數(shù)據(jù)轉(zhuǎn)化率高,變現(xiàn)能力強(qiáng)。

騰訊云數(shù)據(jù)庫TDSQL首席架構(gòu)師張文認(rèn)為:“雖然企業(yè)數(shù)據(jù)安全不只依靠數(shù)據(jù)庫,但數(shù)據(jù)庫一定要做這種最后一根救命稻草的保障?!?/p>

張文還介紹到,“數(shù)據(jù)的誤刪、誤操作,對于一些銀行客戶而言,可能一年或者幾個月都不會發(fā)生一次,但是,我們面對著云上的客戶,每天都有客戶誤刪、誤操作,在這方面TDSQL積累、總結(jié)了大量的經(jīng)驗、教訓(xùn)。對此,我們也有很多的解決方案包括SQL防火墻、透明加密、自動備份等——如何更快速的幫助用戶找回數(shù)據(jù)、恢復(fù)其可用性,經(jīng)過這么多年的打磨,我認(rèn)為我們是非常專業(yè)的?!?/p>

恰逢新年,雷鋒網(wǎng)《AI金融評論》邀請到張文參加「銀行業(yè)AI生態(tài)云峰會」,他分享了騰訊云是如何在「銀行數(shù)據(jù)庫」這一領(lǐng)域深耕發(fā)展;如何在國外商用數(shù)據(jù)庫的“壓力”下,突破求生,拿下多個銀行核心系統(tǒng)大單。

目前「銀行業(yè)AI生態(tài)云峰會」已成功舉辦4場,微眾銀行區(qū)塊鏈安全科學(xué)家嚴(yán)強(qiáng)、達(dá)觀數(shù)據(jù)聯(lián)合創(chuàng)始人紀(jì)傳俊、騰訊云數(shù)據(jù)庫TDSQL首席架構(gòu)師張文、阿里云金融科技AI產(chǎn)品負(fù)責(zé)人王巍給觀眾帶來了十分精彩的演講,后續(xù)還將有360數(shù)科首席科學(xué)家張家興、融慧金科董事長兼CEO王勁、華為云FusionInsight首席架構(gòu)師徐禮峰、摸象科技董事長高鵬等眾多大咖前來分享最新、最有貨的科技觀點。

以下為張文的演講內(nèi)容,雷鋒網(wǎng)AI金融評論作了不改變原意的編輯:

大家晚上好,很高興能在雷鋒網(wǎng)這個平臺帶來關(guān)于分布式數(shù)據(jù)庫的分享,今天主要的議題是《騰訊云分布式數(shù)據(jù)庫在銀行核心系統(tǒng)的改造實踐》。

眾所周知,2020年12月24日,騰訊云數(shù)據(jù)庫官宣TDSQL品牌整合升級計劃,集中發(fā)力數(shù)據(jù)庫技術(shù)創(chuàng)新突破。騰訊云原有的TDSQL、TBase、CynosDB三大產(chǎn)品線統(tǒng)一升級為“騰訊云企業(yè)級分布式數(shù)據(jù)庫TDSQL”。全新升級后的騰訊云TDSQL將涵蓋金融級分布式、分析型、云原生等多引擎融合的完整數(shù)據(jù)庫產(chǎn)品體系。本次分享將主要以金融級分布式版TDSQL的實踐進(jìn)行介紹,下述以“TDSQL”為簡稱。

基礎(chǔ)技術(shù)創(chuàng)新背景與當(dāng)前行業(yè)趨勢分析

銀行的“核心系統(tǒng)”,對于數(shù)據(jù)庫廠商而言是一個比較大的挑戰(zhàn)。

銀行,我們都知道有核心系統(tǒng)和外圍系統(tǒng),核心系統(tǒng)是銀行心臟中的心臟。

銀行的核心系統(tǒng)改造,對于數(shù)據(jù)庫廠商而言是一個很大的考驗。數(shù)據(jù)庫廠商需要面對包括數(shù)據(jù)的一致性、高可用,以及SQL的兼容性等等一系列復(fù)雜問題。

信息技術(shù)創(chuàng)新的大勢所趨

過去我們的核心系統(tǒng),包括銀行核心,還有一些政務(wù)核心系統(tǒng),對外國廠商的依賴度超過了90%,包括軟、硬件,硬件主要是依賴于國外的大型機(jī),小型機(jī)。

軟件方面,像操作系統(tǒng)和數(shù)據(jù)庫軟件,整個一套技術(shù)架構(gòu)都采用的是國外的產(chǎn)品。直到現(xiàn)在,在技術(shù)自主創(chuàng)新大趨勢浪潮下,從硬件到軟件,我們逐步在進(jìn)行國產(chǎn)化的探索。

硬件上,我們開始嘗試用基于X86或者是ARM的國產(chǎn)化硬件,以構(gòu)成底層的硬件平臺;軟件上,從操作系統(tǒng)到數(shù)據(jù)庫,包括一些中間件,在國產(chǎn)化方面近幾年涌現(xiàn)出了很多基礎(chǔ)類軟件。

所以,現(xiàn)在整體的技術(shù)導(dǎo)向是:從軟件到硬件整個基礎(chǔ)平臺開始向國產(chǎn)化的態(tài)勢發(fā)展,而不僅僅局限于數(shù)據(jù)庫。

金融級分布式數(shù)據(jù)庫的挑戰(zhàn)與難點

分布式數(shù)據(jù)庫的挑戰(zhàn)(技術(shù)層面)

對于分布式數(shù)據(jù)庫而言,如何迎合這樣的契機(jī)和挑戰(zhàn)?

為什么早期國外的商用數(shù)據(jù)庫和商用的基礎(chǔ)軟件,在國內(nèi)的銀行、政務(wù)系統(tǒng)占據(jù)了大量份額?大部分企業(yè)選擇這些基礎(chǔ)軟件,主要訴求是其穩(wěn)定性。以穩(wěn)定性為口碑,經(jīng)過多年打磨,因而國外廠商的這些軟件占據(jù)了壟斷性的地位。

這種壟斷性地位在短時間內(nèi)是不容易被打破的,因為它有個長時間的市場效應(yīng),對于使用國外軟件的這些廠商而言,一旦涉及到替換或者升級,就容易產(chǎn)生一些兼容性問題,還有一些遷移成本和改造難度等問題。

對于國產(chǎn)的分布式數(shù)據(jù)庫,如果想要切入政務(wù)及銀行系統(tǒng),首先需要打破長期被國外商用數(shù)據(jù)庫建立起來的一系列壁壘,這些壁壘對于國產(chǎn)物數(shù)據(jù)庫是一系列的挑戰(zhàn)點。

強(qiáng)一致性高可用

作為金融級數(shù)據(jù)庫,可用性和數(shù)據(jù)強(qiáng)一致性是至關(guān)重要的,因為在金融場景下,一條數(shù)據(jù)的價值是無法估量的,沒法評估它到底是錯了一分錢還是一個億,或者更多,所以金融級高可用是國產(chǎn)分布式數(shù)據(jù)庫首要面對的一個挑戰(zhàn)。

性能成本

在國產(chǎn)化方面主要基于廉價存儲,因為在分布式的架構(gòu)下,可以實現(xiàn)線性水平擴(kuò)展。但是數(shù)量對于分布式數(shù)據(jù)庫而言,并不是一昧的堆機(jī)器、堆存儲、堆計算,那樣實際上是很浪費(fèi)資源的。分布式數(shù)據(jù)庫組成一個較大的集群,假如有上千臺機(jī)器,那么如果在性能方面提高20%,就能節(jié)省上百臺的機(jī)器,甚至能節(jié)省出來一個機(jī)房。

所以,性能成本也是分布數(shù)據(jù)庫一直在探索的以較低的成本獲取較高的性能,這也是我們追求的一個性價比。

水平伸縮

對于分布式數(shù)據(jù)庫,水平伸縮能力是必須要具備的,因為分布式數(shù)據(jù)庫在互聯(lián)網(wǎng)場景算是需要比較常態(tài)化的水平伸縮。

例如應(yīng)對如雙11購物節(jié)、春晚紅包的突增流量,需要有一個迅速的彈性擴(kuò)展能力以承載這些流量。而業(yè)務(wù)有峰值就有谷值,活動結(jié)束后,需要再將這些資源進(jìn)行回收。這種水平伸縮能力,是分布式數(shù)據(jù)庫應(yīng)當(dāng)具備的基本點,任何分布式數(shù)據(jù)庫都需要具備這種可伸縮、可拓展的能力。

產(chǎn)品化程度

產(chǎn)品化程度是用戶能否快速上手的關(guān)鍵。

比如從一個傳統(tǒng)的集中式數(shù)據(jù)庫轉(zhuǎn)換到分布式數(shù)據(jù)庫,尤其是對于一些政企類、金融客戶而言,他們能否從傳統(tǒng)觀念或者傳統(tǒng)數(shù)據(jù)庫的環(huán)境下,過渡到分布式數(shù)據(jù)庫的環(huán)境和條件,這類客戶其網(wǎng)絡(luò)往往跟外網(wǎng)是隔離的,也就是在用戶出了問題之后,我們沒法第一時間登錄他的環(huán)境,幫助其進(jìn)行調(diào)試,就需要他自助的完成。

如果沒有比較成熟且產(chǎn)品化的一套解決方案,用戶出了問題只能7x24小時找到廠商解決,非常低效。所以,產(chǎn)品化程度也是至關(guān)重要的。

早期那些國外的商務(wù)數(shù)據(jù)庫也是歷經(jīng)多年打磨,才慢慢的讓這些傳統(tǒng)廠商的數(shù)據(jù)庫團(tuán)隊、科技團(tuán)隊接受的。

關(guān)鍵案例

前面幾點做得再好、再花哨,如果是沒有關(guān)鍵案例的驗證,一切都是竹籃打水一場空,“實踐是檢驗真理的唯一標(biāo)準(zhǔn)”,做得再好都需要有案例加以證明其可行性,對于分布式數(shù)據(jù)庫的挑戰(zhàn),最重要的一點也是最為關(guān)鍵的一點,就是實實在在的案例。

如果沒有人用,大家都處于觀望狀態(tài)。關(guān)鍵案例是分布式數(shù)據(jù)庫面臨的最大挑戰(zhàn),目前來看,國內(nèi)的傳統(tǒng)廠商、銀行、政企,還是外企的份額居多,國內(nèi)的分布式數(shù)據(jù)庫也是在近幾年才殺出一條血路。

所以,關(guān)鍵案例方面,除了需要TDSQL,也需要所有的友商共同探索,將關(guān)鍵案例不斷的迭代、鋪開,有了更多案例的證明,國產(chǎn)分布式數(shù)據(jù)庫的影響力也好,口碑也罷,包括大家的接受程度,才能慢慢地得到提高。

分布式數(shù)據(jù)庫的挑戰(zhàn)(非技術(shù)層面)

這里的非技術(shù)層次的挑戰(zhàn)更偏向于產(chǎn)品側(cè),主要分為以下4個挑戰(zhàn):

「騰訊云數(shù)據(jù)庫」火速拿下2000家金融客戶,背后的技術(shù)方法論

質(zhì)量可靠

對于一款分布式數(shù)據(jù)庫,需要經(jīng)過大量業(yè)務(wù)的驗證,產(chǎn)品在成熟或者說正式用于外部之前,一定需要經(jīng)過內(nèi)部的打磨和錘煉,像TDSQL數(shù)據(jù)庫,我們往往都是在內(nèi)部打磨得非常成熟后才將其推向外部。

因為我們的內(nèi)部場景非常多,騰訊也有很多業(yè)務(wù)線,例如在類金融場景、社交場景、醫(yī)療健康、互動娛樂,以及各種各樣的公有云的場景加以打磨。

我們秉承著對自己產(chǎn)品認(rèn)真、負(fù)責(zé)的態(tài)度,先經(jīng)過內(nèi)部的打磨才推送到外部客戶。因為將產(chǎn)品推送到外部客戶時,實際上已經(jīng)是一個黑盒的環(huán)境,要求我們一定要在內(nèi)部盡可能的提前發(fā)現(xiàn)一些比較關(guān)鍵和顯而易見的問題,比如用戶的體驗性和一些使用方面的問題。

持續(xù)投入

數(shù)據(jù)庫的更新迭代非常快,從TB級PB級再到更高數(shù)量級的提升。

因為迭代更新比較快,所以要求廠商要有一個穩(wěn)定的數(shù)據(jù)庫團(tuán)隊持續(xù)地跟進(jìn)演進(jìn)。

對于TDSQL而言,作為騰訊內(nèi)部唯一的自研數(shù)據(jù)庫品牌,我們團(tuán)隊也要緊跟技術(shù)的演進(jìn)和變化,除了服務(wù)外部客戶還要服務(wù)內(nèi)部,因為無論是內(nèi)部還是外部都是我們的關(guān)鍵的客戶,都是我們非常重視的使用場景。

像騰訊這種體量的互聯(lián)網(wǎng)公司,需要一支比較穩(wěn)定,并且可以不斷緊跟著技術(shù)的演進(jìn)和發(fā)展不斷迭代的數(shù)據(jù)庫團(tuán)隊。

團(tuán)隊建設(shè)

需要我們的數(shù)據(jù)庫有自己的生態(tài),包括用戶從集中式轉(zhuǎn)換到分布式的配套工具,周邊文檔資料,人員的招聘,還有一些過渡保障措施。

TDSQL是兼容MySQL、PostgreSQL生態(tài)的,而這些生態(tài)是一個非常龐大的數(shù)據(jù)庫圈子,其文檔和資料,以及全世界的活躍社區(qū)都給我們提供了很多的學(xué)習(xí)參考的途經(jīng),我們一些技術(shù)水平比較高的銀行合作伙伴往往在出了問題之后,對于一些比較基本的問題,都是自己通過查閱相關(guān)資料加以解決。

對于我們的客戶而言,選用了一款分布式數(shù)據(jù)庫,它也要考慮自己團(tuán)隊對新型分布式數(shù)據(jù)庫的維護(hù)能力。

服務(wù)能力

服務(wù)能力要求分布式數(shù)據(jù)庫的具有完善的服務(wù)機(jī)制與生態(tài)體系。比如用戶出了問題之后,能夠第一時間真的需要到現(xiàn)場,能夠第一時間去就近服務(wù),包括一個完善的區(qū)域的合作伙伴的服務(wù)機(jī)制。

在服務(wù)能力方面,TDSQL也在全國培養(yǎng)了很多的技術(shù)支持團(tuán)隊幫助,引導(dǎo)客戶解決問題。比如一些重大的節(jié)日保障,或者是涉及到一些重大變更,需要我們的合作伙伴立刻到達(dá)現(xiàn)場,做業(yè)務(wù)的割接、切換或者是大規(guī)模的災(zāi)備演練。比如對一個機(jī)房進(jìn)行斷電的容災(zāi)演練,我們也有專門的團(tuán)隊去支持,DBA團(tuán)隊也有服務(wù)合作伙伴,共同為客戶保駕護(hù)航。

目前,我們在華東、華南、華北都有專門的服務(wù)團(tuán)隊。

作為一款成熟的分布式數(shù)據(jù)庫產(chǎn)品,除了要在技術(shù)側(cè)加以打磨,還需要有足夠的案例輸出,同時在服務(wù)體系、整合能力還有持續(xù)演進(jìn)能力方面,都要有與之相匹配的能力。否則,它就沒有辦法成為一個成熟完善的商業(yè)化產(chǎn)品。

TDSQL的發(fā)展歷程以及架構(gòu)原理

騰訊的土壤

為什么在騰訊的土壤下能誕生出像TDSQL這樣的數(shù)據(jù)庫?

首先,騰訊是一個依托百億級賬戶數(shù)量的互聯(lián)網(wǎng)公司,其數(shù)據(jù)規(guī)模、場景相對而言比較有挑戰(zhàn)性。

例如,幾年前微信春節(jié)紅包的峰值超過了每秒20萬筆,對于任何數(shù)據(jù)庫而言都是一個比較大的考驗,如果不按照分布式進(jìn)行拆分,那么,沒有任何一個大機(jī)或者小機(jī)能承載這樣的業(yè)務(wù)壓力。

眾所周知,互聯(lián)網(wǎng)業(yè)務(wù)營銷活動比較多,在活動前、活動后,其請求還有峰值都是指數(shù)級的數(shù)量,對數(shù)據(jù)庫的容量、伸縮能力是一個很大的考驗。

TDSQL,依托騰訊云這個載體,服務(wù)于政務(wù)、金融、電商、社交,還有智慧城市等等各種場景的打磨。另外,TDSQL在公有云上服務(wù)于各行各業(yè)和各種場景的用戶,這些都是對TDSQL各種場景的打磨。

最后就是持續(xù)的投入。

伴隨著TDSQL迭代的這10年,騰訊加以持續(xù)的投入,不斷的打磨產(chǎn)品。因為數(shù)據(jù)庫對于這種體量的互聯(lián)網(wǎng)公司而言至關(guān)重要。騰訊有著百億的賬戶,豐富的內(nèi)部產(chǎn)品線和業(yè)務(wù)線,任何一個這種互聯(lián)網(wǎng)業(yè)務(wù)產(chǎn)品都會對數(shù)據(jù)庫有著強(qiáng)依賴。在數(shù)據(jù)庫方面,TDSQL不僅是作為外部的一個產(chǎn)品,在內(nèi)部也是承擔(dān)了一個比較重要的作用。

在這里,詳細(xì)的介紹一下到底什么是TDSQL,其應(yīng)對的主要場景有哪些?

按照官方最新解讀,TDSQL是騰訊推出的一款多引擎融合分布式數(shù)據(jù)庫品牌。

所以TDSQL覆蓋三類數(shù)據(jù)庫場景,分別是:分布式數(shù)據(jù)庫,云原生數(shù)據(jù)庫以及分析型數(shù)據(jù)庫。所以,TDSQL分為三個產(chǎn)品序列,分別是金融級分布式TDSQL、云原生共享存儲的TDSQL-C以及分析型數(shù)據(jù)庫的 TDSQL-A。

這樣的多引擎超融合體系針對數(shù)據(jù)庫場景的幾個關(guān)鍵領(lǐng)域,都提供了特定場景的解決方案,比如云原生數(shù)據(jù)庫,在存儲層基于共享存儲做分布式的就是TDSQL-C。

在面對金融場景或者政務(wù)系統(tǒng)的聯(lián)機(jī)交易和離線跑批場景,分別是分布式TDSQL和分析型TDSQL-A的兩個產(chǎn)品。實際上,TDSQL是騰訊整個一套分布式數(shù)據(jù)庫的解決方案,無論是在線聯(lián)機(jī)型的,還是離線分析型的,或者是基于共享存儲的分布式型場景,它都可以輕松應(yīng)對。

核心特性

「騰訊云數(shù)據(jù)庫」火速拿下2000家金融客戶,背后的技術(shù)方法論

金融級分布式版TDSQL的核心特性包括以下幾點:

首先,數(shù)據(jù)強(qiáng)一致,因為在金融場景下,數(shù)據(jù)不丟不錯是至關(guān)重要的。

第二,金融級高可用,在金融場景至少要保證99.999%的可用性,因為金融除了其本身的行業(yè)因素外,更重要的是它還受到監(jiān)管的約束。無論是對內(nèi)還是對外服務(wù),TDSQL是按照99.9999%的可用性要求的。高性能低成本,作為分布式數(shù)據(jù)庫,盡可能要讓所有的X86、ARM的廉價存儲方式榨干機(jī)器的資源,帶給整個分布式數(shù)據(jù)庫高吞吐量的增益效果。

再者,企業(yè)級安全,雖然需要實現(xiàn)企業(yè)級安全的不只是數(shù)據(jù)庫,但數(shù)據(jù)庫一定要做這種最后一根救命稻草的保障。比如數(shù)據(jù)的誤刪、誤操作,對于一些銀行客戶而言,可能一年或者幾個月都不會發(fā)生一次,但是,我們面對著云上的客戶,每天都有客戶誤刪、誤操作,在這方面TDSQL積累、總結(jié)了大量的經(jīng)驗、教訓(xùn)。對此,我們也有很多的解決方案包括SQL防火墻、透明加密、自動備份等——如何更快速的幫助用戶找回數(shù)據(jù)、恢復(fù)其可用性,經(jīng)過這么多年的打磨,我認(rèn)為我們是非常專業(yè)的。

線性水平擴(kuò)展能力:分布式數(shù)據(jù)庫一定要具備伸縮、可擴(kuò)展能力。

最后,便捷的運(yùn)維——這套分布式數(shù)據(jù)庫交付到客戶手里,用戶要能夠自行掌控、操作。而不是出了問題后,只能7×24小時的給廠商打電話,這也不是我們的初衷和訴求。

產(chǎn)品體系

「騰訊云數(shù)據(jù)庫」火速拿下2000家金融客戶,背后的技術(shù)方法論

最底層的是資源池。

TDSQL既可以基于物理機(jī)部署,也可以基于虛擬機(jī),我們可以將這個資源池簡單理解成一個iaas 服務(wù)層的概念,在資源池上方提供了兩種形態(tài)的存儲節(jié)點,一種是Noshard數(shù)據(jù)庫,另外一種是分布式數(shù)據(jù)庫,分別代表了單機(jī)版和分布式兩種形態(tài)。

作為分布式TDSQL,為什么還要有一種形態(tài)是單機(jī)版的?

對于一個廠商、一個銀行或者一個金融客戶而言,并非所有業(yè)務(wù)都會用到分布式數(shù)據(jù)庫,或者不一定所有的都是業(yè)務(wù)大表,它可能是多個業(yè)務(wù)之間有交叉,真正涉及到分布式的可能是一部分表,還有一部分可能是非分布式的。

在這種產(chǎn)品形態(tài)下,同時兼容分布式和非分布式,因為分布式下有一些使用限制,比如語法的限制、分布式事務(wù)的性能損耗,以及跨數(shù)據(jù)節(jié)點的join.

在分布式下,因為兩個數(shù)據(jù)節(jié)點是一定分布在兩個不同的物理節(jié)點上的,如果在這兩個物理節(jié)點之間的數(shù)據(jù)做join,很容易造成拉表,相當(dāng)于是把兩個物理節(jié)點上的數(shù)據(jù)要統(tǒng)一匯總到一個節(jié)點上進(jìn)行join,這樣的效率不是很高。

而單機(jī)版的則沒有這個問題,因為數(shù)據(jù)的拖拽都是在單臺物理節(jié)點的內(nèi)存中,所以,Noshard的形態(tài)可以自由做表與表之間的join,但是在分布式上會有性能方面的消耗,這也說明了分布式和非分布式兩者各有優(yōu)缺點。

所以,我們在存儲節(jié)點保留了兩種形態(tài),用戶可以根據(jù)需要自行選擇,比如業(yè)務(wù)實例要求必須得做到分布式,需要將數(shù)據(jù)分散,包括將來考慮到業(yè)務(wù)的拆分,我們就要用分布式的;如果沒有強(qiáng)烈的訴求,我們提供單機(jī)版的就能滿足需求。此外,從單機(jī)模式轉(zhuǎn)換成分布式模式,TDSQL自帶的同步遷移工具也是支持的。

再往上是計算節(jié)點。

首先,OLTP型引擎主要包括了讀寫分離、SQL改寫、分布式事務(wù)以及關(guān)聯(lián)查詢。

除此之外,對于計算節(jié)點,需要處理一些比較復(fù)雜的SQL,需要對其進(jìn)行拆分,包括將執(zhí)行計劃下推等等,就屬于OLAP型的計算邏輯。

所以,計算節(jié)點在分布式下的工作相對還是比較復(fù)雜的,在內(nèi)部,計算節(jié)點又被稱為SQL引擎,作為所有SQL的入口,它會對SQL進(jìn)行分發(fā),對一些復(fù)雜SQL拆解成對應(yīng)的SQL,再發(fā)到對應(yīng)的存儲節(jié)點,當(dāng)存儲節(jié)點取完數(shù)據(jù)之后再回吐到計算節(jié)點,計算節(jié)點對其進(jìn)行分類匯總,最后回吐到客戶端。

如果把計算節(jié)點、存儲節(jié)點、資源池比作一個黑盒,那么赤兔運(yùn)營管理平臺就是一個用戶接口,所有的DBA操作都是通過赤兔管理平臺來操縱存儲節(jié)點、計算節(jié)點、資源池。

以往,DBA要做數(shù)據(jù)庫的變更,比如主備切換或者重啟,需要登錄到后臺,比如計算節(jié)點,存儲節(jié)點執(zhí)行SQL命令,現(xiàn)在只要通過赤兔管理平臺頁面按鈕可以完成90%以上的操作,極大地減少了DBA的誤操作風(fēng)險。

雖然有用戶界面,但是如果DBA確實是要登錄到后臺了解更詳細(xì)的信息也沒有問題,一樣允許登錄到對應(yīng)節(jié)點的后臺進(jìn)行查看。

赤兔運(yùn)營管理平臺主要是為DBA提供用戶接口,它還對計算節(jié)點、存儲節(jié)點,包括機(jī)器IO、CPU網(wǎng)絡(luò)等各種信息的上百項指標(biāo)進(jìn)行統(tǒng)計匯總,并且當(dāng)監(jiān)控告警系統(tǒng)的指標(biāo)出現(xiàn)異常時,可以在第一時間發(fā)出告警。

那么,“扁鵲”智能DBA平臺有什么作用?

打個比方,某天晚上發(fā)生了機(jī)房斷電,數(shù)據(jù)庫也發(fā)生了切換,第二天早上DBA收到一個告警,線上前一天晚上發(fā)生了切換(當(dāng)然這個業(yè)務(wù)是正常切換過來了,然后對業(yè)務(wù)的影響也是可控的),DBA需要知道為什么會發(fā)生切換,只需要在智能DBA平臺上點一下“故障分析”,智能DBA自動到機(jī)器上分析操作系統(tǒng)和數(shù)據(jù)庫日志,原來是操作系統(tǒng)發(fā)生了重啟,這樣 DBA就不需要再手動登錄到機(jī)器上查看信息。

再比如上線了一個新業(yè)務(wù),上線了新業(yè)務(wù)之后瞬間卡死不可用。這時就找到DBA投訴,“之前數(shù)據(jù)庫用得好好的,怎么一上新業(yè)務(wù)就不行了?”

實際上,可能是新上線的業(yè)務(wù)產(chǎn)生了一條慢SQL,慢SQL并發(fā)量又比較大,然后把數(shù)據(jù)庫連接耗盡。按照傳統(tǒng)的做法,這時DBA也是先分析日志,找到這條慢SQL,然后再一點點的進(jìn)行分析。

而通過智能DBA平臺,可以進(jìn)行一鍵診斷,智能DBA平臺可自動篩選出那條慢SQL,并且告訴DBA需要對這條慢SQL如何進(jìn)行優(yōu)化。

有了智能DBA平臺,就可以將我們從一些日常的、重復(fù)性的繁雜工作中解放出來,這套平臺也是我們對外口碑最好的一套平臺,尤其對于傳統(tǒng)客戶而言是非常受用的,能極大地提高DBA的工作效率,同時降低處理問題時在時間上的損失。

調(diào)度系統(tǒng),負(fù)責(zé)整個集群的資源調(diào)度和管理,包括計算節(jié)點,如何組成一套數(shù)據(jù)庫實例,跟下方資源池里的資源如何進(jìn)行重組、搭配,都是調(diào)度系統(tǒng)需要做的事情。

備份系統(tǒng),沒有備份的數(shù)據(jù)庫屬于一個裸奔狀態(tài),在這方面,TDSQL提供了豐富的備份策略,如全量的、增量的、物理的、邏輯的、日志的等各種各樣的策略??梢酝瓿啥c恢復(fù)、庫表結(jié)構(gòu)恢復(fù)、指定表的恢復(fù)等等。

服務(wù)模塊,服務(wù)模塊屬于比較高級功能,主要應(yīng)對一些特殊性場景,如:審計、數(shù)據(jù)訂閱、數(shù)據(jù)治理,以及SQL防火墻,數(shù)據(jù)遷移等等。

比如用戶需要從原生的MySQL遷移到TDSQL,或者從其它異構(gòu)數(shù)據(jù)庫把TDSQL遷移到其中,都涉及到數(shù)據(jù)遷移,我們有專門的數(shù)據(jù)遷移模塊,包括TDSQL的兩種形態(tài)之間,包括從分布式到單機(jī)版,從單機(jī)版到分布式,都依賴于這樣的數(shù)據(jù)遷移。

數(shù)據(jù)遷移也彰顯了TDSQL不綁架用戶的一個初衷,這也是TDSQL開放生態(tài)的一個特點,基于MySQL生態(tài)的數(shù)據(jù)庫在遷移過來之后一定不用擔(dān)心將你綁架——也就是它不讓你遷出去,因為日志、數(shù)據(jù)結(jié)構(gòu)都是開源的,有很多種工具提供了在線、離線的遷移方式。

如果用戶覺得TDSQL不好用,可以通過我們的遷移工具再將數(shù)據(jù)遷走,數(shù)據(jù)進(jìn)出自由,并非綁死在TDSQL。

運(yùn)營管理

「騰訊云數(shù)據(jù)庫」火速拿下2000家金融客戶,背后的技術(shù)方法論

  • 赤兔監(jiān)控:這里羅列的幾項指標(biāo),是SQL引擎請求量的對比,包括與前一日的對比曲線。

  • 智能告警:如果報警標(biāo)紅就會閃爍,如果只有監(jiān)控而沒有告警,其實是起不到任何作用的,一定要將監(jiān)控與告警關(guān)聯(lián),才能起到預(yù)警作用。

  • 扁鵲系統(tǒng):其內(nèi)部邏輯非常復(fù)雜,主要是基于騰訊多年來海量運(yùn)維的經(jīng)驗,形成的策略庫、語法庫。通過在這方面經(jīng)驗的積累,對一些常見的故障進(jìn)行分析和識別并處理。

  • 一鍵運(yùn)維:TDSQL赤兔管理臺的首頁,它包含的功能在我們看來如果DBA數(shù)據(jù)庫管理員有這套東西,基本上是可以做到只在頁面上完成所有的操作,不需要登錄到后臺進(jìn)行變更、維護(hù)。

系統(tǒng)數(shù)據(jù)庫向國產(chǎn)分布式數(shù)據(jù)庫遷移與轉(zhuǎn)型實踐

第一個案例:微眾銀行

微眾銀行是在2014年開始籌建,最終采用了TDSQL,并搭建分布式架構(gòu)核心系統(tǒng)。微眾銀行對于機(jī)房的部署是,在同城有5個機(jī)房異地有2個機(jī)房,按照傳統(tǒng)意義上的理解,這同城的5個機(jī)房如果做成1主4備,其余4個機(jī)房都有可能會浪費(fèi)。因為只有1個機(jī)房沒有讀寫請求。

微眾銀行對上述機(jī)房的部署肯定沒法充分利用機(jī)房的資源。對此,又是怎么解決的呢?

首先,將數(shù)據(jù)庫規(guī)劃成一個個的 DCN,一個DCN模型就是一個小的微眾銀行的分行、網(wǎng)絡(luò)分行,一個分行只固定500萬的賬戶數(shù),這500萬的客戶數(shù)也是經(jīng)過了一系列的壓測驗證,至少這500萬放在這個單機(jī)版的TDSQL上是安全的,不會有性能的瓶頸。

如果超過500萬,比如客戶數(shù)到了600萬,就再加一個DCN,實際數(shù)據(jù)庫的實例層是由多個DCN組成了一套集群,而多個DCN之間相互沒有聯(lián)系,因為用的都是單機(jī)版的TDSQL。

那么,微眾銀行是如何利用這種單機(jī)版的Noshard模式實現(xiàn)整體的分布式呢?

微眾銀行還引入了一個組件GNS, GNS被稱作全局路由,業(yè)務(wù)訪問數(shù)據(jù)庫一定要經(jīng)過GNS,之后,GNS告訴他所需要的數(shù)據(jù)在DCN的具體位置,業(yè)務(wù)再把對應(yīng)的SQL發(fā)到對應(yīng)的DCN。

所以,GNS解決了路由的問題。

在這種情況下,如果要做分布式事務(wù)該怎么辦?傳統(tǒng)的分布式數(shù)據(jù)庫,對于用戶側(cè)而言就是一個begin,然后增刪、改查、commit。

如果增刪、改、查里涉及到的多個DCN對業(yè)務(wù)是透明的,但是在這種情況下,實際上沒法做到完全的透明。

對此,微眾銀行又引入了一個組件RMB——可靠的消息隊列,是處理分布式事務(wù)的,也就是在一筆分布式事務(wù)到達(dá)后,首先要在RMB這里注冊一個分布式事務(wù)的總事務(wù),之后再由RMB完成子事務(wù)的分發(fā),最后它會確保所有的分布式事務(wù)所涉及到的 DCN在處理完成后,返回給業(yè)務(wù)端。

微眾的數(shù)據(jù)庫是怎么部署的呢?利用多個IDC交叉部署,第一個DCN的主放在IDC1,第二個DCN的主放在IDC2,以此類推,其所有DCN的主是交叉部署在這5個機(jī)房的。

如果最后是500個DCN,有5個機(jī)房,每個機(jī)房就放100個DCN,這樣的好處在于每個機(jī)房的讀寫流量是均勻的,并不會造成像原來所有的讀寫都壓在1個機(jī)房,其余4個機(jī)房都是stand by的角色。

所以,微眾銀行這套架構(gòu)從整體上看,實現(xiàn)了5個機(jī)房資源的充分利用。

任何一個機(jī)房的故障都只會影響1/5的流量,不會造成系統(tǒng)性的宕機(jī)。

像以前這種1主4備的模式,如果主節(jié)點壞掉,整個全行所有的服務(wù)都會癱瘓,雖然最后也會切換,但是其過程對全行的業(yè)務(wù)是有影響的。

如果按照分散的方式,就會產(chǎn)生另外一個問題,一個節(jié)點壞掉之后,使得1/5的業(yè)務(wù)受到影響,而原來的1主4備的模式,如果壞掉的是一個備機(jī),那正常業(yè)務(wù)就不會受到影響。所以,這其中存在著可用性和成本之間的博弈。

第二個案例:張家港銀行

張家港銀行是我們對傳統(tǒng)銀行核心系統(tǒng)進(jìn)行的一次徹頭徹尾地改造。

首先,它是一家傳統(tǒng)銀行,并非新成立。其次,它的核心系統(tǒng)是針對傳統(tǒng)銀行打造的。從微眾銀行到張家港銀行已經(jīng)過去大概5年的時間,整個TDSQL在產(chǎn)品迭代方面已經(jīng)有了很大的變化。

對于張家港銀行而言,首要考慮的問題是性能,其早期的數(shù)據(jù)庫是Sybase數(shù)據(jù)庫,大概是10年前的一個架構(gòu)。在張家港銀行在業(yè)務(wù)高峰期經(jīng)常有卡頓、超時的問題,所以其訴求就是要升級成一個能滿足行里現(xiàn)在業(yè)務(wù)場景的數(shù)據(jù)庫。

第二,張家港銀行的量級相對較小,其訴求就是成本。

另外,改造的難度,在業(yè)務(wù)方面,微眾銀行在數(shù)據(jù)庫方面做了很多的自身的改造。

比如引入了GNS、RMB,這些都是微眾自己進(jìn)行維護(hù)的。并且從一開始,微眾銀行基于自身的定位,更多地還是想?yún)⑴c金融創(chuàng)新,定位自身為一家金融科技公司。而張家港銀行更希望能快速地解決自身的問題并且把東西用起來。

所以,張家港銀行的架構(gòu)圖就非常清晰和簡單,就是一個標(biāo)準(zhǔn)的分布式兩地三中心的架構(gòu),同城總行機(jī)房部署一組主節(jié)點和一組備機(jī)節(jié)點,同城的災(zāi)備機(jī)房部署一組備節(jié)點,整個分布式實例采用一主三備四分片的架構(gòu)。

此外,在異地還有一組異步節(jié)點。從整體看,沒有任何的復(fù)雜組件,張家港銀行采用的這種形態(tài)與微眾銀行的截然不同。

TDSQL有兩種形態(tài)——Noshard和shard,張家港銀行完全采用了后者的形態(tài),這樣,張家港銀行就不需要引入諸如GNS、RMB等組件,因為我們的SQL引擎會助其自動做路由,以及分布式事務(wù)管理。

所以,張家港銀行直接使用分布式shard版的TDSQL,對于業(yè)務(wù)而言,只需進(jìn)行細(xì)微的調(diào)整和改動,例如重新設(shè)計庫表。按照這種分片關(guān)鍵字,一些大表需要選擇其分片關(guān)鍵字。

再者,就是將之前用到的存儲過程、觸發(fā)器的一些計算邏輯,盡可能地上提到業(yè)務(wù)代碼中。因為在分布式數(shù)據(jù)庫下,數(shù)據(jù)庫盡可能的只做數(shù)據(jù)的存取,否則很容易產(chǎn)生性能問題。

按照這種策略和思路,對張家港銀行的改造大概歷時半年完成,改造完之后,整個性能提升非常明顯,查詢交易在100毫秒以內(nèi)完成,高頻交易在300毫秒內(nèi)完成,像貸款結(jié)息這種跑批業(yè)務(wù)與原來相比得到成倍的提升,體現(xiàn)出分布式的一個優(yōu)勢。

性能方面,原來在硬件成本方面需要4~5000萬,現(xiàn)在不足1000萬。同樣的成本,在oracle下是8000的TPS而在TDSQL下是6200的TPS。

在整體性能差異不大的情況下,成本已下降到了不足原來的1/5。同時TDSQL可以通過繼續(xù)加機(jī)器來提高集群的吞吐能力,所以性能還可以不斷地提升,具備橫向擴(kuò)展的能力。

第三個案例:平安銀行

平安銀行更具代表性。平安銀行的體量與張家港銀行相比又上升了一個數(shù)量級,同時其應(yīng)用改造的難度相對而言也是一個比較有挑戰(zhàn)性的工作。今年,我們完成了支持平安銀行信用卡核心從傳統(tǒng)集中式架構(gòu)的大型機(jī)下移至分布式平臺。

平安銀行采用了TDSQL Noshard和Groupshard兩種架構(gòu)。為了配合此次改造,應(yīng)用引入了微服務(wù)架構(gòu)對應(yīng)用進(jìn)行了拆分和解耦。對賬號的分布進(jìn)行了單元化劃分,以DSU為一個邏輯單元,單個DSU包含200萬個客戶信息,單個DSU同時處理聯(lián)機(jī)和賬務(wù)兩種業(yè)務(wù)。這樣做的好處:一方面避免跑批時段消耗資源過多對聯(lián)機(jī)交易的,另外一方面避免由于基礎(chǔ)架構(gòu)的故障導(dǎo)致全局不可用。。

平安銀行也有統(tǒng)計分析類型的業(yè)務(wù),如果按照Noshard架構(gòu),對應(yīng)用開發(fā)要求比較高,需要將統(tǒng)計類的SQL拆分成多個子SQL分發(fā)給多個noshard實例。

groupshard架構(gòu)更適合, 從邏輯上來看,Groupshard架構(gòu)對于應(yīng)用而言就是多個獨立的邏輯表,應(yīng)用不需要關(guān)心數(shù)據(jù)是如何組織分布的。由于要對數(shù)據(jù)進(jìn)行統(tǒng)計分析,數(shù)據(jù)訪問量較大。所以,這種場景下,在訪問需要的數(shù)據(jù)時,應(yīng)用只需把SQL發(fā)給SQL引擎,SQL引擎會對SQL進(jìn)行拆分、并行下推,再進(jìn)行結(jié)果集的聚合。

同時,TDSQL Noshard和Groupshard兩套集群之間通過TDSQL自帶的同步組件完成實時數(shù)據(jù)同步。

政務(wù)系統(tǒng)

第七次全國人口普查的數(shù)據(jù)采集處理工作,對于我們的TDSQL而言也是具有重要意義的。

首先,其數(shù)據(jù)量的規(guī)模是10億級別的,峰值QPS是百萬級。

這種情況,無論在我們內(nèi)部業(yè)務(wù)還是外部業(yè)務(wù)都是非常罕見的,對于TDSQL性能的要求,包括跨節(jié)點之間的通信、分布式事務(wù)的處理都是比較大的挑戰(zhàn)。

因為人口普查涉及到國家政務(wù)的敏感信息,我們不便將其詳細(xì)的架構(gòu)圖畫出來。

但可以肯定的是,基于TDSQL多引擎融合技術(shù),第七次全國人口普查穩(wěn)健完成了數(shù)據(jù)采集處理工作。

欲了解更多活動詳情,可聯(lián)系負(fù)責(zé)人周舟(微信:18811172358)。

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

分享:
相關(guān)文章

編輯

專注報道AI+金融(微信:18811172358)
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說