问题一:Flink CDC里之前用mysql数据库join比较慢,这种join性能会比较好吗?
Flink CDC里之前用mysql数据库join比较慢,所以才改成同步宽表到es,不知道doris,starorcks 这种join性能会比较好吗?
参考答案:
Flink CDC 主要用于捕获和处理数据库变更数据流,而不是直接优化JOIN操作。MySQL数据库中JOIN性能慢可能是由于多种原因,例如索引不足、数据量大导致内存溢出、表结构设计不合理等。
Doris(百度智能云的列式存储数据分析系统)和StarRocks(一款高性能分析型数据库)都具有较好的JOIN性能特点:
- Doris:
- 列式存储:Doris采用列式存储格式,对于JOIN操作时只需要读取相关的列,大大减少了I/O开销。
- 压缩比高:列式存储压缩效率高,可以显著减少磁盘空间占用和网络传输的数据量。
- 向量化执行引擎:支持向量化计算,能够高效地对大量数据进行批量处理,提高JOIN运算效率。
- 分布式架构:通过分区、分桶等机制以及分布式查询优化技术,可以实现大规模数据上的快速JOIN。
- StarRocks:
- 极速列存:同样采用列式存储和先进的编码算法,优化了JOIN查询过程中的数据扫描和解压速度。
- MPP架构:基于大规模并行处理(MPP)架构设计,能够将JOIN计算分散到多个计算节点上并行执行,从而大大提高JOIN性能。
- 强大的索引支持:StarRocks提供Bloom Filter和主键索引等多种索引机制,有助于加速JOIN条件下的数据查找。
- 实时分析能力:支持实时数据加载与查询,即使在高并发写入场景下也能保持良好的JOIN查询性能。
因此,在实际使用中,如果将Flink CDC获取的数据同步到Doris或StarRocks这样的列式存储系统,并且合理设计表结构、利用好索引、分区等功能,JOIN性能相较于传统关系型数据库如MySQL可能会有显著提升,尤其是在大数据量的OLAP分析场景下。不过具体效果还取决于您的业务场景、数据规模及查询复杂度等因素。
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/599212?spm=a2c6h.12873639.article-detail.52.50e24378TRW91E
问题二:Flink CDC里这个bug可以修复不?
Flink CDC里这个bug在flink-connector-oracle-cdc-3.0.1中有fix没?
https://github.com/ververica/flink-cdc-connectors/issues/2615
。finck-connector-oracle-cdc-3.0.x,依赖的debezium-core还是1.9.7.Final?
参考答案:
关于GitHub上的具体issue是否已经在flink-connector-oracle-cdc-3.0.1版本中得到修复,请直接访问提供的链接:https://github.com/ververica/flink-cdc-connectors/issues/2615 ,查看该issue的状态和讨论,以确定该问题是否已被解决或计划在哪个版本中修复。同时,针对依赖的debezium-core版本,也需要查阅Flink CDC Oracle Connector 3.0.1发布的Maven依赖信息或发行说明,以获取准确的版本信息。
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/599211?spm=a2c6h.12873639.article-detail.53.50e24378TRW91E
问题三:Flink CDC里有办法yarn-session提交吗?提交的命令要怎么写啊?
Flink CDC里有办法yarn-session提交吗?提交的命令要怎么写啊?我一起启动了yarn-session,但是启动他找的还是8081
[hadoop@hadoop165 flink-cdc-3.0.1]$ bash bin/flink-cdc.sh mysql-to-doris.yaml --flink-home /data/bigdata/flink-1.17.1
Caused by: org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannel$AnnotatedConnectException: 拒绝连接: hadoop165/172.11.10.165:8081
Caused by: java.net.ConnectException: 拒绝连接
参考答案:
Flink CDC 提交任务至 YARN 环境时,您需要确保 Flink 集群已经通过 yarn-session
模式启动,并且 JobManager 正在监听正确的端口。根据您的错误信息,看起来 JobManager 的默认端口(8081)可能没有正确配置或对外开放。
要解决这个问题,请按照以下步骤操作:
- 启动YARN会话:
在命令行中,首先使用适合您环境的配置参数启动一个YARN会话。例如:
hadoop jar /path/to/flink-yarn-session-{{flink_version}}.jar \ -ynm your_session_name \ -ys <yarn_slots_per_TM> \ -t yarn-session \ -Dyarn.application.id=<your_app_id_if_needed> \ -Dyarn.container.start-command-template="%java% %jvmmem% %classpath% %jvmopts% %sysprops% %args%" \ -Djobmanager.rpc.address=<jobmanager_host> \ -Djobmanager.rpc.port=<your_jobmanager_port>
- 这里请替换为实际的Flink版本、会话名称、每个TaskManager的slot数、JobManager主机名和端口号等。
- 检查并配置JobManager端口:
如果您想让JobManager监听非默认的8081端口,可以在启动YARN会话时通过-Djobmanager.rpc.port
参数指定新端口。 - 提交CDC作业:一旦YARN会话成功启动并且JobManager可访问,您可以尝试提交Flink CDC作业。由于Flink CDC通常以Flink作业的形式运行,您可以使用类似于以下命令提交到已存在的YARN会话:
/data/bigdata/flink-1.17.1/bin/flink run -m yarn-cluster -yn <number_of_taskmanagers> -ys <slots_per_taskmanager> /path/to/your/cdc/job.jar --config-file mysql-to-doris.yaml
- 其中:
-m yarn-cluster
表示提交到YARN集群模式。-yn
和-ys
分别指定TaskManager的数量和每个TaskManager的slot数量。/path/to/your/cdc/job.jar
是你的Flink CDC应用的JAR包路径。--config-file
指定的是CDC作业所需的配置文件。
确保在提交时,连接到的JobManager地址和端口与您在YARN会话中设置的一致。
如果YARN集群内部署了防火墙或者网络策略,也需要确认该端口在网络层面是开放的。此外,请检查Hadoop和YARN的相关日志,以获取更详细的错误信息和诊断线索。
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/599210?spm=a2c6h.12873639.article-detail.54.50e24378TRW91E
问题四:flink cdc 3.0是不是还不支持flink on yarn模式?
flink cdc 3.0是不是还不支持flink on yarn模式?
参考答案:
application mode 暂时还不行, session mode 可以。
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/599209?spm=a2c6h.12873639.article-detail.55.50e24378TRW91E
问题五:Flink CDC里有hudi的pipeline connector吗?
Flink CDC里有hudi的pipeline connector吗?
参考答案:
Flink CDC 官方并未提供与 Hudi 的直接 pipeline connector,但您可以实现自定义的 sink 将变更数据写入 Hudi。不过,社区中可能已经有第三方开发者实现了类似的集成方案。
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/599208?spm=a2c6h.12873639.article-detail.56.50e24378TRW91E