11: SQL client 实现 redis 维表join

  用SQL client 能搞通redis 维表join,我在网上还没找到,我就试验,终于在sql client里运行成功了。

我用的 “大数据羊说”写的redis connector(https://github.com/liufeiSAP/flink-study.git),flink用的flink-1.13.2_scala_2.11。

调试了几天才通的,就是各种缺jar包。

 

1: Redis connector的源码:

                 https://github.com/liufeiSAP/flink-study.git

2:  Flink 版本: \flink-1.13.2_scala_2.11

3: 需要的jar包:

        

 

 

 

3: 以下的DDL,SQL都是在SQL client里执行。

  创建一个源表,从csv文件读取数据

1
2
3
4
5
6
7
8
9
10
CREATE TABLE MyTable(
  MyField1 INT,
  MyField2 STRING,
   MyField3 INT,
   proctime AS PROCTIME()
) WITH (
  'connector' = 'filesystem',
  'path' = '/opt/flink/lib/test.csv',
  'format' = 'csv'
);

  csv文件内容

 

 

 

 创建redis 维表:

1
2
3
4
5
6
7
8
9
10
11
12
CREATE TABLE dimTable (
    name STRING,
    name1 STRING
) WITH (
  'connector' = 'redis',
  'hostname' = '192.168.5.6',
  'port' = '6379',
  'format' = 'json',
  'lookup.cache.max-rows' = '500',
  'lookup.cache.ttl' = '3600',
  'lookup.max-retries' = '1'
);

  最后执行

1
2
3
4
SELECT  o.MyField1,o.MyField2, c.name, c.name1
FROM  MyTable AS o
LEFT JOIN dimTable FOR SYSTEM_TIME AS OF o.proctime AS c
ON o.MyField2 = c.name;

  

posted @   刘大飞  阅读(291)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2018-01-20 @JsonProperty 注解
2018-01-20 bean validator - Hibernate validator
2018-01-20 java注解的基本知识
2018-01-20 JWT(JSON WEB TOKEN) / oauth2 / SSL
2018-01-20 Guice 学习
点击右上角即可分享
微信分享提示