gpfdist

将数据文件提供给Greenplum数据库Segment或从其中写出数据文件。

概要

gpfdist [-d directory] [-p http_port] [-l log_file] [-t timeout] 
   [-S] [-w time] [-v | -V] [-s] [-m max_length]
   [--ssl certificate_path [--sslclean wait_time] ]
   [-c config.yml]

gpfdist -? | --help 

gpfdist --version

描述

gpfdist是Greenplum数据库并行文件分发程序。它可以被外部表和gpload用来并行地将外部表文件提供给所有的Greenplum数据库Segment。它由可写外部表使用,并行接受来自Greenplum数据库Segment的输出流,并将它们写出到文件中。

为了使外部表使用gpfdist ,外部表定义的LOCATION子句必须使用gpfdist://协议(参见Greenplum数据库命令CREATE EXTERNAL TABLE)。

注意: 如果--ssl 选项被指定来启用SSL安全性,请使用gpfdists://协议创建外部表。 使用gpfdist的好处是在读取或写入外部表时可以保证最大的并行性,从而提供最佳的性能,并且更容易管理外部表。

对于外部表,当用户从外部表中SELECT 时,gpfdist会将数据文件均匀地分析并提供给Greenplum数据库系统的所有Segment实例。对于可写的外部表,gpfdist在用户INSERT外部表时接受来自Segment的并行输出流,并写入输出文件。

对于可读外部表,如果使用gzipbzip2(具有.gz.bz2的文件扩展名),gpfdist会在装载之前自动解压文件,前提是gunzipbunzip2在用户的路径中。

注意: 目前,可读外部表不支持在Windows平台上进行压缩,可写外部表不支持任何平台上的压缩。 当使用gpfdistgpfdists协议读写数据时,Greenplum数据库在HTTP请求头部中包含 X-GP-PROTO,以指示该请求来自Greenplum数据库。该工具拒绝请求头部中不包含X-GP-PROTO的HTTP请求。

用户很可能希望在ETL机器而不是安装Greenplum数据库的主机上运行gpfdist。在要其他主机上安装gpfdist,只需简单的将该程序复制到该主机上,然后将gpfdist添加到用户的$PATH中。

注意: 使用IPv6时,请始终将数字IP地址括在括号内。

选项

-d directory

指定一个目录,gpfdist将从该目录中为可读外部表提供文件,或为可写外部表创建输出文件。如果没有指定,默认为当前目录。 -l log_file

要记录标准输出消息的完全限定路径和日志文件名称。 -p http_port

gpfdist 提供文件要使用的HTTP端口。默认为8080。 -t timeout

设置Greenplum数据库建立与gpfdist进程的连接所允许的时间。默认值是5秒。允许的值是2到7200秒(2小时)。在网络流量大的系统上可能要增加。 -m max_length

设置以字节为单位的最大数据行长度。默认值是32768。当用户数据包含非常宽的行时(或者当line too long错误消息发生时)应该使用,否则不应该使用,因为它会增加资源分配。有效范围是32K到256MB(Windows系统上限为1MB)。

注意: 如果用户指定较大的最大行长度并运行大量的gpfdist并发连接,则可能会发生内存问题。例如,使用96个并行gpfdist进程需要大约24GB的内存((96 + 1) x 246MB)。

-s

启用简化的日志记录。指定此选项时,只有具有WARN级别或者更高级别的消息才会写入gpfdist日志文件。INFO级别的消息不写入日志文件。如果未指定这一选项,则所有gpfdist消息都写入日志文件。

用户可以指定此选项以减少写入日志文件的信息。 -S (use O_SYNC) 使用O_SYNC标志打开同步I/O的文件。任何对结果文件描述的写都会阻塞gpfdist,直到数据被物理地写到底层硬件。 -w time

设置关闭目标文件(如命名管道)之前Greenplum数据库延迟的秒数。 默认值是0,没有延迟。最大值是7200秒(2小时)。 对于具有多个Segment的Greenplum数据库,在将不同Segment中的数据写入文件时,Segment之间可能会有延迟。用户可以指定Greenplum数据库关闭文件之前要等待的时间,以确保所有数据都被写入文件。 --ssl certificate_path

将SSL加密添加到使用gpfdist传输的数据。使用--ssl certificate_path选项执行gpfdist之后,从此文件服务器加载数据的唯一方法是使用gpfdist://协议。有关gpfdist://协议的信息,请参阅Greenplum数据库管理员指南中的“装载和卸载数据”。

在certificate_path 中指定的位置必须包含以下文件:* 服务器证书文件,server.crt

  • 服务器私钥文件,server.key
  • 可信证书机构,root.crt

根目录(/)不能指定为certificate_path。

--sslclean wait_time

使用--ssl选项运行该工具时,设置该工具完成向Greenplum数据库Segment读写数据后关闭SSL会话和清除SSL资源之前要延迟的秒数。默认值是0,没有延迟。最大值是500秒。如果延迟增加,传输速度降低。 在某些情况下,复制大量数据时可能会发生此错误: gpfdist server closed connection。为了避免这类错误,用户可以增加一个延迟,例如--sslclean 5。 -c config.yaml

指定gpfdist在装载或抽取数据时,用来选择要应用的转换的规则。gpfdist的配置文件是一个YAML1.1文档。 有关文件格式的信息,请参阅Greenplum数据库管理员指南中的配置件格式。有关用gpfdist配置数据转换的信息,请参阅Greenplum数据库管理员指南中的转换XML数据。 该选项在windows平台中不可用。 -v (详细模式) 显示进度和状态信息的详细模式。 -V (非常详细模式) 显示由该工具生成的所有输出信息的详细模式。 -? (帮助) 显示在线帮助。 --version 显示该工具的版本。

示例

使用端口8081从指定目录提供文件(并在后台启动gpfdist ):

gpfdist -d /var/load_files -p 8081 &

在后台启动gpfdist并将输出和错误重定向到日志文件:

gpfdist -d /var/load_files -p 8081 -l /home/gpadmin/log &

停止在后台运行的gpfdist

--首先找到它的进程ID:

ps ax | grep gpfdist

--然后杀死该进程,例如:

kill 3456

另见

[gpload](gpload.html#topic1)Greenplum数据库管理员指南中的CREATE EXTERNAL TABLE

当前内容版权归GreenPlum和翻译组所有,若有侵权请联系删除下架 修订时间: 2024-09-16 18:10:15

results matching ""

    No results matching ""