分析型数据库的Hadoop 连接器
这篇文章介绍一下几个数据库的Hadoop 适配器的资料:
AsterData 和 Greenplum 虽然在2008年8月期间都宣布自己是第一个在数据库层面实现MapReduce 的厂商,但是之后双方走的路线却不尽相同. AsterData 之后走的路线还是将MapReduce层面的东西交给Hadoop 来做,并在一年之后的2009年10月宣布跟Cloudera 合作推出了第一个Hadoop 连接器. 这个连接器主要有如下特点:
- 双向连接:Hadoop 和 AsterData 互相能够保持数据的同步传输.
- SQL-MapReduce : 通过sql 可以直接调用后面的手写的mapreduce 端代码
- MapReduce 执行的时候会占用尽可能多的内存,尤其是保证中间结果尽量不写入到磁盘.
Greenplum 在今年9月的时候完成了它的第一个Hadoop 适配器,也是和Cloudera 合作开发, 不过它是单向的从HDFS 往Greenplum 导数据,仍然是通过所有集群节点并行加载. 它主要利用了机器的优势装载, 本身技术上并没有优化太多, 速度还算可以. 另外一个特点是它的适配器集成了它的Chorus , 作为数据生命周期管理的一个重要特性.
Vertica 在2009年10月与Cloudera 合作开发出了Vertica-Hadoop 集成适配器,它当时只实现了从Vertica 往Hadoop 导入数据的功能,一年之后它增强了从Hadoop 的HDFS 往Vertica 导数据的功能,从而实现了Vertica 与 Hadoop 的双向连接功能,值得一提的是,Vertica 的适配器有两个很变态的功能,一个是能从在vertica 的客户端通过sql 直接指定sql运行在hadoop 集群上, 这个跟AsterData 的SQL-MapReduce 差不多,这个过程是透明的, 他后台的适配器能自动把SQL 翻译成HiveQL 然后执行返回. 另外一个特性是它的Hadoop 连接器是直接读Vertica 的文件格式和元数据,对,数据只存储一份,不像其他的连接器实际上是数据存两份要你自己确保两份数据是同步的. (更准确的说法应该是Vertica 里面的数据是可以配置mirror的,用来提高IO并行能力和数据高可用性,Hadoop 的HDFS 的其中1到2个复制备份是直接依赖与Vertica 文件系统的, 而不像行数据库Greenplum,AsterData 那样数据在DBMS 里面和Hadoop 里面是完全不同的备份)