Skip to main content

Redis Sink

一、介绍

redis sink

二、支持版本

主流版本

三、插件名称

SQLredis-x

四、参数说明

1、SQL

  • connector

    • 描述:redis-x
    • 必选:是
    • 参数类型:string
    • 默认值:无
  • url

    • 描述:localhost:6379
    • 必选:是
    • 参数类型:string
    • 默认值:无
  • table-name

    • 描述:tableName
    • 必选:是
    • 参数类型:string
    • 默认值:无
  • password

    • 描述:password
    • 必选:否
    • 参数类型:string
    • 默认值:无
  • redis-type

    • 描述: redis模式(1 单机,2 哨兵, 3 集群),默认:1
    • 必选:否
    • 参数类型:string
    • 默认值:1
  • master-name

    • 描述: 主节点名称(哨兵模式下为必填项)
    • 必选:否
    • 参数类型:string
    • 默认值:无
  • database

    • 描述: redis 的数据库地址,默认:0
    • 必选:否
    • 参数类型:string
    • 默认值:0
  • timeout

    • 描述:连接超时时间,默认:10000毫秒
    • 必选:否
    • 参数类型:string
    • 默认值:10000
  • max.total

    • 描述:最大连接数 ,默认:8
    • 必选:否
    • 参数类型:string
    • 默认值:8
  • max.idle

    • 描述:最大空闲连接数,默认:8
    • 必选:否
    • 参数类型:string
    • 默认值:8
  • min.idle

    • 描述: 最小空闲连接数 ,默认:0
    • 必选:否
    • 参数类型:string
    • 默认值:0
  • key.expired-time

    • 描述:redis sink的key的过期时间。默认是0(永不过期),单位是s。默认:0
    • 必选:否
    • 参数类型:string
    • 默认值:0
  • sink.parallelism

    • 描述:sink并行度
    • 必选:否
    • 参数类型:string
    • 默认值:无

  • type和mode
    • 描述:type 表示 value 的类型,mode 表示在选定的数据类型下的写入模式。
    • 选项:string/list/set/zset/hash
    • 必选:是
    • 默认值:无
type描述mode说明注意
hash哈希hset向 hash 有序集合中存储这个数据,如果已经存在则覆盖当 value 类型是 hash 时,数据源的每一行记录需要遵循相应的规范,即每一行记录除 key 以外,只能有一对 attribute 和 value,并且 attribute 必须在 value 前面,Rediswriter 方能解析出哪一个 column 是 attribute,哪一个 column 是 value。

五、数据类型

支持BOOLEAN、TINYINT、SMALLINT、INT、BIGINT、FLOAT、DOUBLE、DECIMAL、STRING、VARCHAR、CHAR、TIMESTAMP、DATE、BINARY
暂不支持ARRAY、MAP、STRUCT、UNION

六、脚本示例

CREATE TABLE source
(
id INT
, name STRING
, money decimal
, dateone timestamp
, age bigint
, datethree timestamp
, datesix timestamp(6)
, datenigth timestamp(9)
, dtdate date
, dttime time

, afloat float
, adouble double
, aboolean BOOLEAN
, abigint BIGINT
, atinyint TINYINT
, avarchar varchar
, asmallint SMALLINT
) WITH (
'connector' = 'stream-x'
,'number-of-rows' = '10'
);

CREATE TABLE sink
(
id INT
, name STRING
, money decimal
, dateone timestamp
, age bigint
, datethree timestamp
, datesix timestamp(6)
, datenigth timestamp(9)
, dtdate date
, dttime time

, afloat float
, adouble double
, aboolean BOOLEAN
, abigint BIGINT
, atinyint TINYINT
, avarchar varchar
, asmallint SMALLINT
, primary key (id) NOT ENFORCED -- redis必须要填写,存入redis的结构是hash结构,key=tableName_primaryKey1_primaryKey2
) WITH (
'connector' = 'redis-x' --必填
,'url' = 'localhost:6379' --必填,格式ip:port[,ip:port]
,'table-name' = 'cx' --必填
,'password' = '123456' -- 密码 无默认,非必填项
,'redis-type' = '1' -- redis模式(1 单机,2 哨兵, 3 集群),默认:1
,'master-name' = 'lala' -- 主节点名称(哨兵模式下为必填项)
,'database' = '0' -- redis 的数据库地址,默认:0
,'timeout' = '10000' -- 连接超时时间,默认:10000毫秒
,'max.total' = '5' -- 最大连接数 ,默认:8
,'max.idle' = '5' -- 最大空闲连接数,默认:8
,'min.idle' = '0' -- 最小空闲连接数 ,默认:0
-- ,'keyExpiredTime' = '1000' -- redis sink的key的过期时间。默认是0(永不过期),单位是s。默认:0
,'sink.parallelism' = '3' -- sink并行度
,'type' = 'hash'
,'mode' = 'hset'
);


INSERT INTO sink
SELECT id
, max(name) as name
, max(money) as money
, max(dateone) as dateone
, max(age) as age
, max(datethree) as datethree
, max(datesix) as datesix
, max(datenigth) as datenigth
, max(dtdate) as dtdate
, max(dttime) as dttime

, max(afloat) as afloat
, max(adouble) as adouble
, max(aboolean) as aboolean
, max(abigint) as abigint
, max(atinyint) as atinyint
, max(avarchar) as avarchar
, max(asmallint) as asmallint
from source
group by id;