用 gpss 从 kafka 消费数据加载到 greenplum

0. 准备kafka生产者和消费者

kafka生产者程序:

kafka-console-producer.sh --broker-list 192.168.12.115:7776 --topic gpss_test

kafka消费者程序:

kafka-console-consumer.sh --bootstrap-server 192.168.12.115:7776 --topic gpss_test --from-beginning

1. 介绍gpss,gpsscli和gpkafka

从kafka同步数据到greenplum有两种方式:

  1. 用gpss启动服务,用gpsscli向gpss注册kafka加载作业(重点介绍)
  2. 用gpkafka组件来快速完成上面的步骤,因为gpkafka封装了gpss和gpsscli的功能
    用gpss从kafka消费数据加载到greenplum

2. 准备配置文件

2.1 准备一个配置文件用于配置gpss服务的host和port

gpss4ic.json

{
    "ListenAddress": {
        "Host": "",
        "Port": 50007
    },
    "Gpfdist": {
        "Host": "",
        "Port": 8319,
        "ReuseTables": false
    }
}

2.2 用于加载kafka数据到greenplum的配置文件

  1. 加载以"|"分割的流数据的配置文件 kafka_testdata_delimited.yaml
DATABASE: testdb
USER: gpss_usr
PASSWORD: gpss_usr
HOST: mdw
PORT: 5432
VERSION: 2
KAFKA:
   INPUT:
      SOURCE:
         BROKERS: 192.168.12.115:7776
         TOPIC: gpss_test
      VALUE:
         COLUMNS:
           - NAME: tid
             TYPE: integer
           - NAME: tcode
             TYPE: varchar
           - NAME: tname
             TYPE: varchar
         FORMAT: delimited
         DELIMITED_OPTION:
           DELIMITER: "|"
      ERROR_LIMIT: 25
   OUTPUT:
      SCHEMA: testschema
      TABLE: test_heap
   METADATA:
      SCHEMA: ylorder
   COMMIT:
      MINIMAL_INTERVAL: 2000
   POLL:
      BATCHSIZE: 100
      TIMEOUT: 3000
  1. 加载JSON格式流数据的配置文件kafka_testdata_json.yaml
DATABASE: testdb
USER: gpss_usr
PASSWORD: gpss_usr
HOST: mdw
PORT: 5432
VERSION: 2
KAFKA:
   INPUT:
      SOURCE:
         BROKERS: 192.168.12.115:7776
         TOPIC: gpss_test
      VALUE:
        COLUMNS:
           - NAME: jdata
             TYPE: json
        FORMAT: json
      ERROR_LIMIT: 25
   OUTPUT:
      SCHEMA: testschema
      TABLE: test_heap
      MAPPING:
        - NAME: tid
          EXPRESSION: (jdata->>'tid')::int
        - NAME: tcode
          EXPRESSION: (jdata->>'tcode')::varchar
        - NAME: tname
          EXPRESSION: (jdata->>'tname')::varchar
   METADATA:
      SCHEMA: testschema
   COMMIT:
      MINIMAL_INTERVAL: 2000
   POLL:
      BATCHSIZE: 100
      TIMEOUT: 3000

3 服务启动过程

3.1 用gpss做etl加载

3.1.1 启动gpss服务

命令格式

nohup gpss gpss4ic.json > gpss_server.log 2>&1 &
### 3.1.2 提交一个作业
命令格式
```bash
gpsscli submit --name kafkajson2gp --gpss-port 50007 --gpss-host mdw ./kafka_testdata_json.yaml

3.1.3 查看作业列表

命令格式

gpsscli list --all --gpss-port 50007 --gpss-host mdw

3.1.4 启动作业

命令格式

gpsscli start kafkajson2gp --gpss-port 50007 --gpss-host mdw

如果要从kafka的Topic的最早的消息开始消费,命令如下:

gpsscli start kafkajson2gp --gpss-port 50007 --gpss-host mdw --force-reset-earliest

3.1.5 再次查看作业

命令格式

gpsscli list --all --gpss-port 50007 --gpss-host mdw

3.1.6 停掉作业

命令格式

gpsscli stop kafkajson2gp --gpss-port 50007 --gpss-host mdw

3.1.7 删除作业

命令格式

gpsscli remove kafkajson2gp  --gpss-port 50007 --gpss-host mdw

3.2 用gpkafka load启动服务

注意:

  1. gpkafka load 可以理解为代替了gpsscli上的提交作业,启动作业等命令。

命令格式

nohup gpkafka load test.yaml --config gpss4gpkafka.json --name fullload1 --force-reset-earliest > gpss4gpkafka_fullload1.log 2>&1 &

参考文档:
Loading Kafka Data into Greenplum
yanivbhemo / greenplum-gpss

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值