Mysql
跟踪 mysql 表中的更新或更改
我需要將更改流式傳輸到 elasticsearch 以與我的數據庫(mysql)保持同步。最好的方法是什麼?我考慮過以下方法
- 使用觸發器(但我的表將有數十億的數據,應用程序會頻繁更新,因此觸發器可能成本高昂)。
2 使用 delta/history 表(這將增加開發中的額外工作量,這將導致很多連接)。
是否有任何開箱即用的解決方案或任何其他方式將具有更好的性能和更低的複雜性。
這個話題現在對我來說很有趣,所以因為它了,一些最後的資訊:
複製很好,但是如果您需要將數據複製到不同技術的目標系統(例如 Redshift)怎麼辦?
我發現並測試了一些變更數據擷取的實現:
MariaDB MaxScale CDC - 我的個人測試不成功(並且是從缺少外掛的原始碼和二進制分發返回連結建構的)。問一個問題,等待答案。
StreamSets - 模擬從站,將更改發送到 Kafka MQ。實裝測試,完美執行
呸呸呸_
Maxwell Daemon - 現在正在測試,NiFi 範例 - NiFI 範例
Python 庫- 也為遠端伺服器模擬一個從站
Lapidus - NodeJS 實現
很少有其他連結也建立了,一些正在積極維護中,一些看起來像是被遺忘了。
從測試來看,StreamSets 看起來很不錯,Maxwell 也很有趣,MaxScale - 確定它可以工作,但可能僅在訂閱支持下可用。
從“其他”方面 - Talend 作為主要數據集成工具、Redshift、memSQL。
我將使用二進制日誌,它只反映數據或模式的變化,並且它已經集成在 mysql 中。