我正在运行Greenplum教程。
我很难理解gpfdist是如何工作的。这意味着什么:gpfdist: Serves data files to or writes data files out from Greenplum Database segments.
“服务文件”是什么意思?我以为它读的是外部表。gpfdist是否同时在客户端和服务器上运行?它是如何并行工作的?它是否在多台主机上调用gpfdist,是这样的吗?
我只需要你帮我理解大局。在本教程http://greenplum.org/gpdb-sandbox-tutorials/中,我们调用它两次,为什么?(这很令人困惑,因为服务器和客户端在同一台机器上。)
发布于 2016-06-07 01:45:59
gpfdist可以在任何主机上运行。它基本上是lighttpd,您指向一个目录,它位于那里并侦听您指定的端口上的连接。
在greenplum服务器/数据库端,创建使用gpfdist位置的位置设置的外部表定义。
然后,您可以查询此表,gpfdist将向数据库引擎“提供文件”。
阅读:http://gpdb.docs.pivotal.io/4380/utility_guide/admin_utilities/gpfdist.html和http://gpdb.docs.pivotal.io/4380/ref_guide/sql_commands/CREATE_EXTERNAL_TABLE.html
发布于 2016-06-07 02:24:15
外部表由几件事组成,其中最重要的两个是获取(或放置)数据的位置,另一个是如何获取数据并将其解析为可用作表记录的内容。当您创建外部表时,您只是创建了它应该如何工作的定义。
只有在对外部表执行查询时,这些段才会执行已在该定义中设置的操作。需要注意的是,它们并不是在创建持久连接或缓存数据。每次执行该查询时,集群都会查看其定义,并在网络上移动该数据,并将其用于该查询的长度。
在使用gpfdist作为端点的情况下,它实际上只是一个the服务器。人们经常在ETL节点上运行一个。当位置是gpfdist,并且您创建了一个可读的外部表时,每个段都将连接到gpfdist,请求文件的一块并对其进行处理。这就是并行性,多个段连接到gpfdist并获取数据块,然后它们将尝试根据表定义中指定的内容解析成一个元组,然后将其组合在一起,为您的查询创建一个数据表。
gpfist也可以是可写外部表的端点。在这种情况下,段都将把它们拥有的数据推送到远程位置,而gpfdist将把它推到磁盘上的数据写到磁盘上。这里要注意的是,这里没有承诺排序顺序,数据是从多个段流式传输到磁盘的。
发布于 2016-08-04 14:21:40
是的,Gpfdist是文件分发服务,它用于外部表。Green plum DB直接从目录(Unix或windows)中查询类似于表的文件
我们可以选择平面文件数据并进行进一步的处理。Unicode和通配符也可以使用预定义的编码进行处理。
在gpfdist的帮助下出现了外部表概念。
在windows中设置的语法
gpfdist -d ${FLAT_FILES_DIR} -p 8081 -l /tmp/gpfdist.8081.log
只需确保您的特定源计算机中有gpdist.exe
https://stackoverflow.com/questions/37663012
复制相似问题