可读外部表
1、首选创建一个文本文件,并放到HDFS中
[gpadmin1@hadoop5 hadoop-0.21.0]$ cat 1.dat
wanghai
[gpadmin1@hadoop5 hadoop-0.21.0]$ hadoop fs -put /1.dat
[gpadmin1@hadoop5 hadoop-0.21.0]$ psql
psql (8.2.15)
Type "help" for help.
2、在数据库中创建相应外部表,查询看看数据能否读到
aligputf8=# create READABLE external table t1_ext(
aligputf8(# name text
aligputf8(# )
aligputf8-# Location (
aligputf8(# 'gphdfs://hadoop5:9000/1.dat'
aligputf8(# )
aligputf8-# Format 'TEXT' (delimiter as ',' null as '' escape 'OFF');
CREATE EXTERNAL TABLE
aligputf8=# select * from t1_ext;
name
---------
wanghai
(1 row)
可写外部表
1、创建一个可写外部表,指定在HDFS中文件的路径,注意这里的2.dat在HDFS中会被翻译为一个目录名,文件名是HDFS自己指定的
aligputf8=# create WRITABLE external table t2_ext(
aligputf8(# name text
aligputf8(# )
aligputf8-# Location (
aligputf8(# 'gphdfs://hadoop5:9000/2.dat'
aligputf8(# )
aligputf8-# Format 'TEXT' (delimiter as ',' null as '' escape 'OFF');
CREATE EXTERNAL TABLE
aligputf8=# insert into xx values('xx');
INSERT 0 1
aligputf8=# insert into xx values('yy');
INSERT 0 1
aligputf8=# select * from xx;
name
------
yy
xx
(2 rows)
aligputf8=# insert into t2_ext select * from xx;
INSERT 0 2
aligputf8=# /q
看下HDFS中是否已经有了相应的数据文件
[gpadmin1@hadoop5 hadoop-0.21.0]$ hadoop fs -ls /2.dat/
Found 1 items
-rw-r--r-- 3 gpadmin1 supergroup 6 2011-06-02 21:24 /2.dat/5_1307018734-0000000049
[gpadmin1@hadoop5 hadoop-0.21.0]$ hadoop fs -cat /2.dat/5_1307018734-0000000049
xx
yy
更详细的一些环境变量、权限控制以及语法可以参考GREENPLUM的ADMIN文档