如何使用gpfdist将数据直接加载到db而不是文件中

时间:2016-05-10 19:20:58

标签: greenplum

此问题是针对关键的greenplum指定的。我被告知gpfdist可以将数据从内存(而不是文件)直接加载到greenplum中。有没有更多的知道以及如何?

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

gpfdist可以从命名管道中读取。

或者,您可以使用SpringXD来传输数据并将gpfdist用作接收器。

http://docs.spring.io/spring-xd/docs/1.3.1.RELEASE/reference/html/#gpfdist

答案 2 :(得分:0)

EXTERNAL WEB TABLE是这种情况的不错选择。 例如,如果要获取所有段服务器的磁盘使用情况。

首先创建EXTERNAL TABLE

CREATE EXTERNAL WEB TABLE disk_free (
dfsegment integer,
dfhostname text,
dfdevice text,
dfused bigint,
dfavail bigint) EXECUTE E'python -c "from gppylib.commands import unix; df=unix.DiskFree.get_disk_free_info_local(\'token\',\'$GP_SEG_DATADIR\'); print \'%s, %s, %s, %s, %s\' % (\'$GP_SEGMENT_ID\', unix.getLocalHostname(), df[0], df[2], df[3])"' ON ALL FORMAT 'csv' (delimiter E',' null E'' escape E'"' quote E'"')ENCODING 'UTF8';

此EXTERNAL TABLE将给出如下结果

 testdb=# SELECT * FROM disk_free ;
 dfsegment | dfhostname |          dfdevice           | dfused  | dfavail
-----------+------------+-----------------------------+---------+----------
         0 |  sdw1      |  /dev/mapper/vg_mdw-lv_root | 5363352 | 16197044
         1 |  sdw2      |  /dev/mapper/vg_mdw-lv_root | 6130012 | 15430384
         3 |  sdw4      |  /dev/mapper/vg_mdw-lv_root | 5363752 | 16196644
         2 |  sdw3      |  /dev/mapper/vg_mdw-lv_root | 6140312 | 15420084