自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用這個(gè)開源工具輕松同步數(shù)據(jù)庫

開源 數(shù)據(jù)庫
開源的 Apache SeaTunnel 項(xiàng)目是一個(gè)數(shù)據(jù)整合平臺(tái),可以很容易地實(shí)現(xiàn)數(shù)據(jù)同步。

變更數(shù)據(jù)捕獲Change Data Capture(CDC)使用服務(wù)端代理來記錄、添加、更新和刪除對(duì)數(shù)據(jù)表的各種操作。它以一種易用的關(guān)系型格式提供了數(shù)據(jù)變化的細(xì)節(jié)信息。它可以捕獲將更改應(yīng)用于目標(biāo)環(huán)境中的已修改行所需的列信息和元數(shù)據(jù)。這些信息保存在一個(gè)與被跟蹤的源表的列結(jié)構(gòu)相對(duì)應(yīng)的變化表內(nèi)。

捕獲變更的數(shù)據(jù)可不是一件容易的事。不過,有一個(gè)開源項(xiàng)目 —— ??Apache SeaTunnel??,它是一個(gè)數(shù)據(jù)整合平臺(tái),它提供的 CDC 功能的設(shè)計(jì)理念和功能集使這些捕獲成為可能,其功能包括上文提到的,超越了現(xiàn)有產(chǎn)品的解決方案。

使用場景

CDC 的經(jīng)典應(yīng)用是異質(zhì)數(shù)據(jù)庫之間的數(shù)據(jù)同步或備份。你可以在 ??MySQL??、PostgreSQL、MariaDB 和類似的數(shù)據(jù)庫間進(jìn)行數(shù)據(jù)同步。另外一個(gè)例子,你也可以將數(shù)據(jù)同步到應(yīng)該全文搜索引擎。借助 CDC,你可以基于 CDC 捕獲的數(shù)據(jù)創(chuàng)建備份。

如果設(shè)計(jì)得當(dāng),數(shù)據(jù)分析系統(tǒng)通過訂閱目標(biāo)數(shù)據(jù)表的變化情況獲取需要處理的數(shù)據(jù),而不需要將分析過程嵌入已有系統(tǒng)。

在微服務(wù)間共享數(shù)據(jù)狀態(tài)

微服務(wù)現(xiàn)在很流行,但是在微服務(wù)間共享信息往往是一件復(fù)雜的事。CDC 是一個(gè)可能的解決方案。微服務(wù)可以使用 CDC 來獲取其他微服務(wù)的數(shù)據(jù)庫變化,獲取數(shù)據(jù)狀態(tài)更新,以及執(zhí)行相應(yīng)邏輯。

更新緩存

命令查詢責(zé)任隔離Command Query Responsibility Segregation(??CQRS??)的概念是將命令活動(dòng)與查詢活動(dòng)分開。這兩者有本質(zhì)上的不同:

  • 命令向數(shù)據(jù)源寫入數(shù)據(jù)。
  • 查詢從數(shù)據(jù)源讀取數(shù)據(jù)。

問題是,讀事件發(fā)生的時(shí)間與寫事件發(fā)生的時(shí)間有關(guān),以及這些事件的發(fā)生是由誰來承擔(dān)責(zé)任的?

更新緩存可能很困難。你可以使用 CDC 從數(shù)據(jù)庫獲取數(shù)據(jù)更新事件,讓它控制緩存的更新或失效。

CQRS 設(shè)計(jì)通常使用兩種不同的存儲(chǔ)實(shí)例來支持業(yè)務(wù)查詢和變更操作。為了保證數(shù)據(jù)的一致性,我們可以使用分布式事務(wù)來保證強(qiáng)大的數(shù)據(jù)一致性,代價(jià)是可用性、性能和擴(kuò)展性。你也可以使用 CDC 來確保最終的數(shù)據(jù)一致性,它的性能和伸縮性較好,但其代價(jià)是數(shù)據(jù)延遲,目前業(yè)界可以保持在毫秒范圍內(nèi)。

例如,你可以使用 CDC 把 MySQL 中的數(shù)據(jù)同步到你的全文搜索引擎(比如ElasticSearch)。在這種架構(gòu)中,ElasticSearch 搜索了所有的查詢,但是當(dāng)你需要修改數(shù)據(jù)時(shí),你不能直接操作 ElasticSearch 的,你需要修改上游的 MySQL 數(shù)據(jù),因而生成了一個(gè)更新事件。當(dāng) ElasticSearch 監(jiān)視數(shù)據(jù)庫時(shí),這個(gè)事件就被系統(tǒng)獲取了,并在 ElasticSearch 中提示更新。

在一些 CQRS 系統(tǒng)中,也可以用類似的方法更新查詢視圖。

痛點(diǎn)

CDC 不是一個(gè)新概念,很多現(xiàn)有的項(xiàng)目已經(jīng)實(shí)現(xiàn)了它。但是對(duì)很多用戶來說,已有解決方案存在一些不足。

單數(shù)據(jù)表配置

當(dāng)你使用一些 CDC 軟件時(shí),你必須分別配置每個(gè)表。例如,為了同步十張表,你需要寫十條 源 SQL 和 匯聚Sink

有時(shí)候,對(duì)于一張表來說可以手寫,但只對(duì)數(shù)據(jù)量小的情況適用。當(dāng)數(shù)據(jù)量大時(shí),會(huì)發(fā)生類型映射或參數(shù)配置的錯(cuò)誤,進(jìn)而導(dǎo)致較高的操作和維護(hù)成本。

SeaTunnel 是一個(gè)易用的數(shù)據(jù)集成平臺(tái),有望解決這個(gè)問題。

不支持模式演化

一些 CDC 解決方案支持 DDL 事件傳遞,但不支持傳遞到 匯聚節(jié)點(diǎn)Sink,以便它能進(jìn)行同步變更。由于無法根據(jù) DDL 事件改變轉(zhuǎn)換的類型信息,所以即使一個(gè)能獲取事件的 CDC 也不一定可以將它發(fā)送至引擎(所以匯聚節(jié)點(diǎn)不能遵循 DDL 事件來進(jìn)行變更)。

太多的鏈接

在一些 CDC 平臺(tái)上,當(dāng)有多個(gè)表時(shí),如果一張表被同步了,就必須使用一個(gè)鏈接來代表一張表。當(dāng)存在多個(gè)表時(shí),也需要很多鏈接。這就給源 JDBC 數(shù)據(jù)庫帶來了壓力,同時(shí)導(dǎo)致binlog 過多,還會(huì)導(dǎo)致重復(fù)的日志解析。

SeaTunnel CDC 架構(gòu)的目標(biāo)

Apache SeaTunnel 是一個(gè)開源、高效、分布式、大規(guī)模的數(shù)據(jù)集成框架。為了解決現(xiàn)有數(shù)據(jù)集成工具解決不了的問題,開發(fā)者社區(qū)“重新造輪子”,開發(fā)了一種具有獨(dú)特功能的 CDC 平臺(tái)。它的架構(gòu)設(shè)計(jì)吸收了現(xiàn)有工具的優(yōu)點(diǎn),消除了相應(yīng)的缺點(diǎn)。

Apache Seatunnel 支持:

  • 以無鎖并行的方式快照歷史數(shù)據(jù)。
  • 日志心跳檢測和動(dòng)態(tài)添加數(shù)據(jù)表。
  • 讀取子數(shù)據(jù)庫、子表和多結(jié)構(gòu)表。
  • 模式演進(jìn)。
  • 所有基礎(chǔ)的 CDC 功能。

它降低了用戶的操作和維護(hù)成本,并且支持動(dòng)態(tài)添加數(shù)據(jù)表。

例如,當(dāng)你要同步整個(gè)數(shù)據(jù)庫,并在稍后需要添加一個(gè)新表,你不必手動(dòng)維護(hù)、改變配置或重啟當(dāng)前作業(yè)。

另外,Apache SeaTunnel 也支持并行讀取子數(shù)據(jù)庫、子表和多結(jié)構(gòu)表。還支持模式演進(jìn)、DDL 轉(zhuǎn)換,以及在引擎內(nèi)改變支持的模式,這些可以變?yōu)?nbsp;轉(zhuǎn)換器Transform和 匯聚節(jié)點(diǎn)Sink。

SeaTunnel CDC 現(xiàn)狀

如今,CDC 擁有支持增量和快照階段的基本能力。它也支持 MySQL 實(shí)時(shí)和離線使用。MySQL 實(shí)時(shí)測試已完成,即將進(jìn)行離線測試。因?yàn)樗婕皩?duì)轉(zhuǎn)換器和匯聚節(jié)點(diǎn)的更改,目前還不支持模式。不支持動(dòng)態(tài)發(fā)現(xiàn)新增表,已預(yù)留了一些支持多結(jié)構(gòu)表的接口。

項(xiàng)目展望

作為 Apache 孵化的項(xiàng)目,Apache SeaTunnel 的社區(qū)正快速發(fā)展起來。下一屆社區(qū)計(jì)劃會(huì)議的主要目標(biāo)有:

1、發(fā)展并改進(jìn)連接器和目錄生態(tài)

我們正努力改善連接器和目錄功能,包括:

  • 支持連接更多數(shù)據(jù)庫,包括 TiDB、Doris 和 Stripe。
  • 改善現(xiàn)有的連接器的易用性和性能。
  • 支持 CDC 連接器用于實(shí)時(shí)、增量同步場景。

任何對(duì)連接器感興趣者都可以查看 ??Umbrella??。

2、支持更多數(shù)據(jù)集成場景(SeaTunnel 引擎)

現(xiàn)有的引擎仍然存在一些解決不了的痛點(diǎn),例如對(duì)整個(gè)數(shù)據(jù)庫的同步,表結(jié)構(gòu)變化的同步以及任務(wù)失敗的大粒度。

我們正努力解決這些問題,對(duì)此感興趣者可以查看 ??#2272 議題??。

3、更易使用(Web 版)

我們正努力提供 Web 界面,令操作更簡便。通過 Web 界面,我們將實(shí)現(xiàn)以 DAG/SQL 的形式查看目錄、連接器、任務(wù)和相關(guān)信息。我們也會(huì)給予用戶訪問調(diào)度平臺(tái)的權(quán)限,以便更方便地進(jìn)行任務(wù)管理。

欲了解更多關(guān)于 Web 版的信息,請(qǐng)?jiān)L問 ??Web 平臺(tái)子項(xiàng)目??。

總結(jié)

數(shù)據(jù)庫活動(dòng)通常必須被仔細(xì)跟蹤,才能對(duì)數(shù)據(jù)的更新、刪除或添加操作進(jìn)行管理。CDC 提供了這種功能。Apache SeaTunnel 是一個(gè)開源解決方案,能滿足這些需求,它將持續(xù)迭代更新,從而提供更多功能。該項(xiàng)目和社區(qū)也很活躍,歡迎你的加入。

(題圖:MJ:database connections illustration in high resolution, very detailed, 8k)

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2020-12-21 09:40:16

數(shù)據(jù)庫工具技術(shù)

2018-10-29 11:33:29

2024-12-06 08:29:29

2012-09-20 09:43:37

SSIS

2021-06-03 21:54:33

數(shù)據(jù)庫框架緩存

2020-08-31 07:00:00

數(shù)據(jù)庫數(shù)據(jù)庫同步

2020-07-29 10:55:07

數(shù)據(jù)庫工具技術(shù)

2024-03-13 10:40:00

性能探測工具SQL語句數(shù)據(jù)庫

2020-02-11 20:00:29

開源開源工具天氣預(yù)報(bào)

2021-01-10 15:29:53

開源數(shù)據(jù)庫數(shù)據(jù)庫

2021-04-09 06:15:54

開源工具Python編程語言

2020-12-24 10:20:43

文檔工具語言

2021-07-07 10:12:08

數(shù)據(jù)庫工具技術(shù)

2023-03-29 07:02:46

開源項(xiàng)目工具

2021-04-18 21:54:36

Python工具開發(fā)

2019-08-13 15:52:34

數(shù)據(jù)庫同步遷移

2011-03-17 11:38:35

2010-06-02 16:57:50

MySQL數(shù)據(jù)庫同步

2024-07-09 08:27:30

2011-03-25 13:55:17

PHP開源數(shù)據(jù)庫
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)