在Greenplum外部表中使用HDFS

来源:互联网 发布:网络版收银软件 编辑:程序博客网 时间:2024/06/05 18:09

在Greenplum外部表中使用HDFS

Greenplum是一个并行数据库,数据的存储与查询基于一个或多个PostgreSQL实例。它补充了Hadoop,提供对大数据的实时或准实时访问,它还支持使用HDFS文件作为外部表。外部表是一个处理Greenplum集群之外数据很好的解决方案。由于外部表访问首先要消耗网络带宽,所以与Greenplum集群内的数据相比,它应该存储那些访问相对不频繁的数据。本节将介绍如何创建只读的外部表和可读写的外部表。

准备工作

在本节假定你使用的Hadoop版本为CDH3。

运行一个Greenplum实例,确认它能够访问Hadoop集群。相关信息可以查看http://www. greenplum.com/products/greenplum-database。

按照下面的方式配置Greenplum。

gp_hadoop_target_version设置为cdh3u2。

gp_hadoop_home设置为$HADOOP_HOME的完整路径。

在Greenplum集群的每个节点上都需要安装1.6以上(包含1.6)版本的Java。

操作步骤

创建HDFS上weblogs文件的一个外部表:

 CREATE EXTERNAL TABLE weblogs(      md5 text,      url text,      request_date date,      request_time time,      ip inet      )      LOCATION ('gphdfs://<NAMENODE_HOST>:<NAMENODE_PORT>/data/weblogs/      weblog_ entries.txt')      FORMAT 'TEXT' (DELIMITER '\t'); 

工作原理

Greenplum本地支持并行地将HDFS上的数据加载到数据库中。当一个查询需要访问表weblog_entries.txt时,该文件会被加载为Greenplum的一个临时表,然后执行对该临时表的查询。等到查询结束以后再将该表丢弃。

Greenplum也支持对外部表的写操作。这需要在创建表的时候指定写关键字:

    CREATE WRITABLE EXTERNAL TABLE weblogs(      md5 text,      url text,      request_date date,      request_time time,      ip inet      )      LOCATION ('gphdfs://<NAMENODE_HOST>:<NAMENODE_PORT>/data/weblogs/      weblog_ entries.txt')      FORMAT 'TEXT' (DELIMITER '\t'); 
0 0
原创粉丝点击