我如何在GPDB中创建和读取外部表



我们的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),没有对外部表进行修改。

相关内容

  • 没有找到相关文章

最新更新