此问题是针对关键的greenplum指定的。我被告知gpfdist可以将数据从内存(而不是文件)直接加载到greenplum中。有没有更多的知道以及如何?
答案 0 :(得分:1)
我写了一篇关于这个主题的博客文章。 http://www.pivotalguru.com/?p=871
此处有更多文档:http://gpdb.docs.pivotal.io/4360/admin_guide/load/topics/g-write-the-gpfdist-configuration.html
答案 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