问题一:FlinkCDC支持Oracle的表结构变更同步吗?
1.FlinkCDC支持Oracle的表结构变更同步吗?
2.源表Oracle支持断点续传吗?
3.源表Oracle支持整库同步吗?
4.源表Oracle,如果想要同步多张表的数据,是需要起多个任务去同步吗?如果表比较多,那么多个任务是否会占用太多的数据库连接?
参考回答:
- FlinkCDC确实支持Oracle的表结构变更同步,它可以自动1. FlinkCDC确实支持Oracle的表结构变更同步,它可以自动将源表中所有符合正则表达式的新表,以及每张源表的表结构变更(如加列等)实时同步到对应的目标表中。
- 对于源表Oracle的断点续传功能,没有找到直接相关的信息。但Flink CDC支持全量和增量数据同步,这可能意味着在数据传输过程中出现中断时,可以从上次停止的地方继续传输,即具备一定的断点续传能力。
- Flink CDC提供了整库同步的功能,可以将整个源数据库的所有变化同步到目标数据库。
- 如果要同步多张表的数据,并不需要启动多个任务。Flink CDC可以自动同步源中所有分库分表的全量和增量数据。至于是否会占用过多的数据库连接,这取决于具体的配置和数据库性能。在配置得当的情况下,应该不会对数据库连接造成太大压力。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/576165
问题二:flinkcdc实时采集oracle19c ADG备库(只读模式),程序自动结束。
紧急求助。flinkcdc是否支持实时采集oracle备库?oracle版本是19c,主备之间使用adg来同步,且备库是只读模式。
我用flinkcdc2.4版本,flinksql的方式采集数据,程序启动后有时可以读取数据,有时读不到,但是过几秒程序都会自动结束。无法进行流数据监听。是否与备库的只读模式有关?
用datastream的方式无法识别sid,直接报错ora-12505。
参考回答:
Flink CDC是可以实时采集Oracle备库的数据的,这其中的实现依赖于Debezium框架以及Oracle自带的LogMiner技术。在具体操作中,首先需要确保Oracle中相关表已开启归档日志和补充日志,因为Flink CDC基于Debezium的LogMiner实现,LogMiner需要使用Oracle的归档日志和补充日志来获取变更数据。
然而,根据你描述的情况,你的程序启动后有时可以读取数据,有时读不到,但是过几秒程序都会自动结束,无法进行流数据监听。这可能与备库的只读模式有关。因为如果备库是只读模式,那么在尝试读取数据的时候可能会遇到问题。此外,你也提到在使用DataStream的方式时无法识别sid,直接报错ora-12505。这个错误通常是由于SID不正确导致的。因此,你需要确保在jdbc连接数据库的时候使用的是正确的SID。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/576161
问题三:为什么flink提交任务的时间与ui界面显示的时间不同
参考回答:
Flink提交任务的时间与UI界面显示的时间不同可能是由于以下几个原因:
- Flink的watermarks追不上实时时间,导致不能实时处理。这可能会影响到任务的开始时间和结束时间,从而使得UI界面上显示的时间与实际提交任务的时间不同。
- Flink提交任务的方式有两种。第一种是使用自带的UI页面进行提交,但这种方式的资源分配是按照task节点为单位运行并度的,可能会导致任务的开始和结束时间与UI界面上显示的时间不一致。
- 任务执行完成后,JobManager会将任务的执行结果返回给客户端。客户端可以通过Flink的REST API或Web UI等方式查看任务的状态和结果。如果网络延迟或其他因素导致数据传输延迟,这也可能导致UI界面上显示的时间与实际提交任务的时间不同。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/576114
问题四:Flink web ui只是一个监控网站嘛?能否在线管理数据source和处理数据?
Flink web ui只是一个监控指标性能的网站嘛?能否在线管理数据source和处理数据?是否有现有的库可以提供这样的功能呢?
参考回答:
主要用来查看作业运行情况。
访问Flink Web UI
通过kubectl连接Kubernetes集群,详情请参见获取集群KubeConfig并通过kubectl工具连接集群。
您也可以通过API等方式连接Kubernetes集群,详情请参见使用Kubernetes API。
执行以下命令,转发Flink作业JobManager的服务到本地进行访问。
kubectl port-forward -n svc/basic-emr-example-rest 18088:8081
说明
示例代码中需替换以下参数:
:集群ID,您可以登录E-MapReduce on ACK控制台,在集群管理页面获取。
svc/basic-emr-example-rest:您运行的Flink作业的服务名称,您可以通过命令kubectl get svc -n 查看所有的K8s服务。请选择-rest服务进行转发。
在浏览器中访问http://127.0.0.1:18088/#/overview,查看作业运行情况。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/576111
问题五:Flink CDC中oracle-cdc上过生产吗?
Flink CDC中oracle-cdc上过生产吗?单表百万,15个表大概,而且还有中间大状态融合和聚合?我并行读老出这个把数据库都弄崩了,我没有去深入研究数据库崩掉是不是这个原因引起的,但是猜测是都是同时发生的?
我并行读老出这个把数据库都弄崩了,我没有去深入研究数据库崩掉是不是这个原因引起的,但是猜测是都是同时发生的?
参考回答:
Flink CDC在生产环境中实时同步Oracle数据库的案例是可行的,许多用户Flink CDC在生产环境中实时同步Oracle数据库的案例是可行的,许多用户已经在生产环境中使用 Flink CDC 采集和同步 Oracle 数据。具体操作中,需要先确保Oracle中相关表已开启归档日志和补充日志,因为Flink CDC基于Debezium的LogMiner实现,LogMiner需要使用Oracle的归档日志和补充日志来获取变更数据。然后,在Flink程序中创建Oracle CDC连接,通过SQL语句定义同步任务。
对于你的情况,即单表百万记录,15个表,并且存在中间大状态融合和聚合的问题,需要注意的是,Flink CDC相当于提供了实时物化视图,可以对这些数据做进一步加工,比如清洗、聚合、过滤等。但是,如果并行读取时出现过载现象,可能会导致数据库压力过大甚至崩溃。你提到的情况可能就是由于这个原因引起的。
因此,你需要对Flink作业进行调整优化,保证并行度适中,避免给数据库带来过大压力。同时,也需要考虑是否可以通过调整数据处理逻辑或者增加资源等方式来解决此问题。例如,采用分批次读取数据,或者对状态进行合理的拆分和合并等策略。
关于本问题的更多回答可点击原文查看: