TDW - 腾讯分布式数据仓库


Apache
跨平台
Java

软件简介

腾讯分布式数据仓库项目,在Hadoop和hive的基础上开发的腾讯内部最大的离线数据处理平台。TDW支持Oracle功能兼容的SQL语法,支持PB级的存储和TB级的计算等。

这个项目主要的应用场景是构建低成本的数据仓库。我们知道传统的数据仓库需要专用的硬件和昂贵的软件授权,使用TDW,可以基于廉价的PC
Server构建数据仓库。我们希望通过开源的TDW,降低数据仓库的成本和建设门槛,促进企业对数据价值的发掘,提升国内企业的信息化水平。

TDW在过去几年的设计思路一直是“开源软件”+“腾讯定制和优化”。使用开源软件,大大节省了我们的研发成本和时间,可以快速搭建起原型,比如TDW核
心的查询引擎,是基于apache
hive这个开源软件。但是仅仅使用开源软件,又不能完全满足腾讯的业务需求,因此,我们需要再开源软件基础上,根据腾讯的业务特点,进行定制和优化。在
TDW的研发过程中,我们基于hive和hadoop,依次经历了数据仓库功能完善、易用性建设、高可用和稳定性加强,性能和成本优化,安全建设等定制和 优化。

TDW是腾讯海量数据处理平台中最核心的模块,它有以下几个作用:

  1. 提供海量的离线计算和存储服务。 TDW是腾讯内部规模最大的离线数据处理平台,公司内大多数业务的产品报表、运营分析、数据挖掘等的存储和计算都是在TDW中进行。这是TDW提供的最基础的服务。

  2. 数据集中于共享功能。 腾讯产品线较长,数据丰富,为了挖掘数据价值,经常需要访问多个产品的数据。TDW是腾讯公司级的数据仓库,这里集中了大多数业务的数据,业务在这里可以方便的进行数据共享和管理。

  3. TDW为其他大数据服提供基础和平台。 这 有两个含义,首先是TDW对腾讯内部开放各种API接口,很多业务的数应用、数据处理平台可以基于TDW之上,由TDW提供最基础的存储于计算,业务在 TDW之上定制个性化的数据产品。其次,TDW内存放了腾讯大量有价值的数据,对于这些数据,各个业务有可能有一些不同的需求,这些需求可以抽象出一些固 定的数据服务,如海量数据点查询、快速多维分析、流式计算等,这些服务是TDW衍生出来的精细化的服务。

与其他商业数据库比,当然是成本优势。与社区的hive+hadoop比,TDW包含了大量功能,稳定性和性能优化,并且经过了腾讯生产环境的验证。

在架构上,TDW并没有对开源软件做大的修改。TDW的存储和计算,主要采用hadoop的HDFS和MapReduce,TDW的SQL查询引擎主要基于Hive。