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

TiDB數(shù)據(jù)庫(kù)從入門(mén)到精通系列之六:使用 TiCDC 將 TiDB 的數(shù)據(jù)同步到 Apache Kafka

這篇具有很好參考價(jià)值的文章主要介紹了TiDB數(shù)據(jù)庫(kù)從入門(mén)到精通系列之六:使用 TiCDC 將 TiDB 的數(shù)據(jù)同步到 Apache Kafka。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、技術(shù)流程

  • 快速搭建 TiCDC 集群、Kafka 集群和 Flink 集群
  • 創(chuàng)建 changefeed,將 TiDB 增量數(shù)據(jù)輸出至 Kafka
  • 使用 go-tpc 寫(xiě)入數(shù)據(jù)到上游 TiDB
  • 使用 Kafka console consumer 觀察數(shù)據(jù)被寫(xiě)入到指定的 Topic
  • (可選)配置 Flink 集群消費(fèi) Kafka 內(nèi)數(shù)據(jù)

二、搭建環(huán)境

部署包含 TiCDC 的 TiDB 集群

在實(shí)驗(yàn)或測(cè)試環(huán)境中,可以使用 TiUP Playground 功能,快速部署 TiCDC,命令如下:

tiup playground --host 0.0.0.0 --db 1 --pd 1 --kv 1 --tiflash 0 --ticdc 1
# 查看集群狀態(tài)
tiup status

三、創(chuàng)建Kafka changefeed

1.創(chuàng)建 changefeed 配置文件

根據(jù) Flink 的要求和規(guī)范,每張表的增量數(shù)據(jù)需要發(fā)送到獨(dú)立的 Topic 中,并且每個(gè)事件需要按照主鍵值分發(fā) Partition。因此,需要?jiǎng)?chuàng)建一個(gè)名為 changefeed.conf 的配置文件,填寫(xiě)如下內(nèi)容:

[sink]
dispatchers = [
{matcher = ['*.*'], topic = "tidb_{schema}_{table}", partition="index-value"},
]

2.創(chuàng)建一個(gè) changefeed,將增量數(shù)據(jù)輸出到 Kafka

tiup ctl:v<CLUSTER_VERSION> cdc changefeed 
create --server="http://127.0.0.1:8300" 
--sink-uri="kafka://127.0.0.1:9092/kafka-topic-name?protocol=canal-json" 
--changefeed-id="kafka-changefeed" 
--config="changefeed.conf"

如果命令執(zhí)行成功,將會(huì)返回被創(chuàng)建的 changefeed 的相關(guān)信息,包含被創(chuàng)建的 changefeed 的 ID 以及相關(guān)信息,內(nèi)容如下:

Create changefeed successfully!
ID: kafka-changefeed
Info: {... changfeed info json struct ...}

如果命令長(zhǎng)時(shí)間沒(méi)有返回,你需要檢查當(dāng)前執(zhí)行命令所在服務(wù)器到 sink-uri 中指定的 Kafka 機(jī)器的網(wǎng)絡(luò)可達(dá)性,保證二者之間的網(wǎng)絡(luò)連接正常。

生產(chǎn)環(huán)境下 Kafka 集群通常有多個(gè) broker 節(jié)點(diǎn),你可以在 sink-uri 中配置多個(gè) broker 的訪問(wèn)地址,這有助于提升 changefeed 到 Kafka 集群訪問(wèn)的穩(wěn)定性,當(dāng)部分被配置的 Kafka 節(jié)點(diǎn)故障的時(shí)候,changefeed 依舊可以正常工作。假設(shè) Kafka 集群中有 3 個(gè) broker 節(jié)點(diǎn),地址分別為 127.0.0.1:9092 / 127.0.0.2:9092 / 127.0.0.3:9092,可以參考如下 sink-uri 創(chuàng)建 changefeed:

tiup ctl:v<CLUSTER_VERSION> cdc changefeed create 
--server="http://127.0.0.1:8300" 
--sink-uri="kafka://127.0.0.1:9092,127.0.0.2:9092,127.0.0.3:9092/kafka-topic-name?protocol=canal-json&partition-num=3&replication-factor=1&max-message-bytes=1048576" 
--config="changefeed.conf"

3.Changefeed 創(chuàng)建成功后,執(zhí)行如下命令,查看 changefeed 的狀態(tài)

tiup ctl:v<CLUSTER_VERSION> cdc changefeed list --server="http://127.0.0.1:8300"

四、寫(xiě)入數(shù)據(jù)以產(chǎn)生變更日志

完成以上步驟后,TiCDC 會(huì)將上游 TiDB 的增量數(shù)據(jù)變更日志發(fā)送到 Kafka,下面對(duì) TiDB 寫(xiě)入數(shù)據(jù),以產(chǎn)生增量數(shù)據(jù)變更日志。

1.模擬業(yè)務(wù)負(fù)載

在測(cè)試實(shí)驗(yàn)環(huán)境下,可以使用 go-tpc 向上游 TiDB 集群寫(xiě)入數(shù)據(jù),以讓 TiDB 產(chǎn)生事件變更數(shù)據(jù)。如下命令,首先在上游 TiDB 創(chuàng)建名為 tpcc 的數(shù)據(jù)庫(kù),然后使用 TiUP bench 寫(xiě)入數(shù)據(jù)到這個(gè)數(shù)據(jù)庫(kù)中。

tiup bench tpcc -H 127.0.0.1 -P 4000 -D tpcc --warehouses 4 prepare
tiup bench tpcc -H 127.0.0.1 -P 4000 -D tpcc --warehouses 4 run --time 300s

2.消費(fèi) Kafka Topic 中的數(shù)據(jù)

changefeed 正常運(yùn)行時(shí),會(huì)向 Kafka Topic 寫(xiě)入數(shù)據(jù),你可以通過(guò)由 Kafka 提供的 kafka-console-consumer.sh,觀測(cè)到數(shù)據(jù)成功被寫(xiě)入到 Kafka Topic 中:

./bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --from-beginning --topic `${topic-name}`

至此,TiDB 的增量數(shù)據(jù)變更日志就實(shí)時(shí)地復(fù)制到了 Kafka。下一步,你可以使用 Flink 消費(fèi) Kafka 數(shù)據(jù)。當(dāng)然,你也可以自行開(kāi)發(fā)適用于業(yè)務(wù)場(chǎng)景的 Kafka 消費(fèi)端。

五、配置 Flink 消費(fèi) Kafka 數(shù)據(jù)

1.安裝 Flink Kafka Connector

在 Flink 生態(tài)中,F(xiàn)link Kafka Connector 用于消費(fèi) Kafka 中的數(shù)據(jù)并輸出到 Flink 中。Flink Kafka Connector 并不是內(nèi)建的,因此在 Flink 安裝完畢后,還需要將 Flink Kafka Connector 及其依賴(lài)項(xiàng)添加到 Flink 安裝目錄中。下載下列 jar 文件至 Flink 安裝目錄下的 lib 目錄中,如果你已經(jīng)運(yùn)行了 Flink 集群,請(qǐng)重啟集群以加載新的插件。

  • flink-connector-kafka-1.17.1.jar
  • flink-sql-connector-kafka-1.17.1.jar
  • kafka-clients-3.5.1.jar

2.創(chuàng)建一個(gè)表

可以在 Flink 的安裝目錄執(zhí)行如下命令,啟動(dòng) Flink SQL 交互式客戶端:

[root@flink flink-1.15.0]# ./bin/sql-client.sh

隨后,執(zhí)行如下語(yǔ)句創(chuàng)建一個(gè)名為 tpcc_orders 的表:

CREATE TABLE tpcc_orders (
    o_id INTEGER,
    o_d_id INTEGER,
    o_w_id INTEGER,
    o_c_id INTEGER,
    o_entry_d STRING,
    o_carrier_id INTEGER,
    o_ol_cnt INTEGER,
    o_all_local INTEGER
) WITH (
'connector' = 'kafka',
'topic' = 'tidb_tpcc_orders',
'properties.bootstrap.servers' = '127.0.0.1:9092',
'properties.group.id' = 'testGroup',
'format' = 'canal-json',
'scan.startup.mode' = 'earliest-offset',
'properties.auto.offset.reset' = 'earliest'
)

請(qǐng)將 topic 和 properties.bootstrap.servers 參數(shù)替換為環(huán)境中的實(shí)際值。

3.查詢(xún)表內(nèi)容

執(zhí)行如下命令,查詢(xún) tpcc_orders 表中的數(shù)據(jù):

SELECT * FROM tpcc_orders;

執(zhí)行成功后,可以觀察到有數(shù)據(jù)輸出,如下圖

TiDB數(shù)據(jù)庫(kù)從入門(mén)到精通系列之六:使用 TiCDC 將 TiDB 的數(shù)據(jù)同步到 Apache Kafka,日常分享專(zhuān)欄,TiDB數(shù)據(jù)庫(kù),使用 TiCDC,將 TiDB 的數(shù)據(jù),同步到Kafka
至此,就完成了 TiDB 與 Flink 的數(shù)據(jù)集成。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-659426.html

到了這里,關(guān)于TiDB數(shù)據(jù)庫(kù)從入門(mén)到精通系列之六:使用 TiCDC 將 TiDB 的數(shù)據(jù)同步到 Apache Kafka的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Oracle數(shù)據(jù)庫(kù)從入門(mén)到精通系列之二十一:Oracle 19c數(shù)據(jù)庫(kù)增加重做日志大小

    在此最佳實(shí)踐中,我們?cè)黾恿?Oracle 重做日志的大小以提高數(shù)據(jù)庫(kù)性能。適當(dāng)調(diào)整數(shù)據(jù)庫(kù)重做日志的大小可以減少數(shù)據(jù)庫(kù)中的等待事件,從而優(yōu)化數(shù)據(jù)庫(kù)系統(tǒng)。 數(shù)據(jù)庫(kù)重做日志至少包含兩個(gè)文件,負(fù)責(zé)存儲(chǔ)對(duì)數(shù)據(jù)庫(kù)所做的任何更新。重做日志對(duì)于數(shù)據(jù)庫(kù)至關(guān)重要,因?yàn)樗鼈兛?/p>

    2024年04月26日
    瀏覽(26)
  • 【100天精通python】Day30:使用python操作數(shù)據(jù)庫(kù)_數(shù)據(jù)庫(kù)基礎(chǔ)入門(mén)

    【100天精通python】Day30:使用python操作數(shù)據(jù)庫(kù)_數(shù)據(jù)庫(kù)基礎(chǔ)入門(mén)

    ?專(zhuān)欄導(dǎo)讀? 專(zhuān)欄訂閱地址: https://blog.csdn.net/qq_35831906/category_12375510.html 1.1 什么是數(shù)據(jù)庫(kù)? ????????數(shù)據(jù)庫(kù)是一個(gè)結(jié)構(gòu)化存儲(chǔ)和組織數(shù)據(jù)的集合,它可以被有效地訪問(wèn)、管理和更新。數(shù)據(jù)庫(kù)的目的是為了提供一種可靠的方式來(lái)存儲(chǔ)和管理大量的數(shù)據(jù),以便用戶和應(yīng)用程序

    2024年02月13日
    瀏覽(35)
  • Iceberg從入門(mén)到精通系列之六:Flink集成Iceberg

    下載Flink: https://www.apache.org/dyn/closer.lua/flink/flink-1.17.1/flink-1.17.1-bin-scala_2.12.tgz 下載Iceberg flink jar包:iceberg-flink-runtime-1.17-1.3.0.jar https://iceberg.apache.org/releases/ 修改配置文件flink-conf.yaml local模式 修改workers 至此FLink成功集成Iceberg

    2024年02月16日
    瀏覽(25)
  • mariadb數(shù)據(jù)庫(kù)從入門(mén)到精通

    mariadb數(shù)據(jù)庫(kù)從入門(mén)到精通

    實(shí)驗(yàn)環(huán)境:yum倉(cāng)庫(kù)搭建好 mariadb 是當(dāng)前流行的Mysql數(shù)據(jù)庫(kù)的分支 Mysql原先SUN公司(java)被Orical收購(gòu)了 Mysql開(kāi)源免費(fèi),所以企業(yè)當(dāng)中的核心數(shù)據(jù)庫(kù)是Orical,其余是Mysql mariadb是Mysql數(shù)據(jù)庫(kù)的一個(gè)分支 1.數(shù)據(jù)庫(kù)的安裝 由于數(shù)據(jù)庫(kù)的登陸不需要密碼所以不安全,我們要安全初始化。 密碼

    2024年01月21日
    瀏覽(30)
  • Jmeter(七) - 從入門(mén)到精通 - 建立數(shù)據(jù)庫(kù)測(cè)試計(jì)劃實(shí)戰(zhàn)<MySQL數(shù)據(jù)庫(kù)>(詳解教程)

    Jmeter(七) - 從入門(mén)到精通 - 建立數(shù)據(jù)庫(kù)測(cè)試計(jì)劃實(shí)戰(zhàn)<MySQL數(shù)據(jù)庫(kù)>(詳解教程)

    1.簡(jiǎn)介 ? 在實(shí)際工作中,我們經(jīng)常會(huì)聽(tīng)到數(shù)據(jù)庫(kù)的性能和穩(wěn)定性等等,這些有時(shí)候也需要測(cè)試工程師去評(píng)估和測(cè)試,上一篇文章主要介紹了jmeter連接和創(chuàng)建數(shù)據(jù)庫(kù)測(cè)試計(jì)劃的過(guò)程,在文中通過(guò)示例和代碼非常詳細(xì)地介紹給大家,希望對(duì)各位小伙伴和童鞋們的學(xué)習(xí)或者工作具有一

    2024年02月13日
    瀏覽(41)
  • JAVA JDBC數(shù)據(jù)庫(kù)開(kāi)發(fā)詳解:從入門(mén)到精通

    簡(jiǎn)介: Java是一種面向?qū)ο?,安全靈活的編程語(yǔ)言,已經(jīng)成為了世界上最流行的編程語(yǔ)言之一。Java語(yǔ)言的一個(gè)重要應(yīng)用領(lǐng)域就是數(shù)據(jù)庫(kù)開(kāi)發(fā)。通過(guò)Java?JDBC(Java?Database?Connectivity)?API,開(kāi)發(fā)人員可以使用Java語(yǔ)言來(lái)訪問(wèn)并操作各種數(shù)據(jù)庫(kù)。 本篇資料將會(huì)詳細(xì)介紹Java?JDBC數(shù)據(jù)庫(kù)

    2024年02月02日
    瀏覽(24)
  • 13. python從入門(mén)到精通——Python操作數(shù)據(jù)庫(kù)

    13. python從入門(mén)到精通——Python操作數(shù)據(jù)庫(kù)

    python database API 規(guī)范對(duì)于關(guān)系數(shù)據(jù)庫(kù)的訪問(wèn),Python社區(qū)已經(jīng)制定出一個(gè)標(biāo)準(zhǔn),稱(chēng)為Python Database API,通過(guò)這個(gè)接口使python跨不同數(shù)據(jù)庫(kù)的操作代碼可以更加具有可移植性、讓 Python 可以連接(并操作)更多的數(shù)據(jù)庫(kù)。 用于管理數(shù)據(jù)庫(kù)連接的Connection(連接)對(duì)象 用于執(zhí)行查詢(xún)的

    2024年02月10日
    瀏覽(114)
  • Jmeter(六) - 從入門(mén)到精通 - 建立數(shù)據(jù)庫(kù)測(cè)試計(jì)劃(詳解教程)

    Jmeter(六) - 從入門(mén)到精通 - 建立數(shù)據(jù)庫(kù)測(cè)試計(jì)劃(詳解教程)

    1.簡(jiǎn)介 ? 在實(shí)際工作中,我們經(jīng)常會(huì)聽(tīng)到數(shù)據(jù)庫(kù)的性能和穩(wěn)定性等等,這些有時(shí)候也需要測(cè)試工程師去評(píng)估和測(cè)試,因此這篇文章主要介紹了jmeter連接和創(chuàng)建數(shù)據(jù)庫(kù)測(cè)試計(jì)劃的過(guò)程,在文中通過(guò)示例和代碼非常詳細(xì)地介紹給大家,希望對(duì)各位小伙伴和童鞋們的學(xué)習(xí)或者工作具有

    2024年02月13日
    瀏覽(20)
  • MySQL數(shù)據(jù)庫(kù)入門(mén)到精通1--基礎(chǔ)篇(MySQL概述,SQL)

    MySQL數(shù)據(jù)庫(kù)入門(mén)到精通1--基礎(chǔ)篇(MySQL概述,SQL)

    目前主流的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng): Oracle:大型的收費(fèi)數(shù)據(jù)庫(kù),Oracle公司產(chǎn)品,價(jià)格昂貴。 MySQL:開(kāi)源免費(fèi)的中小型數(shù)據(jù)庫(kù),后來(lái)Sun公司收購(gòu)了MySQL,而Oracle又收購(gòu)了Sun公司。 目前Oracle推出了收費(fèi)版本的MySQL,也提供了免費(fèi)的社區(qū)版本。 SQL Server:Microsoft 公司推出的收費(fèi)的中

    2024年02月07日
    瀏覽(21)
  • ASP.NET Core MVC 從入門(mén)到精通之?dāng)?shù)據(jù)庫(kù)

    ASP.NET Core MVC 從入門(mén)到精通之?dāng)?shù)據(jù)庫(kù)

    隨著技術(shù)的發(fā)展,ASP.NET Core MVC也推出了好長(zhǎng)時(shí)間,經(jīng)過(guò)不斷的版本更新迭代,已經(jīng)越來(lái)越完善,本系列文章主要講解ASP.NET Core MVC開(kāi)發(fā)B/S系統(tǒng)過(guò)程中所涉及到的相關(guān)內(nèi)容,適用于初學(xué)者,在校畢業(yè)生,或其他想從事ASP.NET Core MVC 系統(tǒng)開(kāi)發(fā)的人員。 經(jīng)過(guò)前幾篇文章的講解,初步

    2023年04月27日
    瀏覽(25)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包