当前位置:网站首页>Flink SQL realizes reading and writing redis and dynamically generates hset key
Flink SQL realizes reading and writing redis and dynamically generates hset key
2022-07-07 05:34:00 【HD0do】
In the official offering flink-connect-redis It doesn't work Flink SQL Read and write in a different way redis. If you want to achieve Flink sql Read and write in a different way redis You need to implement the corresponding code yourself , Fortunately GitHub There is already a corresponding open source implementation , We only need to use the corresponding reference .
pom rely on :
<dependency>
<groupId>io.github.jeff-zou</groupId>
<artifactId>flink-connector-redis</artifactId>
<version>1.0.11</version>
</dependency>
By importing jar, Can achieve Flink sql Reading and writing redis :
First create Flink CDC A watch of :
CREATE TABLE memberCDC(
`member_id` bigint,
mobile string,
`tenant_id` string ,
gender int ,
proctime as procTime(),
PRIMARY KEY(member_id) NOT ENFORCED
) WITH (
'connector' = 'mysql-cdc',
'hostname' = '10.50.20.181',
'port' = '330806',
'username' = 'reGaYTkly',
'password' = '40IGOJHFDlloBE6',
'database-name' = 'member_db',
'table-name' = 'm_member_tenant',
'scan.startup.mode'='latest-offset',
'debezium.skipped.operations'='d'
)
Flink SQL write in redis( With Hset For example, data type ):
CREATE TABLE memberRedis (
`member_id` bigint,
mobile string,
`tenant_id` string,
gender int
) WITH (
'connector' = 'redis',
'host' = '10.180.80.89',
'port' = '300079',
'password' = 'big88dajjggta34',
'redis-mode' = 'single',
'command'='hset'
)
inserter into memberRedis
select
member_id,
mobile,
tenant_id,
gender
from memberCDC
here member_id amount to Hset Of additionalKey mobile amount to key, And this can be done through SQL The dynamic splicing of statements is needed key Format . It is equivalent to supporting dynamic generation of what you need key.
Flink SQL Read redis( With Hset For example, data type ):
Read redis Data in , It is generally used as a dimension Association :
CREATE TABLE memberSourceRedis (
`member_id` bigint,
mobile string,
`tenant_id` string,
gender int
) WITH (
'connector' = 'redis',
'host' = '10.110.60.5',
'port' = '30479',
'password' = 'daffdag1234',
'redis-mode' = 'single',
'command'='hget',
'maxIdle'='2',
'minIdle'='1',
'lookup.cache.max-rows'='10',
'lookup.cache.ttl'='10',
'lookup.max-retries'='3'
)
insert into memberRedis
select
t2.member_id,
t2.mobile,
t2.tenant_id,
t1.gender
from memberCDC t1
left join memberSourceRedis for system_time as of t1.proctime as t2 on
t1.member_id = t2.member_id and t1.mobile = t2.mobile
Similar reading , here member_id amount to Hset Of additionalKey mobile amount to key, Here you can go through SQL Statement dynamic splicing generation key, incoming key It's actually memberCDC The data value of the associated field in .
Connect redis parameter list :
summary :
Above Flink SQL Reading and writing redis about hset Data types support writing and reading values of a field , Multiple field writes will be filtered by default .
If you want to support writing and reading of multiple fields , The dependent code needs to be modified , When writing, multiple fields are encapsulated as JSONString write in Redis, When reading, the JSON Data is passed through catalog Map to values corresponding to multiple fields .
Subsequent articles will also introduce how to modify the source code , compile jar Package to support multiple fields Flink SQL Read and write redis. If you need it, you can also use the following link to realize the corresponding flink sql Reading and writing Redis Special business needs . Feel useful and welcome to pay attention Dida official account ~~
In this paper, the reference GitHub Open source projects for :https://github.com/jeff-zou/flink-connector-redis
边栏推荐
- How can project managers counter attack with NPDP certificates? Look here
- Safe landing practice of software supply chain under salesforce containerized ISV scenario
- Disk monitoring related commands
- Design, configuration and points for attention of network unicast (one server, multiple clients) simulation using OPNET
- The year of the tiger is coming. Come and make a wish. I heard that the wish will come true
- 消息队列:如何确保消息不会丢失
- [论文阅读] Semi-supervised Left Atrium Segmentation with Mutual Consistency Training
- Mybaits之多表查询(联合查询、嵌套查询)
- MySQL数据库学习(7) -- pymysql简单介绍
- Design, configuration and points for attention of network specified source multicast (SSM) simulation using OPNET
猜你喜欢
JVM(二十) -- 性能监控与调优(一) -- 概述
高级程序员必知必会,一文详解MySQL主从同步原理,推荐收藏
论文阅读【MM21 Pre-training for Video Understanding Challenge:Video Captioning with Pretraining Techniqu】
Lombok插件
How does mapbox switch markup languages?
High voltage leakage relay bld-20
人体传感器好不好用?怎么用?Aqara绿米、小米之间到底买哪个
Two person game based on bevy game engine and FPGA
Leetcode: maximum number of "balloons"
A cool "ghost" console tool
随机推荐
K6EL-100漏电继电器
AIDL 与Service
阿里云的神龙架构是怎么工作的 | 科普图解
设f(x)=∑x^n/n^2,证明f(x)+f(1-x)+lnxln(1-x)=∑1/n^2
漏电继电器JOLX-GS62零序孔径Φ100
JD commodity details page API interface, JD commodity sales API interface, JD commodity list API interface, JD app details API interface, JD details API interface, JD SKU information interface
Cve-2021-3156 vulnerability recurrence notes
1.AVL树:左右旋-bite
Aidl and service
When deleting a file, the prompt "the length of the source file name is greater than the length supported by the system" cannot be deleted. Solution
How digitalization affects workflow automation
张平安:加快云上数字创新,共建产业智慧生态
MySQL数据库学习(7) -- pymysql简单介绍
论文阅读【MM21 Pre-training for Video Understanding Challenge:Video Captioning with Pretraining Techniqu】
Addressable pre Download
NPDP产品经理认证,到底是何方神圣?
Flink SQL 实现读写redis,并动态生成Hset key
漏电继电器JD1-100
ssm框架的简单案例
Preliminary practice of niuke.com (9)