前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Greenplum Stream Server(GPSS)介绍

Greenplum Stream Server(GPSS)介绍

作者头像
小麦苗DBA宝典
发布2023-11-06 15:54:20
3240
发布2023-11-06 15:54:20
举报

1.GPSS简介

Greenplum Stream Server (GPSS)是一个ETL(提取、转换、加载)工具。GPSS服务器的一个实例从一个或多个客户机接收流数据,使用Greenplum数据库可读的外部表将数据转换并插入到目标Greenplum表中。数据源和数据格式是特定于客户机的。数据源和数据格式由客户端指定。

Greenplum Stream Server包括gpss命令行工具。运行gpss时,会启动一个gpss实例,此实例无限期地等待客户端数据。

Greenplum Stream Server还包括gpsscli命令行工具,这是一个客户端工具,用于向GPSS实例提交数据加载作业并管理这些作业。

2.GPSS架构

Greenplum Stream Server是一个gRPC服务器。GPSS gRPC服务定义的内容包括:连接到Greenplum数据库和检查Greenplum元数据所需的操作和消息格式;数据从客户端写入greenplum数据库表所需的操作和消息格式。

注:有关gRPC内容参考:https://grpc.io/docs/

gpsscli命令行工具是Greenplum Stream Server的gRPC客户端工具,也可以用于操作Greenplum-Kafka 集成和Greenplum-Informatica连接器。可以使用GPSS API开发自己的GPSS gRPC客户端。

Greenplum Stream Server架构如下图:

Greenplum Stream Server 处理ETL任务的执行流程如下所示:

  1. 用户通过客户端应用程序启动一个或多个ETL加载作业;
  2. 客户端应用程序使用gRPC协议向正在运行的GPSS服务实例提交和启动数据加载作业;
  3. GPSS服务实例将每个加载请求事务提交给Greenplum集群的Master节点,并创建或者重用已存在外部表来存储数据。
  4. GPSS服务实例将客户端提交的数据直接写到Greenplum集群Segment节点中。

3.安装

3.1.安装前准备条件

Greenplum流服务器gpss和gpsscli命令行工具,在安装Greenplum数据库版本5.16及其以上版本时,已自动安装在其中,无需进行单独安装。

在启动GPSS服务器实例之前,请确保:

  1. 安装并启动一个兼容GPSS的Greenplum数据库版本,建议安装grenplum 5.16以上版本;
  2. greenplum master节点配置好主机名,确保可以通过主机名访问;
  3. 如果您的Greenplum数据库主服务器进程没有在默认端口(5432)上运行,则可识别它所运行的端口。
  4. 确保GPSS所在主机与客户端、及Greenplum master和所有的segment能够连通;
  5. 如果您正在使用gpsscli客户端实用程序,确保gpsscli能够连接到客户端主机,例如使用kafka作为数据源,必须确保能够连接到kafka集群,同时gpsscli能够连接到greenplum master和所有segment节点。

3.2.注册GPSS扩展

必须在需要利用gpss写入数据的表,所在的数据库注册gpss扩展,这样才能利用gpss向该数据库下的表加载数据。需要注意数据库权限问题,最好是超级用户或该数据库的所有者。

注册gpss扩展步骤如下: step 1.配置greenplum环境变量:利用gpadmin超级用户登录到greenplum master节点

代码语言:javascript
复制
gpmaster$ source $GP_HOME/greenplum_path.sh

如果已经在.bashrc中配置了环境变量,省约该步。

step 2.利用psql登录到需要注册gpss的数据库

代码语言:javascript
复制
gpmaster$ psql -d testdb

输入以下命令注册EXTENSION

代码语言:javascript
复制
testdb=# CREATE EXTENSION gpss;

step 3.对于其它需要利用gpss向数据库load data,对该数据库执行2,3步操作

3.3.配置Greenplum Streaming Server

可以通过json格式的配置文件配置对Greenplum流服务器的调用。这个配置文件包含一些属性,这些属性标识GPSS服务的监听地址以及gpfdist主机和端口号。还可以在文件中指定加密选项。

示例文件内容如下:

代码语言:javascript
复制
    {
        "ListenAddress": {
            "Host": "gpss_host",
            "Port": gpss_portnum [,
            "SSL": use_ssl ]
        },
        "Gpfdist": {
            "Host": "gpfdist_host",
            "Port": gpfdist_portnum
        } [,
        "Certificate": {
            "CertFile": "certfile_path",
            "KeyFile": "keyfile_path",
            "CAFile": "CAfile_path"
        }]
    }

配置文件说明见下。

GPSS部分如下:

  • Host:gpss_host。gpss所在主机的IP或主机名,默认为127.0.0.1。
  • Port:gpss_portnum。gpss服务实例的监听端口,默认为5000。
  • SSL:boolean类型,表示是否需要对连接加密,默认为false。

Gpfdist部分如下:

  • Host:gpfdist_host。gpfdist运行所在的主机IP或主机名。
  • Port:gpfdist_portnum。gpfdist端口,默认为8080。

GPSS和Gpfdist加密部分如下:

  • CertFile: certfile_path。服务器证书文件系统路径。
  • KeyFile: keyfile_path。服务器密钥文件系统路径。
  • CAFile: CAfile_path。证书颁发机构文件的文件系统路径。CAfile_path必须包含整个证书授权链。

配置文件例子如下:

代码语言:javascript
复制
    {
        "ListenAddress":{
            "Host":"localhost",
            "Port":12345
        },
        "Gpfdist":{
            "Host":"localhost",
            "Port":9899
        },
        "Certificate":{
            "CertFile":"/home/gpadmin/gpdb_bin/ext/server.crt",
            "KeyFile":"/home/gpadmin/gpdb_bin/ext/server.key",
            "CAFile":"/home/gpadmin/gpdb_bin/ext/rootCA.pem"
        }
    }

3.4.启动GPSS

执行如下命令启动:

代码语言:javascript
复制
gpss gpsscfg.json --log-dir ./gpsslogs

–log-dir表示配置gpss的日志目录

特别注意:gpss跟踪内存中客户端作业的加载过程。当停止GPSS服务器实例时,将丢失所有已注册的作业。重启GPSS实例后,必须重新提交以前提交的作业。gpss将从上次的记录偏移量位置恢复作业。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-11-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DB宝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.GPSS简介
  • 2.GPSS架构
  • 3.安装
    • 3.1.安装前准备条件
      • 3.2.注册GPSS扩展
        • 3.3.配置Greenplum Streaming Server
          • 3.4.启动GPSS
          相关产品与服务
          数据库
          云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档