如题,想问下大家task堆外内存设置规则(taskmanager.memory.task.off-heap.size)
1、是用户代码中指定了使用堆外内存吗? 2、还是flink框架中在某种情况下使用堆外内存? -- Sent from: http://apache-flink.147419.n8.nabble.com/ |
Hi all:
Flink1.11 的cdc是支持加载历史数据的,有两个问题想求证一下: 1.底层是使用了debezium来加载历史数据的吗? 2.debezium是通过jdbc查询源表的数据来加载全量的历史数据吗? 这块会不会对数据库造成瞬时压力? 希望能帮忙解答一下,谢谢。 Best, Xingxing Di |
应该是。通过源码可以知道flink-json目前支持2种内置json格式的解析,一个是canal,一个是debezium。
具体可参考: org.apache.flink.formats.json.canal.CanalJsonDeserializationSchema 和 org.apache.flink.formats.json.debezium.DebeziumJsonDeserializationSchema 在 2020/8/24 17:27, [hidden email] 写道: > Hi all: > Flink1.11 的cdc是支持加载历史数据的,有两个问题想求证一下: > 1.底层是使用了debezium来加载历史数据的吗? > 2.debezium是通过jdbc查询源表的数据来加载全量的历史数据吗? 这块会不会对数据库造成瞬时压力? > > 希望能帮忙解答一下,谢谢。 > > > Best, > Xingxing Di |
In reply to this post by caozhen
应该是在用户代码使用堆外内存的时候指定
flink 框架的堆外内存是涵盖在 taskmanager.memory.framework.off-heap.size Thank you~ Xintong Song On Mon, Aug 24, 2020 at 4:27 PM caozhen <[hidden email]> wrote: > 如题,想问下大家task堆外内存设置规则(taskmanager.memory.task.off-heap.size) > > 1、是用户代码中指定了使用堆外内存吗? > 2、还是flink框架中在某种情况下使用堆外内存? > > > > -- > Sent from: http://apache-flink.147419.n8.nabble.com/ |
In reply to this post by dixingxing85@163.com
Hello
> Flink1.11 的cdc是支持加载历史数据的,有两个问题想求证一下: > 1.底层是使用了debezium来加载历史数据的吗? Flink支持两种CDC格式,debezium json和 canal json, debezium 和 canal都是CDC系统,简单说他们可以把数据库表的binlog以对应的json写入到消息队列如Kafka, 作为下游系统的Flink 支持去消费对应的cdc数据,两个CDC工作都支持加载历史数据的。 另外Jark 在Veverica 开源了一个Flink CDC connector [1],支持利用debezuim直接读取数据库的cdc数据,不需要搭建CDC系统。 > 2.debezium是通过jdbc查询源表的数据来加载全量的历史数据吗? 这块会不会对数据库造成瞬时压力? 不会,不是直接查询源表,所以不会锁表,加载全量历史数据时只是读取binlog的一个offset Best Leonard [1] https://github.com/ververica/flink-cdc-connectors <https://github.com/ververica/flink-cdc-connectors> |
Hi:
Leonard Xu 感谢回复 > 2.debezium是通过jdbc查询源表的数据来加载全量的历史数据吗? 这块会不会对数据库造成瞬时压力? > 不会,不是直接查询源表,所以不会锁表,加载全量历史数据时只是读取binlog的一个offset 这里恰好是我的疑问,之前看debezium代码,没有找到使用jdbc加载全量历史数据的代码,debezium的snapshot看起来只是保存了表的schema变更记录,这样重新消费binlog时,可以为每条binlog数据找到正确schema,达到正确解析历史数据的目的。 我的疑问是,如果加载全量历史数据,只是指定binlog的offset,从头读取binlog,那么是不是有可能无法加载到全量的数据,因为通常binlog是有过期时间的,不会保存全量的binlog。如果我理解的没问题,那么目前flink1.11 的cdc是无法加载全量历史数据的。 我理解加载全量数据,无非两种方式: 1.jdbc从源表全量拉取数据 2.将原表数据初始化到一个kafka topic中(topic设置为compact模式),再消费binlog,往这个topic里写入增量数据,确保这个topic的数据和原表一致,然后flink作业启动时,从这个topic的earliest offset消费,得到全量的历史数据。 不知道我的理解是否正确,希望能帮忙解答 Best, Xingxing Di 发件人: Leonard Xu 发送时间: 2020-08-25 10:03 收件人: user-zh 主题: Re: 请问一下,flink 1.11 的cdc历史数据问题 Hello > Flink1.11 的cdc是支持加载历史数据的,有两个问题想求证一下: > 1.底层是使用了debezium来加载历史数据的吗? Flink支持两种CDC格式,debezium json和 canal json, debezium 和 canal都是CDC系统,简单说他们可以把数据库表的binlog以对应的json写入到消息队列如Kafka, 作为下游系统的Flink 支持去消费对应的cdc数据,两个CDC工作都支持加载历史数据的。 另外Jark 在Veverica 开源了一个Flink CDC connector [1],支持利用debezuim直接读取数据库的cdc数据,不需要搭建CDC系统。 > 2.debezium是通过jdbc查询源表的数据来加载全量的历史数据吗? 这块会不会对数据库造成瞬时压力? 不会,不是直接查询源表,所以不会锁表,加载全量历史数据时只是读取binlog的一个offset Best Leonard [1] https://github.com/ververica/flink-cdc-connectors <https://github.com/ververica/flink-cdc-connectors> |
Administrator
|
Hi,
debezium 是支持全量加载的。debezium 的一个亮点就是能够加载完存量数据以后能够无缝切换到 binlog 模式。 全量加载可以看下 SnapshotReader。 另外,全量数据导入到 kafka ,然后从 kafka 加载全量再切换到 mysql binlog,这里面主要一个问题是很难做到无缝切换,因为不知道确切的 mysql binlog 位点。 Best, Jark On Tue, 25 Aug 2020 at 12:47, [hidden email] <[hidden email]> wrote: > Hi: > Leonard Xu 感谢回复 > > 2.debezium是通过jdbc查询源表的数据来加载全量的历史数据吗? 这块会不会对数据库造成瞬时压力? > > 不会,不是直接查询源表,所以不会锁表,加载全量历史数据时只是读取binlog的一个offset > > 这里恰好是我的疑问,之前看debezium代码,没有找到使用jdbc加载全量历史数据的代码,debezium的snapshot看起来只是保存了表的schema变更记录,这样重新消费binlog时,可以为每条binlog数据找到正确schema,达到正确解析历史数据的目的。 > > 我的疑问是,如果加载全量历史数据,只是指定binlog的offset,从头读取binlog,那么是不是有可能无法加载到全量的数据,因为通常binlog是有过期时间的,不会保存全量的binlog。如果我理解的没问题,那么目前flink1.11 > 的cdc是无法加载全量历史数据的。 > > 我理解加载全量数据,无非两种方式: > 1.jdbc从源表全量拉取数据 > 2.将原表数据初始化到一个kafka > topic中(topic设置为compact模式),再消费binlog,往这个topic里写入增量数据,确保这个topic的数据和原表一致,然后flink作业启动时,从这个topic的earliest > offset消费,得到全量的历史数据。 > > 不知道我的理解是否正确,希望能帮忙解答 > > > > Best, > Xingxing Di > > 发件人: Leonard Xu > 发送时间: 2020-08-25 10:03 > 收件人: user-zh > 主题: Re: 请问一下,flink 1.11 的cdc历史数据问题 > Hello > > > Flink1.11 的cdc是支持加载历史数据的,有两个问题想求证一下: > > 1.底层是使用了debezium来加载历史数据的吗? > Flink支持两种CDC格式,debezium json和 canal json, debezium 和 > canal都是CDC系统,简单说他们可以把数据库表的binlog以对应的json写入到消息队列如Kafka, > 作为下游系统的Flink 支持去消费对应的cdc数据,两个CDC工作都支持加载历史数据的。 > 另外Jark 在Veverica 开源了一个Flink CDC connector > [1],支持利用debezuim直接读取数据库的cdc数据,不需要搭建CDC系统。 > > > 2.debezium是通过jdbc查询源表的数据来加载全量的历史数据吗? 这块会不会对数据库造成瞬时压力? > 不会,不是直接查询源表,所以不会锁表,加载全量历史数据时只是读取binlog的一个offset > > > Best > Leonard > [1] https://github.com/ververica/flink-cdc-connectors < > https://github.com/ververica/flink-cdc-connectors> > |
@Jark,感谢回复,很好的解答了我的疑惑
Best, Xingxing Di Sender: Jark Wu Send Time: 2020-08-27 20:13 Receiver: user-zh Subject: Re: Re: 请问一下,flink 1.11 的cdc历史数据问题 Hi, debezium 是支持全量加载的。debezium 的一个亮点就是能够加载完存量数据以后能够无缝切换到 binlog 模式。 全量加载可以看下 SnapshotReader。 另外,全量数据导入到 kafka ,然后从 kafka 加载全量再切换到 mysql binlog,这里面主要一个问题是很难做到无缝切换,因为不知道确切的 mysql binlog 位点。 Best, Jark On Tue, 25 Aug 2020 at 12:47, [hidden email] <[hidden email]> wrote: > Hi: > Leonard Xu 感谢回复 > > 2.debezium是通过jdbc查询源表的数据来加载全量的历史数据吗? 这块会不会对数据库造成瞬时压力? > > 不会,不是直接查询源表,所以不会锁表,加载全量历史数据时只是读取binlog的一个offset > > 这里恰好是我的疑问,之前看debezium代码,没有找到使用jdbc加载全量历史数据的代码,debezium的snapshot看起来只是保存了表的schema变更记录,这样重新消费binlog时,可以为每条binlog数据找到正确schema,达到正确解析历史数据的目的。 > > 我的疑问是,如果加载全量历史数据,只是指定binlog的offset,从头读取binlog,那么是不是有可能无法加载到全量的数据,因为通常binlog是有过期时间的,不会保存全量的binlog。如果我理解的没问题,那么目前flink1.11 > 的cdc是无法加载全量历史数据的。 > > 我理解加载全量数据,无非两种方式: > 1.jdbc从源表全量拉取数据 > 2.将原表数据初始化到一个kafka > topic中(topic设置为compact模式),再消费binlog,往这个topic里写入增量数据,确保这个topic的数据和原表一致,然后flink作业启动时,从这个topic的earliest > offset消费,得到全量的历史数据。 > > 不知道我的理解是否正确,希望能帮忙解答 > > > > Best, > Xingxing Di > > 发件人: Leonard Xu > 发送时间: 2020-08-25 10:03 > 收件人: user-zh > 主题: Re: 请问一下,flink 1.11 的cdc历史数据问题 > Hello > > > Flink1.11 的cdc是支持加载历史数据的,有两个问题想求证一下: > > 1.底层是使用了debezium来加载历史数据的吗? > Flink支持两种CDC格式,debezium json和 canal json, debezium 和 > canal都是CDC系统,简单说他们可以把数据库表的binlog以对应的json写入到消息队列如Kafka, > 作为下游系统的Flink 支持去消费对应的cdc数据,两个CDC工作都支持加载历史数据的。 > 另外Jark 在Veverica 开源了一个Flink CDC connector > [1],支持利用debezuim直接读取数据库的cdc数据,不需要搭建CDC系统。 > > > 2.debezium是通过jdbc查询源表的数据来加载全量的历史数据吗? 这块会不会对数据库造成瞬时压力? > 不会,不是直接查询源表,所以不会锁表,加载全量历史数据时只是读取binlog的一个offset > > > Best > Leonard > [1] https://github.com/ververica/flink-cdc-connectors < > https://github.com/ververica/flink-cdc-connectors> > |
Free forum by Nabble | Edit this page |