Flink CDC产品常见问题之大文件整库同步怎么解决

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: Flink CDC产品常见问题之大文件整库同步怎么解决

问题一:Flink CDC里用maven shade在做relocation时,如何处理这个多语言的反应?


link CDC里用maven shade在做relocation时,只编译进来了Java,而Scala没有被编译进rename后的jar,你们是如何处理这个多语言的relocation呢 ?例如:本来a.jar=10k, rename 后只有8k了,少了2k的scala的代码。


参考回答:

在Apache Flink CDC项目中,如果你使用Maven Shade Plugin进行relocation并遇到只包含了Java代码而未包含Scala代码的问题,可能是shade plugin在处理混合Java和Scala项目的依赖时发生了问题。这是因为Scala编译后的字节码分布在多个地方,不仅仅是类路径下的.class文件,还可能涉及到元数据和其他scala专用的目录结构。

要确保在relocation过程中正确包含Scala部分,你需要确保Maven Shade Plugin的配置正确涵盖了Scala相关的资源。以下是一种可能的解决方案:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.2.4</version> <!-- 使用适合你的版本 -->
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <transformers>
                            <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
                            <!-- 处理META-INF/services的合并 -->
                            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                <!-- 修改MANIFEST.MF文件 -->
                            </transformer>
                            <!-- 如果需要重定位,添加Relocator配置 -->
                            <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheNoticeResourceTransformer"/>
                            <!-- 保持Apache许可证信息 -->
                            <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                <resource>META-INF/spring.handlers</resource>
                            </transformer>
                            <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                <resource>META-INF/spring.schemas</resource>
                            </transformer>
                            <!-- 举例:处理Spring框架相关的资源 -->
                        </transformers>
                        <relocations>
                            <!-- 示例:重定位包 -->
                            <relocation>
                                <pattern>原包名</pattern>
                                <shadedPattern>新包名</shadedPattern>
                            </relocation>
                        </relocations>
                        <!-- 确保包含所有资源,特别是Scala相关的 -->
                        <filters>
                            <filter>
                                <artifact>*:*</artifact>
                                <excludes>
                                    <!-- 排除不希望shade的内容 -->
                                    <exclude>**/*.html</exclude>
                                    <exclude>**/*.txt</exclude>
                                </excludes>
                            </filter>
                            <filter>
                                <!-- 包含所有Scala相关资源 -->
                                <artifact>**/*scala*</artifact>
                                <includes>
                                    <include>**/*.class</include>
                                    <!-- 如果还有其他Scala相关的资源,比如*.sbt、*.scala等 -->
                                </includes>
                            </filter>
                        </filters>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

特别要注意的是, 部分需要确保不会意外排除掉Scala编译后的任何.class文件或者其他重要的Scala资源。此外,如果你使用了特殊的Scala插件进行构建,可能还需要额外配置确保它们在shade阶段也被正确处理。

在实践中,有时仅仅依靠Shade Plugin的标准配置可能不够,因为Scala编译后的某些资源可能隐藏在复杂的目录结构中,此时可能需要更精细的过滤和迁移策略。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/592292


问题二:Flink CDC里整库同步的时候,因为源表有写字段是大文本,怎么解决同步问题?


Flink CDC里整库同步的时候,因为源表有写字段是大文本:longblob、text等等,这时候CDC就无法同步数据了,如何解决这个问题吗?


参考回答:

改下StarRocksUtils这个类的createFieldGetter方法,使其支持下bytes格式。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/592296


问题三:Flink CDC里mysql5.7和mysql8是不是binlog生成机制不一样?


Flink CDC里mysql5.7和mysql8是不是binlog生成机制不一样? 还是说是binlog的配置不一样, 都开启了binlog 但是 mysql8读不到啊?


参考回答:

参考 show variables like 'log_bin';


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/592297


问题四:Flink CDC里增量快照是单个作业内多并行度,但是多个作业、每个作业同步的不同库可以同时运行吗?


Flink CDC里增量快照是单个作业内多并行度,但是多个作业、每个作业同步的不同库,但不同库在一个实例下,这时能多个库的作业同时运行吗?怎么控制数据库中创建复制槽不阻塞呢?


参考回答:

可以的啊,但是不建议这样操作,一个是一个库一个job。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/592300


问题五:Flink CDC里 是重新下载3.0的版本还是 等3.1发版?


Flink CDC里


这个pr, 解决了 不在同步列表的 其他表schema变动,导致任务失败的问题吧, 是重新下载3.0的版本还是 等3.1发版? 目前 这个问题 在生产环境的 同步流程完全没法用,时不时就任务失败了 。


参考回答:

这周发布一个小版本的包解决。着急的话自己先在 master 的分支上打包替换 mysql 的 jar。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/592301

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
1月前
|
消息中间件 Java Kafka
Flink CDC 在外部查询某个 job 中的表数据
【2月更文挑战第27天】Flink CDC 在外部查询某个 job 中的表数据
44 5
|
1月前
|
API 数据库 流计算
有大佬知道在使用flink cdc实现数据同步,如何实现如果服务停止了对数据源表的某个数据进行删除操作,重启服务之后目标表能进行对源表删除的数据进行删除吗?
【2月更文挑战第27天】有大佬知道在使用flink cdc实现数据同步,如何实现如果服务停止了对数据源表的某个数据进行删除操作,重启服务之后目标表能进行对源表删除的数据进行删除吗?
52 3
|
1月前
|
消息中间件 Kafka 流计算
如果有多个版本的Flink CDC在同一环境中运行,可能会导致Debezium版本冲突
【2月更文挑战第30天】如果有多个版本的Flink CDC在同一环境中运行,可能会导致Debezium版本冲突
20 2
|
1月前
|
消息中间件 API Apache
官宣|阿里巴巴捐赠的 Flink CDC 项目正式加入 Apache 基金会
本文整理自阿里云开源大数据平台徐榜江 (雪尽),关于阿里巴巴捐赠的 Flink CDC 项目正式加入 Apache 基金会。
1416 1
官宣|阿里巴巴捐赠的 Flink CDC 项目正式加入 Apache 基金会
|
1月前
|
Java 关系型数据库 MySQL
Flink CDC有见这个报错不?
【2月更文挑战第29天】Flink CDC有见这个报错不?
22 2
|
存储 SQL 监控
使用实践:对接Flink常见问题诊断
本文总结了Hologres对接Flink/Blink时的常见问题以及对应的诊断方法。
1938 1
|
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。
1355 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