Greenplum:gpfdist文件服务

时间:2016-06-06 16:59:19

标签: greenplum

我正在浏览Greenplum教程。

我无法理解gpfdist的工作原理。 这意味着什么:gpfdist: Serves data files to or writes data files out from Greenplum Database segments.

“提供文件”是什么意思?我以为它读外部表。 gpfdist是否在客户端和服务器上运行?它是如何并行工作的?是在几台主机上调用gpfdist,是这样的吗?

我需要帮助了解大局。在本教程http://greenplum.org/gpdb-sandbox-tutorials/中,我们称之为两次,为什么? (这很混乱,因为服务器和客户端在同一台机器上。)

3 个答案:

答案 0 :(得分:3)

gpfdist可以在任何主机上运行。它基本上是lighttpd,你指向一个目录,它就坐在那里并监听你指定的端口上的连接。

在greenplum服务器/数据库端,您创建了使用LOCATION设置到gpfdist位置的外部表定义。

然后您可以查询此表格,gpfdist将"提供文件"到数据库引擎。

阅读:http://gpdb.docs.pivotal.io/4380/utility_guide/admin_utilities/gpfdist.htmlhttp://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