国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

flink 1.13.x集成 CDC 2.3.0

這篇具有很好參考價值的文章主要介紹了flink 1.13.x集成 CDC 2.3.0。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

使用 flink 1.13.0 和 CDC 2.3.0 的 demo

public class TMySqlCDC {

    public static void main(String[] args) throws Exception {
        StreamExecutionEnvironment env = StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(new Configuration());

        env.setParallelism(1);
        Properties dbProps = new Properties();
        dbProps.put("database.serverTimezone", "UTC");
        MySqlSource<String> mySqlSource = MySqlSource.<String>builder()
                .hostname("192.168.18.126")
                .port(3306)
                .databaseList("xn_test") // set captured database, If you need to synchronize the whole database, Please set tableList to ".*".
                .tableList("xn_test.hl_t")// set captured table
                .includeSchemaChanges(true)
                .username("root")
                .password("123456")
                .debeziumProperties(dbProps)
                .deserializer(new JsonDebeziumDeserializationSchema()) // converts SourceRecord to JSON String
                .build();

        env.fromSource(mySqlSource, WatermarkStrategy.noWatermarks(), "mysql_cdc")
                .print();

        env.execute();
    }

}

踩坑一

Caused by: org.apache.flink.table.api.ValidationException: The MySQL server has a timezone offset (0 seconds ahead of UTC) which does not match the configured timezone Asia/Shanghai. Specify the right server-time-zone to avoid inconsistencies for time-related fields.

原因

https://github.com/ververica/flink-cdc-connectors/pull/1407

簡單講,F(xiàn)link 運行機器時區(qū)和Mysql Server 時區(qū)不匹配,database.serverTimezone 配置配置影響
具體代碼可以查看CDC com.ververica.cdc.connectors.mysql.MySqlValidator#checkTimeZone

解決辦法

手動指定下Flink 運行的時區(qū),和連接的數(shù)據(jù)庫時區(qū)信息保持一致

dbProps.put("database.serverTimezone", "UTC");

踩坑二

Caused by: java.lang.ClassNotFoundException: org.apache.flink.shaded.guava30.com.google.common.util.concurrent.ThreadFactoryBuilder

原因

flink 為了解決包沖突,對一些通用的工具包做了shaded,傳送門flink-shaded

flink-cdc-connectors 2.3.0 版本引用了 flink 1.16.0,這個版本的flink使用了 flink-shaded-guava:30.1.1-jre-15.0版本。
而 flink 1.13.0 使用的是 flink-shaded-guava:18.0-13.0 版本,兩個版本的 shaded package 不一樣引起的

解決

那既然是 shaded 引用,在 cdc 中再次 shaded 一下,讓 cdc 里面引用到的 guava30 變?yōu)?guava18
clone cdc,基于tag release-2.3.0 創(chuàng)建分支,修改 flink-cdc-connectors 的 pom.xml 文件,引入cdc 后排除 guava 依賴。

# 編譯基于已經(jīng) release 的tag
git branch supos/release-2.3.0 release-2.3.0
git checkout supos/release-2.3.0

修改shaded配置

<!-- 在 maven-shade-plugin 插件中添加configuration -->
<relocation>
    <pattern>org.apache.flink.shaded.guava30</pattern>
    <shadedPattern>org.apache.flink.shaded.guava18</shadedPattern>
</relocation>

使用 mvn version 修改版本

# 要發(fā)布到公司內(nèi)部倉庫,修改為 snapshot 版本
 mvn versions:set -DnewVersion=supos-2.3.0-SNAPSHOT -DgenerateBackupPoms=false

執(zhí)行編譯

# -Drat.skip=true 發(fā)布審計插件,文件需要有 license 頭,可選  [-T 8 # 多線程編譯]
mvn clean install -Drat.skip=true -DskipTests -T 8
# 將源碼打包到j(luò)ar 包,發(fā)布到內(nèi)部私有倉庫上
mvn clean source:jar install deploy -Drat.skip=true -DskipTests -T 8

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  01:48 min
[INFO] Finished at: 2023-03-03T14:14:05+08:00
[INFO] ------------------------------------------------------------------------

引入cdc

<dependency>
    <groupId>com.ververica</groupId>
    <artifactId>flink-connector-mysql-cdc</artifactId>
    <version>${flink.cdc.version}</version>
    <exclusions>
        <exclusion>
            <artifactId>flink-shaded-guava</artifactId>
            <groupId>org.apache.flink</groupId>
        </exclusion>
    </exclusions>
</dependency>

run ~

參考
maven-shaded-plugin
maven-version-plugin
maven-source-plugin
maven snapshot

maven 插件生命周期

flink-cdc 2.4.0 發(fā)布了,要適配 flink1.13,研究了一下 maven 生命周期

cdc 2.4.0 開始,有多個模塊使用了 guava30,如果要挨個模塊中配置就不太方便了,通過maven 父子模塊管理,在父模塊中統(tǒng)一處理

<!-- flink-cdc-connectors pom -->
<configuration>
      <relocations>
          <relocation>
              <pattern>org.apache.flink.shaded.guava30</pattern>
              <shadedPattern>org.apache.flink.shaded.guava18</shadedPattern>
          </relocation>
      </relocations>
</configuration>

注意,在子模塊中,要引用一下父工程

    <parent>
        <artifactId>flink-cdc-connectors</artifactId>
        <groupId>com.ververica</groupId>
        <version>{version}</version>
    </parent>

構(gòu)建

mvn clean install -Drat.skip=true -DskipTests -T 8

通過觀察,插件是有生命周期的,如果在父模塊中配置過 shade,把 guava30 -> guava18,子模塊中配置 guava30 - guava11 是不生效的,需要配置成 guava18 - > guava11 才能生效。

父模塊的配置不會影響到子模塊,有些統(tǒng)一處理的方案可以在父模塊中直接配置為全局

給自己定個flag,沒事了寫點東西,記錄下工作。文章來源地址http://www.zghlxwxcb.cn/news/detail-596272.html

到了這里,關(guān)于flink 1.13.x集成 CDC 2.3.0的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Flink系列之:使用Flink CDC從數(shù)據(jù)庫采集數(shù)據(jù),設(shè)置checkpoint支持?jǐn)?shù)據(jù)采集中斷恢復(fù),保證數(shù)據(jù)不丟失

    博主相關(guān)技術(shù)博客: Flink系列之:Debezium采集Mysql數(shù)據(jù)庫表數(shù)據(jù)到Kafka Topic,同步kafka topic數(shù)據(jù)到StarRocks數(shù)據(jù)庫 Flink系列之:使用Flink Mysql CDC基于Flink SQL同步mysql數(shù)據(jù)到StarRocks數(shù)據(jù)庫

    2024年02月11日
    瀏覽(31)
  • 使用Flink CDC從數(shù)據(jù)庫采集數(shù)據(jù),保證數(shù)據(jù)不丟失:實現(xiàn)斷點續(xù)傳機制

    大數(shù)據(jù)技術(shù)在當(dāng)前的數(shù)據(jù)分析和處理中扮演著重要的角色。Apache Flink作為一種快速、可靠的流處理引擎,在大規(guī)模數(shù)據(jù)處理中廣受歡迎。本文將介紹如何使用Flink CDC(Change Data Capture)從數(shù)據(jù)庫采集數(shù)據(jù),并通過設(shè)置checkpoint來支持?jǐn)?shù)據(jù)采集中斷恢復(fù),從而保證數(shù)據(jù)不丟失。

    2024年02月04日
    瀏覽(26)
  • flink cdc同步Oracle數(shù)據(jù)庫資料到Doris問題集錦

    java.lang.NoClassDefFoundError: org/apache/flink/shaded/guava18/com/google/common/util/concurrent/ThreadFactoryBuilder at com.ververica.cdc.debezium.DebeziumSourceFunction.open(DebeziumSourceFunction.java:218) ~[flink-connector-debezium-2.2.0.jar:2.2.0] at org.apache.flink.api.common.functions.util.FunctionUtils.openFunction(FunctionUtils.java:34) ~[flink-co

    2024年02月16日
    瀏覽(22)
  • 【開發(fā)問題】flink-cdc不用數(shù)據(jù)庫之間的,不同類型的轉(zhuǎn)化

    【開發(fā)問題】flink-cdc不用數(shù)據(jù)庫之間的,不同類型的轉(zhuǎn)化

    我一開始是flink-cdc,oracle2Mysql,sql 我一開始直接用的oracle【date】類型,mysql【date】類型,sql的校驗通過了,但是真正操作數(shù)據(jù)的時候報錯,告訴我oracle的數(shù)據(jù)格式的日期數(shù)據(jù),不可以直接插入到mysql格式的日期數(shù)據(jù),說白了就是數(shù)據(jù)格式不一致導(dǎo)致的 我想的是既然格式不對

    2024年02月12日
    瀏覽(25)
  • 實戰(zhàn)Java springboot 采用Flink CDC操作SQL Server數(shù)據(jù)庫獲取增量變更數(shù)據(jù)

    目錄 前言: 1、springboot引入依賴: 2、yml配置文件 3、創(chuàng)建SQL server CDC變更數(shù)據(jù)監(jiān)聽器 4、反序列化數(shù)據(jù),轉(zhuǎn)為變更JSON對象 5、CDC 數(shù)據(jù)實體類 6、自定義ApplicationContextUtil 7、自定義sink 交由spring管理,處理變更數(shù)據(jù) ? ? ? ? 我的場景是從SQL Server數(shù)據(jù)庫獲取指定表的增量數(shù)據(jù),查

    2024年02月10日
    瀏覽(24)
  • Flink CDC-Oracle CDC配置及DataStream API實現(xiàn)代碼...可實現(xiàn)監(jiān)控采集一個數(shù)據(jù)庫的多個表

    使用sysdba角色登錄到Oracle數(shù)據(jù)庫 確保Oracle歸檔日志(Archive Log)已啟用 若未啟用歸檔日志, 需運行以下命令啟用歸檔日志 設(shè)置歸檔日志存儲大小及位置 設(shè)置數(shù)據(jù)庫恢復(fù)文件存儲區(qū)域的大小(如歸檔重做日志文件、控制文件備份等) 設(shè)置恢復(fù)文件的實際物理存儲路徑;scope=spfile參數(shù)

    2024年02月05日
    瀏覽(25)
  • 實時Flink的數(shù)據(jù)庫與Kafka集成優(yōu)化案例

    在現(xiàn)代數(shù)據(jù)處理系統(tǒng)中,實時數(shù)據(jù)處理和分析是至關(guān)重要的。Apache Flink是一個流處理框架,可以用于實時數(shù)據(jù)處理和分析。在許多場景下,F(xiàn)link需要與數(shù)據(jù)庫和Kafka等消息系統(tǒng)進行集成,以實現(xiàn)更高效的數(shù)據(jù)處理。本文將討論Flink與數(shù)據(jù)庫和Kafka集成的優(yōu)化案例,并提供實際示

    2024年02月20日
    瀏覽(29)
  • 實測解決 flink cdc mysql 時間字段差8小時/差13小時問題

    實測解決 flink cdc mysql 時間字段差8小時/差13小時問題

    關(guān)鍵代碼: 其中的:com.ysservice.utils.MySqlDateTimeConverter,根據(jù)自己的MySqlDateTimeConverter類路徑進行修改 全量階段和增量階段的時間問題還不一樣,實測本方式能全部解決,解決的同學(xué)記得回來點個贊!

    2024年02月16日
    瀏覽(25)
  • 《Spring Boot 實戰(zhàn)派》--13.集成NoSQL數(shù)據(jù)庫,實現(xiàn)Elasticsearch和Solr搜索引擎

    《Spring Boot 實戰(zhàn)派》--13.集成NoSQL數(shù)據(jù)庫,實現(xiàn)Elasticsearch和Solr搜索引擎

    ?????????關(guān)于搜索引擎 我們很難實現(xiàn) Elasticseach 和 Solr兩大搜索框架的效果;所以本章針對兩大搜索框架,非常詳細(xì)地講解 它們的原理和具體使用方法, 首先 介紹什么是搜索引擎 、如何用 MySQL實現(xiàn)簡單的搜索引擎,以及Elasticseach 的 概念和接口類; 然后介紹Elasticseach

    2023年04月09日
    瀏覽(25)
  • Flink CDC 新一代數(shù)據(jù)集成框架

    Flink CDC 新一代數(shù)據(jù)集成框架

    前言: 主要講解了技術(shù)原理,入門與生產(chǎn)實踐,主要功能:全增量一體化數(shù)據(jù)集成、實時數(shù)據(jù)入庫入倉、最詳細(xì)的教程。Flink CDC 是Apache Flink的一個重要組件,主要使用了CDC技術(shù)從各種數(shù)據(jù)庫中獲取變更流并接入到Flink中,Apache Flink作為一款非常優(yōu)秀的流處理引擎,其SQL API又

    2024年02月13日
    瀏覽(32)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包