一、开源项目TDW介绍
腾讯分布式">数据仓库 ( Tencent distributed Data Warehouse,以下简称TDW) 是腾讯工程技术事业群数据平台部基于开源软件研发的大数据处理平台,它基于Hadoop、Hive、PostgreSQL之上进行研发,并在开源软件的基础上做了大量的定制和优化。目前TDW是腾讯内部规模最大的分布式系统,集中了腾讯内部各个产品的数据,为腾讯的各个产品提供海量数据存储和分析服务,包括数据挖掘、产品报表、经营分析等服务。
TDW作为腾讯首批对外开源软件,代码已经托管到C++SDN CODE平台。
二、TDW与PostgreSQL互访问功能:使TDW功能更上一层楼
TDW作为一个离线数据分析系统,在处理海量数据方面,通过并行计算,有很好的性能优势。但是我们知道,想用一个大而全的系统解决所有问题一般也是不现实的,同样,TDW也有它的劣势,比如对小数据处理性能低,update/delete性能差、接口不丰富等。
因此,我们引入一个强大的开源数据库PostgreSQL,并对其做一些功能扩展,使之有访问TDW数据的能力;同时我们在TDW中开发了一种新的存储引擎,我们称之为pgdata存储引擎,使得TDW具备读写PostgreSQL中的数据的能力。
TDW与PostgreSQL互访问功能的实现,对TDW是一个强有力的补充,这些主要体现在如下3点:
1. 弥补TDW接口不丰富的短板
TDW缺乏标准化的JDBC/ODBC,编程接口也不丰富,而PostgreSQL有社区强大的力量,提供了JDBC/ODBC、Shell、C/C++、C#、Python、Perl等各种语言的接口,用户通过这些丰富的接口和我们开发的PostgreSQL的TDW桥接工具tdwlink,访问TDW中的数据。
2. 弥补TDW小数据分析效率底的短板
TDW在海量数据处理时,可以发挥它并行执行的优势。但是对于小数据分析,它的性能反而不如传统的DB。使用PostgreSQL,对于10GB以内的数据分析,可以获得更好的性能和时间响应,一般可以在秒级返回结果,相比TDW分钟级的响应,tPG在这种场景下更有优势。
3. 作为TDW的pgdata存储引擎,弥补TDW update/delete效率底下的短板
TDW作为数据仓库系统,对于记录级的update/delete支持不是很好。在TDW中记录级的update/delete,会导致整个表的重写,也就是说,即使delete一条数据,也会导致整个表重写一遍,耗费大量系统资源。而tPG作为传统数据库,记录级的update和delete效率非常高。
PostgreSQL系统在TDW生态圈中的位置如下图所示,tPG是我们对扩充之后的PostgreSQL的一个叫法:
下面我们分两个部分对TDW与PostgreSQL的互访问功能做一个介绍,也即是pgdata存储引擎以及tdwlink功能。
原文链接:http://code.csdn.net/news/2820079