我正在浏览Greenplum教程。
我无法理解gpfdist的工作原理。
这意味着什么:gpfdist: Serves data files to or writes data files out from Greenplum Database segments.
“提供文件”是什么意思?我以为它读外部表。 gpfdist是否在客户端和服务器上运行?它是如何并行工作的?是在几台主机上调用gpfdist,是这样的吗?
我需要帮助了解大局。在本教程http://greenplum.org/gpdb-sandbox-tutorials/中,我们称之为两次,为什么? (这很混乱,因为服务器和客户端在同一台机器上。)
答案 0 :(得分:3)
gpfdist可以在任何主机上运行。它基本上是lighttpd,你指向一个目录,它就坐在那里并监听你指定的端口上的连接。
在greenplum服务器/数据库端,您创建了使用LOCATION设置到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
答案 1 :(得分:1)
外部表由一些东西组成,最重要的两个是获取(或放置)数据的位置,另一个是如何获取数据并将其解析为可用作表的内容记录。创建外部表时,您只是创建它应该如何工作的定义。
当您仅针对外部表执行查询时,请执行分段并执行该定义中已设置的内容。应该注意的是,他们没有创建持久连接或缓存该数据。每次执行该查询时,集群都会查看它的定义,并通过网络移动该数据并将其用于该查询的长度。
在gpfdist作为端点的情况下,它实际上只是一个Web服务器。人们经常在ETL节点上运行一个。当位置是gpfdist并且您创建一个可读的外部表时,每个段将到达gpfdist并请求文件的大块并处理它。这是并行性,多个段到达gpfdist并获取块然后他们将尝试根据表定义中指定的内容解析为元组,然后将它们全部组装以创建查询的数据表。
gpfist也可以是可写外部表的端点。在这种情况下,段将全部推送到远程位置的数据,gpfdist将把它被下推到磁盘的数据写入。这里需要注意的是,没有承诺的排序顺序,数据会从多个段流式传输到磁盘。
答案 2 :(得分:1)
是的,Gpfdist是文件分发服务,它用于外部表。 Green plum DB直接从目录(Unix或windows)
查询文件,如表格我们可以选择平面文件数据并进行进一步处理。也可以使用预定义编码处理Unicode和wild字符。
在gpfdist的帮助下出现的外部表概念。
在Windows中设置的语法
gpfdist -d $ {FLAT_FILES_DIR} -p 8081 -l /tmp/gpfdist.8081.log
请确保您的特定源计算机中有gpdist.exe