Flink扩展问题之jdbc connector扩展失败如何解决

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。

问题一:DataStream的state问题

想问下,在给state设置ttl的时候,如下面的代码:                    StateTtlConfig ttlConfig = StateTtlConfig

                           .newBuilder(Time.days(1))

                           .setUpdateType(StateTtlConfig.UpdateType.OnCreateAndWrite)

                           .setStateVisibility(StateTtlConfig.StateVisibility.NeverReturnExpired)

                           .build();

设置了1天时间之后失效,例如2020-07-07 08:30:00点开始的job,那失效时间是这个时间段2020-07-07 00:00:00~2020-07-07 23:59:59,还是job上线之后,2020-07-07 08:30:00~2020-07-08 08:30:00这个时间段?

*来自志愿者整理的flink邮件归档



参考答案:

是最后一次 access 的时间到当前的时间超过了你设置的 ttl 间隔,比如你配置的是 OnCreateAndWrite

那么就是创建和写操作之后的 1 天,这个 state 会变成 expired,具体的可以参考文档[1]

[1]

https://ci.apache.org/projects/flink/flink-docs-release-1.10/zh/dev/stream/state/state.html#%E7%8A%B6%E6%80%81%E6%9C%89%E6%95%88%E6%9C%9F-ttl

*来自志愿者整理的flink邮件归档



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/370141?spm=a2c6h.12873639.article-detail.113.6f9243783Lv0fl



问题二:关于jdbc connector扩展问题

hi all我这里有个需求需要从sql里面写数据到clickhouse里面,但是看源码,发现并不好扩展,https://github.com/apache/flink/blob/d04872d2c6b7570ea3ba02f8fc4fca02daa96118/flink-connectors/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/JdbcDialects.java#L30, 这里我看直接写死仅支持DerbyDialect、MySQLDialect、PostgresDialect,而且这个类不支持注册jdbc新驱动,如果想在SQL里面支持其他类型的数据库的话,该怎么弄,求支招

*来自志愿者整理的flink邮件归档



参考答案:

目前 flink-connector-jdbc 还不支持注册

dialect,社区有这方面的计划,但是目前还没有资源做这一块,这是个比较复杂的功能,需要对接口做细致的设计。

目前你可以拿 flink-connector-jdbc 源码,加一个自己的 Dialect 类,在 JdbcDialects 中注册进你的

dialect,然后编译打包就可以了。

*来自志愿者整理的flink邮件归档



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/370140?spm=a2c6h.12873639.article-detail.114.6f9243783Lv0fl



问题三:Flink从SavePoint启动任务,修改的代码不生效

背景:Flink版本1.6.4,数据源为Kafka的主题A,B,消费者组相同 操作步骤:1.使用SavePoint取消任务。 2.修改代码将B去掉,只消费A主题。 3.从SavePoint启动任务,发现消费者组在B主题下的偏移量也回到了任务停止时的偏移量,之后偏移量马上变成了最新并继续消费。 想知道为什么修改代码不生效。

*来自志愿者整理的flink邮件归档



参考答案:

估计你是用同一个 Kafka Source 消费 A B 两个 Topic? 如果是,看起来像是 Kafka Connector 早期的一个问题。

作业停止的时候,Topic B 的 partition offset 被存储到 Savepoint 中,然后在恢复的时候,尽管代码中 Topic B 已经被移除,但它的 partition offset 还是被恢复了。

这个问题在后来的版本,估计是 1.8 或 1.9,被修复了。

*来自志愿者整理的flink邮件归档



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/370139?spm=a2c6h.12873639.article-detail.115.6f9243783Lv0fl



问题四:flink sql子查询状态清理不掉

大家好,我现在程序里面有像这样一段sql:  select day,

          count(id),

          sum(v1) from

(

select

         day ,

         id ,

         sum(v1) v1 from source

     group by day,

                  id

)t

group by day

我设置了

tConfig.setIdleStateRetentionTime(Time.minutes(1440),Time.minutes(1450))

子查询里面的聚合是按照天和id聚合的,按道理1天之后就会自动清理,但是运行4天过程中,我在checkpoint的页面里面看到这个子查询的状态一直在增大,这是什么原因呢

我的版本是1.10.0

*来自志愿者整理的flink邮件归档



参考答案:

感觉不太应该。你用的是哪个Flink版本,以及哪个planner呢?

*来自志愿者整理的flink邮件归档



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/370138?spm=a2c6h.12873639.article-detail.116.6f9243783Lv0fl



问题五:Flink状态调试

Hi, 各位大佬们,请教一下: Flink的checkpoint怎么调试啊,我想看程序目前的状态,拿到了checkpoint的文件,打开后有一些东西是乱码,没有结构性,有方法吗?

*来自志愿者整理的flink邮件归档



参考答案:

想 debug checkpoint 文件的话,可以参考下这个 UT[1]

[1]

https://github.com/apache/flink/blob/master/flink-runtime/src/test/java/org/apache/flink/runtime/checkpoint/CheckpointMetadataLoadingTest.java

*来自志愿者整理的flink邮件归档



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/370137?spm=a2c6h.12873639.article-detail.117.6f9243783Lv0fl

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
2月前
|
消息中间件 Kafka Apache
Flink 提供了与 Kafka 集成的官方 Connector,使得 Flink 能够消费 Kafka 数据
【2月更文挑战第6天】Flink 提供了与 Kafka 集成的官方 Connector,使得 Flink 能够消费 Kafka 数据
72 2
|
1月前
|
Java 数据库连接 数据库
Flink Connector JDBC已经被移到了一个独立的仓库
【2月更文挑战第23天】Flink Connector JDBC已经被移到了一个独立的仓库
14 1
|
1月前
|
SQL JSON 监控
使用 SPL 高效实现 Flink SLS Connector 下推
SLS 推出了 SPL 语言,可以高效的对日志数据的清洗,加工。对 SPL 及 SPL 在阿里云 Flink SLS Connector 中应用进行介绍及举例。
56026 153
|
2月前
|
SQL Java HIVE
Flink依赖问题之connector hive依赖冲突如何解决
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。
|
2月前
|
SQL 消息中间件 Java
Flink报错问题之jdbc表报错如何解决
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。
|
2月前
|
关系型数据库 MySQL Java
Flink cdc报错问题之使用jdbc connector报错如何解决
Flink CDC报错指的是使用Apache Flink的Change Data Capture(CDC)组件时遇到的错误和异常;本合集将汇总Flink CDC常见的报错情况,并提供相应的诊断和解决方法,帮助用户快速恢复数据处理任务的正常运行。
|
2月前
|
消息中间件 Kafka Apache
Apache Flink 是一个开源的分布式流处理框架
Apache Flink 是一个开源的分布式流处理框架
482 5
|
1月前
|
SQL Java API
官宣|Apache Flink 1.19 发布公告
Apache Flink PMC(项目管理委员)很高兴地宣布发布 Apache Flink 1.19.0。
1351 1
官宣|Apache Flink 1.19 发布公告
|
1月前
|
SQL Apache 流计算
Apache Flink官方网站提供了关于如何使用Docker进行Flink CDC测试的文档
【2月更文挑战第25天】Apache Flink官方网站提供了关于如何使用Docker进行Flink CDC测试的文档
143 3
|
1月前
|
XML Java Apache
Apache Flink自定义 logback xml配置
Apache Flink自定义 logback xml配置
152 0

相关产品

  • 实时计算 Flink版