TDW騰訊分布式數(shù)據(jù)倉庫
騰訊分布式數(shù)據(jù)倉庫項(xiàng)目,在Hadoop和hive的基礎(chǔ)上開發(fā)的騰訊內(nèi)部最大的離線數(shù)據(jù)處理平臺(tái)。TDW支持Oracle功能兼容的SQL語法,支持PB級(jí)的存儲(chǔ)和TB級(jí)的計(jì)算等。
這個(gè)項(xiàng)目主要的應(yīng)用場景是構(gòu)建低成本的數(shù)據(jù)倉庫。我們知道傳統(tǒng)的數(shù)據(jù)倉庫需要專用的硬件和昂貴的軟件授權(quán),使用TDW,可以基于廉價(jià)的PC Server構(gòu)建數(shù)據(jù)倉庫。我們希望通過開源的TDW,降低數(shù)據(jù)倉庫的成本和建設(shè)門檻,促進(jìn)企業(yè)對(duì)數(shù)據(jù)價(jià)值的發(fā)掘,提升國內(nèi)企業(yè)的信息化水平。
TDW在過去幾年的設(shè)計(jì)思路一直是“開源軟件”+“騰訊定制和優(yōu)化”。使用開源軟件,大大節(jié)省了我們的研發(fā)成本和時(shí)間,可以快速搭建起原型,比如TDW核 心的查詢引擎,是基于apache hive這個(gè)開源軟件。但是僅僅使用開源軟件,又不能完全滿足騰訊的業(yè)務(wù)需求,因此,我們需要再開源軟件基礎(chǔ)上,根據(jù)騰訊的業(yè)務(wù)特點(diǎn),進(jìn)行定制和優(yōu)化。在 TDW的研發(fā)過程中,我們基于hive和hadoop,依次經(jīng)歷了數(shù)據(jù)倉庫功能完善、易用性建設(shè)、高可用和穩(wěn)定性加強(qiáng),性能和成本優(yōu)化,安全建設(shè)等定制和 優(yōu)化。
TDW是騰訊海量數(shù)據(jù)處理平臺(tái)中最核心的模塊,它有以下幾個(gè)作用:
-
提供海量的離線計(jì)算和存儲(chǔ)服務(wù)。TDW是騰訊內(nèi)部規(guī)模最大的離線數(shù)據(jù)處理平臺(tái),公司內(nèi)大多數(shù)業(yè)務(wù)的產(chǎn)品報(bào)表、運(yùn)營分析、數(shù)據(jù)挖掘等的存儲(chǔ)和計(jì)算都是在TDW中進(jìn)行。這是TDW提供的最基礎(chǔ)的服務(wù)。
-
數(shù)據(jù)集中于共享功能。騰訊產(chǎn)品線較長,數(shù)據(jù)豐富,為了挖掘數(shù)據(jù)價(jià)值,經(jīng)常需要訪問多個(gè)產(chǎn)品的數(shù)據(jù)。TDW是騰訊公司級(jí)的數(shù)據(jù)倉庫,這里集中了大多數(shù)業(yè)務(wù)的數(shù)據(jù),業(yè)務(wù)在這里可以方便的進(jìn)行數(shù)據(jù)共享和管理。
-
TDW為其他大數(shù)據(jù)服提供基礎(chǔ)和平臺(tái)。這 有兩個(gè)含義,首先是TDW對(duì)騰訊內(nèi)部開放各種API接口,很多業(yè)務(wù)的數(shù)應(yīng)用、數(shù)據(jù)處理平臺(tái)可以基于TDW之上,由TDW提供最基礎(chǔ)的存儲(chǔ)于計(jì)算,業(yè)務(wù)在 TDW之上定制個(gè)性化的數(shù)據(jù)產(chǎn)品。其次,TDW內(nèi)存放了騰訊大量有價(jià)值的數(shù)據(jù),對(duì)于這些數(shù)據(jù),各個(gè)業(yè)務(wù)有可能有一些不同的需求,這些需求可以抽象出一些固 定的數(shù)據(jù)服務(wù),如海量數(shù)據(jù)點(diǎn)查詢、快速多維分析、流式計(jì)算等,這些服務(wù)是TDW衍生出來的精細(xì)化的服務(wù)。
與其他商業(yè)數(shù)據(jù)庫比,當(dāng)然是成本優(yōu)勢。與社區(qū)的hive+hadoop比,TDW包含了大量功能,穩(wěn)定性和性能優(yōu)化,并且經(jīng)過了騰訊生產(chǎn)環(huán)境的驗(yàn)證。
在架構(gòu)上,TDW并沒有對(duì)開源軟件做大的修改。TDW的存儲(chǔ)和計(jì)算,主要采用hadoop的HDFS和MapReduce,TDW的SQL查詢引擎主要基于Hive。
