十問十答,帶你全面了解TDSQL-A核心優(yōu)勢

來源: 騰訊云數(shù)據(jù)庫
作者:騰訊云數(shù)據(jù)庫
時間:2021-08-16
16736
TDSQL-A是騰訊首款分布式分析型數(shù)據(jù)庫引擎,采用全并行無共享架構(gòu),具有自研列式存儲引擎,支持行列混合存儲,適應(yīng)于海量OLAP關(guān)聯(lián)分析查詢場景。它能夠支持2000臺物理服務(wù)器以上的集群規(guī)模,存儲容量能達(dá)到單數(shù)據(jù)庫實例百P級。

pexels-photo-5668842.jpg

在“國產(chǎn)數(shù)據(jù)庫硬核技術(shù)沙龍-TDSQL-A技術(shù)揭秘”系列分享中,5位騰訊云技術(shù)大咖分別從整體技術(shù)架構(gòu)、列式存儲及相關(guān)執(zhí)行優(yōu)化、集群數(shù)據(jù)交互總線、分布式執(zhí)行框架以及向量化執(zhí)行引擎等多方面對TDSQL-A進(jìn)行了深入解讀。

在本系列分享的最后一期,我們整理了關(guān)于TDSQL-A大家最關(guān)心的十個問題,騰訊云技術(shù)大咖們將對這些問題一一解答。

TDSQL-A是騰訊首款分布式分析型數(shù)據(jù)庫引擎,采用全并行無共享架構(gòu),具有自研列式存儲引擎,支持行列混合存儲,適應(yīng)于海量OLAP關(guān)聯(lián)分析查詢場景。它能夠支持2000臺物理服務(wù)器以上的集群規(guī)模,存儲容量能達(dá)到單數(shù)據(jù)庫實例百P級。

Q1:TDSQL-A目前有哪些用戶在使用?

TDSQL-A是伴隨騰訊自身業(yè)務(wù)發(fā)展過程中衍生出來的產(chǎn)品,在騰訊內(nèi)部有非常廣泛的應(yīng)用,像騰訊廣告、QQ音樂核心業(yè)務(wù)都在使用TDSQL-A。

Q2:TDSQL-A的主要優(yōu)勢是什么?

TDSQL-A的主要優(yōu)勢在于,它是一個分布式的超大規(guī)模數(shù)據(jù)倉庫集群,其應(yīng)用場景主要面向超大規(guī)模數(shù)據(jù)集合的高速計算,在達(dá)到數(shù)千臺服務(wù)器單個數(shù)據(jù)庫集群超大規(guī)模的同時,還能做到高效的查詢的執(zhí)行。

Q3:TDSQL-A在支持國產(chǎn)化硬件和操作系統(tǒng)方面做了哪些工作?

近年來,隨著國家芯創(chuàng)事業(yè)的推進(jìn),以及自主研發(fā)的硬件和軟件的大規(guī)模應(yīng)用,TDSQL-A也一直在做相關(guān)的適配工作。在國產(chǎn)化硬件方面,像鯤鵬、海光等主流國產(chǎn)化芯片,我們都做了很好的支持。在國產(chǎn)操作系統(tǒng)方面,我們也通過了一系列主流廠家的認(rèn)證。

Q4:TDSQL-A是否支持強(qiáng)同步復(fù)制?

在PostgreSQL流程中,事務(wù)在提交前會記錄WAL日志。對于行存表和列存表,我們都有對應(yīng)的WAL日志去支持主備間的流式復(fù)制,用戶還可以選擇具體的復(fù)制級別或者是復(fù)制的同步配置。用戶可以根據(jù)不同場景去選擇是否需要高級別或者偏低級別的主備同步級別。另外,TDSQL-A也支持Hot Standby,即備平面可讀。這些都可以通過TDSQL-A的管控平臺來進(jìn)行便捷的配置。

Q5:TDSQL-A如何進(jìn)行高效的分布式Join?

這主要涉及到優(yōu)化器、執(zhí)行器、向量化等多個方面。我們以優(yōu)化器為例。如果是帶有CTE或者子查詢比較多的復(fù)雜查詢,TDSQL-A優(yōu)化器會首先進(jìn)行查詢重寫(rewrite),把CTE進(jìn)行inline操作,隨后盡量把子查詢提升成Join來進(jìn)行優(yōu)化。這樣做可以降低查詢的執(zhí)行復(fù)雜度,如果是特定查詢甚至可能達(dá)到成百上千倍的提升。

Rewrite之后,優(yōu)化器還會自動對Join的順序進(jìn)行調(diào)整,相當(dāng)于進(jìn)行一個全面的遍歷,然后去選擇一個最優(yōu)執(zhí)行代價的計劃。在分布式場景下,我們做了很多優(yōu)化。比如Join關(guān)聯(lián)的列是否是數(shù)據(jù)分布列,是否需要進(jìn)行重分布,是否添加延遲物化算子,TDSQL-A會智能地根據(jù)cost來進(jìn)行調(diào)整。

另外,在物理算子選擇時,根據(jù)不同的場景、選擇率、代價評估,TDSQL-A會選擇不同的關(guān)聯(lián)算法,比如Nestloop join、HashJoin、MergeJoin。同時TDSQL-A還支持全流程的并行執(zhí)行和向量化執(zhí)行,以此來保證整體的高效的分布式Join計算能力。

Q6:TDSQL-A目前支持哪些算子?其算子級別的并行能力又在哪些方面得到增強(qiáng)?

我們基于PG 10對TDSQL-A做了很多自研和功能增強(qiáng)。因為PG 10本身在并行能力上存在欠缺,比如像Hash Join支持外表的并行,但像Build Hash Table就不支持并行。為了彌補(bǔ)欠缺,我們基于PG 10開發(fā)了完成的Hash Join的并行來同時支持Inner/Outer Plan的并行。

另外就是聚合算子。因為很多分布式場景需要進(jìn)行兩階段的聚合計算。這種兩階段聚合可能會在中間進(jìn)行數(shù)據(jù)重分布,對于這種情況我們也需要支持完整的并行能力。TDSQL-A會根據(jù)聚合的列去做一個hash的計算,來選擇在哪個work上計算,同時在不同的執(zhí)行分片之間進(jìn)行綁定,保證不同的分片執(zhí)行時,它的不同并行進(jìn)程之間可以收到正確的數(shù)據(jù)然后做并行計算。TDSQL-A還支持一些其它的算子,后面我們會不斷去更新。

Q7:TDSQL-A是否可以直接訪問包括Oracle在內(nèi)的外部數(shù)據(jù)源?

Oracle以及Hive/Spark等大數(shù)據(jù)項目對接是比較廣泛的應(yīng)用場景。針對Oracle兼容和國產(chǎn)數(shù)據(jù)庫替換,我們做了很多兼容性能力增強(qiáng)方面的工作。另外用戶可以直接在TDSQL-A中用dblink來直接訪問Oracle外部數(shù)據(jù)源,去做數(shù)據(jù)變更或者做查詢。像Hive或者其他的第三方數(shù)據(jù)源,PG有Foreign Data Wrapper這樣的接口。用戶可以使用我們支持的插件或者適配豐富的第三方插件來訪問異構(gòu)外部數(shù)據(jù)源。

如果需要把數(shù)據(jù)拉到TDSQL-A來,我們可以用TDSQL-A配套的數(shù)據(jù)導(dǎo)入工具TDX去進(jìn)行數(shù)據(jù)導(dǎo)入。實際上我們會有比較豐富的協(xié)議,可以通過不同的外部數(shù)據(jù)源,把數(shù)據(jù)流導(dǎo)到TDX上面。數(shù)據(jù)庫會并行地從TDX往DN節(jié)點進(jìn)行數(shù)據(jù)抽取,這樣可以訪問外部數(shù)據(jù)源,也可以享受數(shù)據(jù)加載的便捷服務(wù)。

Q8:TDSQL-A能否快速把數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫系統(tǒng)里?是否能與其他系統(tǒng)進(jìn)行數(shù)據(jù)交互?

TDSQL-A支持在PG數(shù)據(jù)源上進(jìn)行copy,可以將數(shù)據(jù)copy in、copy from,同時還支持外表定義,我們可以去創(chuàng)建外部表,直接把外部的數(shù)據(jù)文件在數(shù)據(jù)庫里進(jìn)行定義,從而進(jìn)行一些操作。同時,我們還支持DB bridge——云上的數(shù)據(jù)同步工具,它可以實時同步其他系統(tǒng)的數(shù)據(jù)進(jìn)來,然后再通過Kafka同步出去。此外,我們還開發(fā)了一個專門的數(shù)據(jù)導(dǎo)入導(dǎo)出工具TDX,它可以借助多DN并行高效地進(jìn)行數(shù)據(jù)導(dǎo)入導(dǎo)出。

Q9:TDSQL-A目前最多能支持多少個節(jié)點的部署?

在TDSQL-A中,部署節(jié)點數(shù)量是一個配置參數(shù),在一開始初裝時就可以進(jìn)行配置,默認(rèn)值為2048,具體可以根據(jù)用戶需要進(jìn)行調(diào)整。

Q10:大規(guī)模部署時,F(xiàn)N如何保證通信更高效?

我們先來假設(shè)在沒有FN的情況下,由于系統(tǒng)集群規(guī)模比較大,集群內(nèi)又在不停地創(chuàng)建連接,這樣就會導(dǎo)致整個系統(tǒng)網(wǎng)絡(luò)的socket數(shù)量成為瓶頸。這也是我們引入FN數(shù)據(jù)交互總線的初衷,用來有效減少連接數(shù)量。通過FN節(jié)點,具體計算進(jìn)程不需要直接進(jìn)行全鏈接,而是通過FN節(jié)點進(jìn)行數(shù)據(jù)路由,極大的減少了socket連接數(shù)。

FN如何保證高效性,這個問題可以從兩方面來回答。一方面,在同一個服務(wù)器內(nèi)部,F(xiàn)N通過共享內(nèi)存直接獲取數(shù)據(jù),實際上省了網(wǎng)絡(luò)這一層,因此它的通信是比較高效的。另一方面,在不同服務(wù)器之間,F(xiàn)N主要負(fù)責(zé)數(shù)據(jù)的發(fā)送,其內(nèi)部是一個多線程的模型,可以存在很多個發(fā)送線程。FN內(nèi)部還有一個Merge線程,它的作用是在一個數(shù)據(jù)發(fā)送之前,會檢查哪個發(fā)送線程的隊列比較空閑,然后把這個數(shù)據(jù)調(diào)度到這個空閑的發(fā)送線程中,從而達(dá)到復(fù)雜均能的效果。

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于騰訊云數(shù)據(jù)庫,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
一站式落地AI實時語音對話,騰訊云TRTC開啟AI交互新玩法
一站式落地AI實時語音對話,騰訊云TRTC開啟AI交互新玩法
在人工智能技術(shù)日益普及的今天,GPT-4o所展現(xiàn)出的實時語音對話能力再次吸引了大量關(guān)注。
AI
騰訊云
2024-09-092024-09-09
媲美游戲原生效果的《黑神話》直播畫質(zhì),全靠背后這套AI黑科技
媲美游戲原生效果的《黑神話》直播畫質(zhì),全靠背后這套AI黑科技
上線首日總銷量超450萬份,3天全平臺銷量破千萬……國產(chǎn)現(xiàn)象級游戲《黑神話:悟空》正式發(fā)布之后,熱度不斷持續(xù)。
AI
騰訊云
游戲市場
2024-09-092024-09-09
助力Robotaxi商業(yè)化,騰訊云音視頻實現(xiàn)開放道路遠(yuǎn)程駕駛”0“卡頓
助力Robotaxi商業(yè)化,騰訊云音視頻實現(xiàn)開放道路遠(yuǎn)程駕駛”0“卡頓
中國自動駕駛商業(yè)化處于快速發(fā)展階段,各車企在不斷推動自動駕駛技術(shù)創(chuàng)新的基礎(chǔ)上,也在創(chuàng)新思路,通過給運營中的自動駕駛車配備遠(yuǎn)程安全員,進(jìn)一步保證安全性。
騰訊云
云服務(wù)
2024-09-032024-09-03
騰訊云音視頻+AI重構(gòu)泛心理服務(wù),助力心言測測擁抱新機(jī)遇
騰訊云音視頻+AI重構(gòu)泛心理服務(wù),助力心言測測擁抱新機(jī)遇
面對日益復(fù)雜的現(xiàn)代社會,事業(yè)、情感、前途……太多的不確定性難免會讓人感到茫然和無助。在社會壓力大、普遍焦慮的大環(huán)境下,當(dāng)代人在精神方面面臨著更多危機(jī),心理咨詢和泛心理健康服務(wù)逐步走入了大眾的視野。
AI
騰訊云
2024-08-042024-08-04
優(yōu)質(zhì)服務(wù)商推薦
更多
個人VIP