我们的GPDB群集很小。当我尝试使用GPFDIST协议在我的第一个外部表上创建和阅读时。
在阅读外表时会出现错误:那是
prod=# select * from ext_table
prod-# ;
ERROR: connection with gpfdist failed for gpfdist://gpmasterhost:8080/demo/gp_RevenueReport_stg0.txt. effective url: http://gpmasterhost:8080/demo/gp_RevenueReport_stg0.txt. error code = 111 (Connection refused) (seg0 slice1 datanode2 40000 pid=5402)
prod=#
我们尝试了外部表的DDL命令:
CREATE EXTERNAL TABLE ext_table
(
"ID" bigint,
"time" timestamp without time zone,
)
LOCATION (
'gpfdist://gpmasterhost:8080/demo/gp_RevenueReport_stg0.txt'
)
FORMAT 'TEXT' (delimiter ';' null '' escape '~' )
ENCODING 'UTF8';
任何帮助将不胜感激!
您必须在" gpmaster -host"侦听端口8080上创建gpfdist进程,并提供包含包含gp_revenuereport_stg0.txt的目录演示的文件。
gpfdist -p 8080 -d path_to_demo &
正如乔恩所说的,您需要在" gpmasterhost"系统上运行gpfdist。
但是,根据您的注释,GPFDIST在您的演示目录中运行:
ps aux | grep gpfdist根9417 0.0 0.0 103244 868 PTS/1 R 14:57 0:00 GREP GPFDIST GPFDIST GPADMIN 32581 0.0 0.0 0.0 27148 1692 PTS/0/gpadmin/demo
因此,您要么需要将外部定义更改为(注意我不使用演示目录):
创建外部表ext_table(( " id" bigint, "时间"时间戳没有时区, ) 地点 ( 'gpfdist://gpmasterhost:8080/gp_revenuereport_stg0.txt') 格式为"文本"(定界符';" null''逃脱'〜')编码" utf8";
或运行GPFDIST一个级别(/HOME/GPADMIN),没有对外部表进行修改。