Greenplum实用工具-gpfdist

注:本文翻译自https://docs.vmware.com/en/VMware-Greenplum/7/greenplum-database/utility_guide-ref-gpfdist.html
向Greenplum数据库段提供数据文件或从数据库段写入数据文件。

语法

gpfdist [-d <directory>] [-p <http_port>] [-P <last_http_port>] [-l <log_file>][-t <timeout>] [-S] [-w <time>] [-v | -V] [-s] [-m <max_length>][--ssl <certificate_path> [--sslclean <wait_time>] ][--compress] [--multi_thread <num_threads>][-c <config.yml>]gpfdist -? | --help gpfdist --version

描述

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

注:gpfdist和gpload仅与附带它们的Greenplum Database主版本兼容。例如,与Greenplum Database 4一起安装的gpfdist实用程序。不能与Greenplum Database 5.x或6.x一起使用。

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

注:如果指定–ssl选项以启用ssl安全性,则使用gpfdists://协议创建外部表。

使用gpfdist的好处是,在对外部表进行读写操作时,可以保证最大程度的并行性,从而提供最佳性能,并简化对外部表的管理。

对于可读的外部表,当用户从外部表中进行SELECT时,gpfdist将解析数据文件并将其均匀地提供给Greenplum Database系统中的所有段实例。对于可写的外部表,当用户插入到外部表中时,gpfdist接受来自段的并行输出流,并将其写入输出文件。

注:当gpfdist读取数据并遇到数据格式化错误时,错误消息包括一个行号,指示格式化错误的位置。Gpfdist尝试捕获包含错误的行。但是,由于某些格式化错误,gpfdist可能无法捕获准确的行。

对于可读的外部表,如果使用gzip或bzip2压缩加载文件(具有.gz或.bz2文件扩展名),gpfdist会在加载数据时(动态地)解压缩数据。对于可写的外部表,如果目标文件的扩展名为.gz, gpfdist会使用gzip压缩数据。

注:当gpfdist实用程序在Windows平台上运行时,不支持对可读和可写的外部表进行压缩。

当使用gpfdist或gpfdists协议读写数据时,Greenplum Database在HTTP请求头中包含X-GP-PROTO,以表明请求来自Greenplum Database。该实用程序拒绝在请求头中不包含X-GP-PROTO的HTTP请求。

最有可能的是,您希望在您的ETL机器上运行gpfdist,而不是在安装了Greenplum Database的主机上。要在另一台主机上安装gpfdist,只需将该实用程序复制到该主机,并将gpfdist添加到$PATH中。

选项

-d directory
gpfdist将从中为可读的外部表提供文件或为可写的外部表创建输出文件的目录。如果未指定,则默认为当前目录。

-l log_file
将记录标准输出消息的完全限定路径和日志文件名。

-p http_port
gpfdist将在其上提供文件的HTTP端口。默认为8080。

-p last_http_port
HTTP端口号范围(包括http_port到last_http_port)中的最后一个端口号,gpfdist将在该端口号上尝试为文件提供服务。Gpfdist在它成功绑定到的范围内的第一个端口号上提供文件。

-t timeout
设置Greenplum Database与gpfdist进程建立连接所允许的时间。默认为5秒。取值范围为2 ~ 7200秒(2小时)。可能需要在具有大量网络流量的系统上增加。

-m max_length
以字节为单位设置允许的最大数据行长度。默认值是32768。当用户数据包含非常宽的行时(或者当出现行过长的错误消息时)应该使用。不应用于其他用途,因为它增加了资源分配。有效范围是32K到256MB。(Windows系统的上限是1MB。)

-s
启用简化的日志记录。当指定此选项时,只有具有WARN级别及更高级别的消息才会写入gpfdist日志文件。INFO级别的消息不写入日志文件。如果未指定此选项,则将所有gpfdist消息写入日志文件。
您可以指定此选项以减少写入日志文件的信息。

-S(use O_SYNC)
打开带有O_SYNC标志的同步I/O文件。在数据被物理地写入底层硬件之前,对结果文件描述符的任何写操作都将阻塞gpfdist。

-w time
设置Greenplum Database在关闭目标文件(如命名管道)之前延迟的秒数。缺省值为0,无延时。最大值为7200秒(2小时)。
对于具有多个段的Greenplum数据库,在将数据从不同段写入文件时,段之间可能会有延迟。您可以指定Greenplum Database关闭文件之前的等待时间,以确保所有数据都写入该文件。

–ssl certificate_path
对使用gpfdist传输的数据添加SSL加密。在使用——ssl certificate_path选项运行gpfdist之后,从该文件服务器加载数据的唯一方法是使用gpfdist://协议。有关gpfdist://协议的信息,请参见《Greenplum数据库管理员指南》中的“加载和卸载数据”。
“certificate_path”中指定的位置必须包含以下文件:

  • 服务器证书文件server.crt
  • 服务器私钥文件server.key
  • 受信任的证书颁发机构root.crt

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

–sslclean wait_time
当实用程序使用–ssl选项运行时,设置实用程序在关闭ssl会话之前延迟的秒数,并在完成向Greenplum数据库段写入数据或从数据库段写入数据后清理ssl资源。缺省值为0,无延时。最大值是500秒。如果延迟增加,传输速度降低。
在某些情况下,复制大量数据时可能会出现此错误:gpfdist服务器关闭连接。为了避免这个错误,您可以添加一个延迟,例如–sslclean 5。

–compress
在数据传输过程中启用压缩。当指定时,gpfdist使用Zstandard (zstd)压缩算法。
此选项在Windows平台上不可用。

–multi_threads num_threads
设置gpfdist在数据传输期间使用的最大线程数,并行化操作。当指定时,gpfdist会在传输之前自动压缩数据(也是并行化的)。
Gpfdist最多支持256个线程。
此选项在Windows平台上不可用。

-c config.yaml
指定gpfdist用来在加载或提取数据时选择要应用的转换的规则。gpfdist配置文件是一个YAML 1.1文档。
有关文件格式的信息,请参见《Greenplum数据库管理员指南》中的“配置文件格式”。有关使用gpfdist配置数据转换的信息,请参阅《Greenplum数据库管理员指南》中的使用gpfdist和gpload转换外部数据。
此选项在Windows平台上不可用。

-v(verbose)
详细模式显示进度和状态消息。

-V(very verbose)
详细模式显示此实用程序生成的所有输出消息。

-?(help)
显示联机帮助。

–version
显示此实用程序的版本。

注意

服务器配置参数verify_gpfdists_cert控制当Greenplum Database与gpfdist实用程序通信以从外部数据源读取数据或向外部数据源写入数据时是否启用SSL证书身份验证。您可以将参数值设置为false,以便在测试Greenplum Database外部表与为外部数据提供服务的gpfdist实用程序之间的通信时停用身份验证。如果该值为false,则忽略以下SSL异常:
gpfdist使用的自签名SSL证书不受Greenplum数据库的信任。

SSL证书中包含的主机名与运行gpfdist的主机名不匹配。

您可以设置服务器配置参数gpfdist_retry_timeout,以控制当Greenplum数据库试图将数据写入gpfdist时,如果gpfdist服务器没有响应,那么在返回错误之前,Greenplum数据库等待的时间。默认值为300秒(5分钟)。

如果gpfdist实用程序挂起而没有发生读写活动,则可以在下一次发生挂起时生成核心转储,以帮助调试问题。将环境变量GPFDIST_WATCHDOG_TIMER设置为强制gpfdist退出之前等待无活动的秒数。当设置了环境变量并且gpfdist挂起时,该实用程序将在指定的秒数之后停止,创建一个核心转储,并将相关信息发送到日志文件。

本例在Linux系统上设置环境变量,以便gpfdist在没有活动的300秒(5分钟)后退出。

export GPFDIST_WATCHDOG_TIMER=300

当启用压缩时,gpfdist传输更大量的数据,同时保持较低的网络使用率。请注意,压缩可能是时间密集型的,并且可能会降低传输速度。当您使用多线程执行时,压缩所需的总时间可能会减少,这有助于更快的数据传输,同时保持低网络占用和高速度。

示例

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

gpfdist -d /var/load_files -p 8081 &

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

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

启用多线程数据传输(隐式压缩)使用四个线程,启动gpfdist如下:

gpfdist -d /var/load_files -p 8081 --multi_thread 4

当gpfdist在后台运行时停止它:
首先找到它的进程id:

ps ax | grep gpfdist

然后停止该进程,例如:

kill 3456

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/84907.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

zabbix学习2--zabbix6.x高可用

文章目录 1. server高可用-默认HA2. 访问高可用 1. server高可用-默认HA 1.部署zabbix单节点后&#xff0c;配置添加HANodeName和NodeAddress即为HA架构 2.zabbix1故障后切换zabbix2使用 3.浏览器访问主机1&#xff0c;使用主机1php前端连接mysql后zabbix2提供后台服务--------…

算法-单词搜索 II

算法-单词搜索 II 1 题目概述 1.1 题目出处 https://leetcode.cn/problems/word-search-ii/description/?envTypestudy-plan-v2&envIdtop-interview-150 1.2 题目描述 2 DFS 2.1 解题思路 每个格子往上下左右四个方向DFS&#xff0c;拼接后的单词如果在答案集中&…

API接口大全:常用、热门、免费的都有

常用、热门、免费的第三方接口应有尽有… 二次号查询&#xff1a;通过手机号查询是否二次入网&#xff0c;直连三大运营商&#xff0c;精准查询。反欺诈&#xff08;羊毛盾&#xff09;&#xff1a;反机器欺诈&#xff0c;检测异常IP、异常手机号。IP应用场景-IPv4&#xff0c…

基于TCP的简易电子词典

头文件&#xff1a; #ifndef __HEAD_H__ #define __HEAD_H__#include <myhead.h>#define N 32 typedef struct {int type;char name[N];char data[256];int option;int flag; }MSG;#define R 1 // 用户注册 #define L 2 // 用户登录 #define Q 3 // 查询…

【若依框架2】前后端分离版本添加功能页

在VSCode的src/views下新建个文件平example,在example下创建test文件夹&#xff0c;在test里创建index.vue文件 <template> <h1>Hello world</h1> </template><script> export default {name: "index" } </script><style s…

2023/9/20总结

maven maven本质是 一个项目管理工具 将项目开发 和 管理过程 抽象成 一个项目对象模型&#xff08;POM&#xff09; POM &#xff08;Project Object Model&#xff09; 项目对象模型 作用 项目构建 提供标准的自动化 项目构建 方式依赖管理 方便快捷的管理项目依赖的资源…

C++【个人笔记1】

1.C的初识 1.1 简单入门 #include<iostream> using namespace std; int main() {cout << "hello world" << endl;return 0; } #include<iostream>; 预编译指令&#xff0c;引入头文件iostream.using namespace std; 使用标准命名空间cout …

springboot整合返回数据统一封装

1、MagCode&#xff0c;错误码枚举类 package com.mgx.common.enums;import lombok.*; import lombok.extern.slf4j.Slf4j;/*** 错误码* author mgx*/ Slf4j NoArgsConstructor AllArgsConstructor public enum MsgCode {/*** 枚举标识&#xff0c;根据业务类型进行添加*/Code…

轻量云服务器租用好在哪

从技术上讲&#xff0c;轻量级云服务器是特化了某一配置的高性价比云服务器的结合。下面&#xff0c;我们将了解轻量级云服务器有什么优 势&#xff0c; 使用物理服务器搭建网站&#xff0c;您需要租用整个服务器&#xff0c;这成本会变得非常昂贵。这对于一些比较简单的使用需…

PostgreSQL 数据库实现公网远程连接

文章目录 前言1. 安装postgreSQL2. 本地连接postgreSQL3. Windows 安装 cpolar4. 配置postgreSQL公网地址5. 公网postgreSQL访问6. 固定连接公网地址7. postgreSQL固定地址连接测试 前言 PostgreSQL是一个功能非常强大的关系型数据库管理系统&#xff08;RDBMS&#xff09;,下…

建议收藏《Verilog代码规范笔记_华为》(附下载)

华为verilog编程规范是坊间流传出来华为内部的资料&#xff0c;其贴合实际工作需要&#xff0c;是非常宝贵的资料&#xff0c;希望大家善存。至于其介绍&#xff0c;在此不再赘述&#xff0c;大家可看下图详细了解&#xff0c;感兴趣的可私信领取《Verilog代码规范笔记_华为》。…

JS【filter过滤器】的用法

在JavaScript中&#xff0c;filter()是一个高阶函数&#xff0c;它是数组(Array)的一部分&#xff0c;可用于创建一个新数组&#xff0c;其中包含通过所提供函数实现的测试的所有元素。 filter()函数的语法如下&#xff1a; let newArray arr.filter(callback(element[, ind…

Spring面试题1:Spring框架的核心功能是什么?Spring框架的好处是什么?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 Spring框架的核心功能是什么 Spring框架的核心功能包括: 控制反转(IoC):Spring通过IoC容器管理对象的生命周期和依赖关系。它将对象的创建、组装和管理…

React中的dispatch()

在React中&#xff0c;dispatch函数是Redux提供的一个方法&#xff0c;用于触发store中的action。它是Redux中的一个核心概念&#xff0c;用于将action传递给store&#xff0c;从而触发相应的状态更新。 当我们调用dispatch函数时&#xff0c;它会将action对象作为参数&#x…

IDEA开发工具技巧

1.1 IDEA相关插件 idea插件下载地址&#xff1a;https://plugins.jetbrains.com/ 开发必装插件&#xff1a; &#xff08;1&#xff09; 快速查找api接口 RestfulTool 插件&#xff0c;推荐指数⭐⭐⭐⭐⭐ [RestfulTool搜索插件使用详解](https://blog.csdn.net/weixin_450147…

Spring学习笔记2 Spring的入门程序

Spring学习笔记1 启示录_biubiubiu0706的博客-CSDN博客 Spring官网地址:https://spring.io 进入github往下拉 用maven引入spring-context依赖 写spring的第一个程序 引入下面依赖,好比引入Spring的基本依赖 <dependency><groupId>org.springframework</groupId&…

【力扣】9. 回文数

题目描述 给你一个整数 x &#xff0c;如果 x 是一个回文整数&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 回文数是指正序&#xff08;从左向右&#xff09;和倒序&#xff08;从右向左&#xff09;读都是一样的整数。 例如&#xff0c;121 是回文&am…

医学影像信息(PACS)系统软件源码

PACS系统是PictureArchivingandCommunicationSystems的缩写&#xff0c;与临床信息系统&#xff08;ClinicalInformationSystem,CIS&#xff09;、放射学信息系统(RadiologyInformationSystem,RIS)、医院信息系统(HospitalInformationSystem,HIS)、实验室信息系统&#xff08;L…

CentOS 7 安装Libevent

CentOS 7 安装Libevent 1.下载安装包 新版本是libevent-2.1.12-stable.tar.gz。&#xff08;如果你的系统已经安装了libevent&#xff0c;可以不用安装&#xff09; 官网&#xff1a;http://www.monkey.org/~provos/libevent/ 2.创建目录 # mkdir libevent-stable 3.解压 …

QT之QString的用法介绍

QT之QString的用法介绍 成员函数常见用法 成员函数 1&#xff09;QString &append(const QString &str) 将 str 字符串追加到当前字符串末尾&#xff0c;并返回修改后的 QString 对象的引用。 2&#xff09;QString &prepend(const QString &str) 将 str 字符…