ただのメモです。ツール、ライブラリ、フレームワーク、サービス、プラットフォーム。色々と変更データキャプチャにかかる用語はありそうですがざっくりツールとしてみました。
前提
Debeziumというライブラリがあるのは知っているが、それ以外にあるのだろうか。ということで軽く調査。
なんか間違ってるよーとか、こういうのあるよとかあれば教えて下さい!変更データキャプチャとは
変更データキャプチャ(Change Data Capture略して CDC)は、変更されたデータを判別および追跡するために使用されるソフトウェアデザインパターン。
変更されたデータを用いてアクションする。
https://en.m.wikipedia.org/wiki/Change_data_capture
結論
- (お金を払えば)色々ある!
- 変更データキャプチャとその他のデータソリューションを有料で売ってる感じがある。もちろんそれぞれ便利なんだろう
- 純粋に変更データキャプチャを試してみたいというレベルならDebeziumで良い気がする。それ以外もOSSはあるけど、一番Debeziumが開発頻度やサポートするデータソースなど考えるとアンパイなんじゃないかなと思っている
どういうCDC(変更データキャプチャ)ツールがある?
有償のサービス
- Equalum(https://www.equalum.io/)
- Hevo Data Platform(https://www.hevodata.com/)
- HVR(https://www.hvr-software.com/)
- IBM InfoSphere Change Data Capture(https://www.ibm.com/docs/ja/iis/9.1?topic=overview-infosphere-change-data-capture)
- Qlik Replicate(https://www.qlik.com/us/)
- Oracle GoldenGate(https://www.oracle.com/jp/middleware/technologies/middleware/goldengate/overview.html)
などなど…。セールスフォース然り、サービスの機能の一部として提供してる場合も結構あります(ググると出てくる)
参考URL
- https://solutionsreview.com/data-integration/the-best-change-data-capture-tools-to-consider/
- https://www.keboola.com/blog/change-data-capture-cdc-tools-of-2021
- https://hevodata.com/learn/7-best-cdc-tools/
OSSのもの
- Debezium(https://debezium.io/)
- 数多くのデータソースのデータ変更をキャプチャができる。Oracle、PostgreSQL、MySQL、SQL Server、MongoDBなど
- linkedin/databus(https://engineering.linkedin.com/data-replication/open-sourcing-databus-linkedins-low-latency-change-data-capture-system)
- linkedinの変更データキャプチャツール。Debezium以前はdatabusが使われていたらしいような文章がある https://www.instaclustr.com/change-data-capture-cdc-with-kafka-and-debezium/
- supabase/realtime(https://github.com/supabase/realtime)
- PostgreSQLのデータ変更をWebSocketで受けられるというサーバーらしい。ちょっと変更データキャプチャとは微妙に違う感じもする。あと、対応しているデータソースがPostgreSQLのみのよう
- SymmetricDS(https://www.symmetricds.org/docs/overview)
- どちらかというと公式サイトにもある通りDatabase Replicationをするもの。srcとdestどっちもDBに情報をもって同期しないといけないので、結構DBに依存する印象
- uber/storagetapper(https://github.com/uber/storagetapper)
- uber製のMySQL用の変更データキャプチャツール。 MySQLの変更イベントをKafka、HDFS、S3、Local file、MySQL (experimental)、Postgres (experimental)、Clickhouse (experimental)などに流し込める
Debezium関連
- flink-cdc-connectors(https://github.com/ververica/flink-cdc-connectors)
- FlinkとDebeziumのコネクタ
- hazelcsat JET(https://github.com/hazelcast/hazelcast-jet)
- Debezium関連とまとめるにはかなり乱暴だけど、hazelcast JETでDebeziumのデータをストリーミングできる(他のもたくさんある https://jet-start.sh/docs/api/sources-sinks)
番外
- NetflixはDebeziumで物足りなかったのでDBLogというライブラリの中で変更データキャプチャを自作したらしい。 https://netflixtechblog.com/dblog-a-generic-change-data-capture-framework-69351fb9099b
参考URL
まとめ
感覚的な話にはなるんですが、調べた感じだとDebezium乗っかっておくのが良いのではないかと思いました。
Debeziumで機能的に不充分だったりDebeziumが使いこなせなかったりする場合は有償サービスを検討という順番かなと。
更に調べたことや試したことあれば続編書こうと思います!
0 件のコメント:
コメントを投稿