从mysql中提取每日数据更改并rollout到timeseries DB



在MySQL中,使用binlog,我们可以提取数据更改。但我只需要在那段时间/天内进行的最新更改,并需要将这些数据馈送到timeseries DB(计划与德鲁伊一起)

在读取binlog时,是否有任何机制来避免重复并保留最新的更改?

我的意图是每天在一个时间序列数据库中备份整个MySQL数据库。通过参考当天的实际数据,它有助于调试我的应用程序的过去日期

Kafka,按照设计,是只追加日志(不更新)。Kafka Connectsource连接器将连续捕获从binlog到Kafka主题的所有更改。连接器将其位置存储在binlog中,并且只会写入new在MySLQ中可用时更改为Kafka

从Kafka消费,作为一个选项,你可以使用sink连接器,该连接器将把所有更改写入目标。或者,代替Kafka Connectsink连接器,一些将从Kafka读取(消费)的独立进程。对于德鲁伊,你可以看看https://www.confluent.io/hub/imply/druid-kafka-indexing-service。

消费者(连接器或一些独立进程)将在Kafka主题中存储其位置(偏移量),并且只会写入new在Kafka中可用时变成目标(德鲁伊)。

上面描述的进程捕获所有更改,并允许您在任意时间点查看源(MySQL)数据目标(德鲁伊)。最佳实践是在目标中提供所有可用的更改。如果需要,使用目标的功能将数据视图限制在一天中的特定时间。

如果,例如,在MySQL中有大量的日常更改记录,并且您只希望在目标中写入一天中特定时间的最新状态。您仍然需要从MySQL读取所有更改。创建一些额外的每日进程,将读取自上次运行以来的所有更改,只过滤最新的记录,并将它们写入目标。

最新更新