这是一个变更数据捕获场景。但是,我不想在表上启用CDC,而是希望读取数据库事务日志,并对某些表进行过滤。
例如,我想知道某些表上的所有更新、删除和所有DDL,然后在找到时将该日志行流到ElasticSearch中。
有哪些解决方案可以让我实时监控数据库日志并将其传输到ElasticSearch?
感谢任何反馈
发布于 2021-10-05 13:59:41
每个RDBMs都有自己专有的事务日志格式,有时依赖于版本。有几个是有记录的,大多数没有。有些是直观的,大多数不是。
有一些销售CDC工具的公司知道如何解释这些日志,并且他们花费了数年时间来正确、一致地解释事务日志。Attunity就是这样的公司。他们的“复制”产品现在可以通过Qlik获得。
对于SQLserver,您可以调用FN_DBLOG (针对实时日志)和FN_DUMP_DBLOG (针对归档日志)来轻松获取原始事务行数据。接下来,您需要弄清楚如何解释它。Google (鸭子go)是你的朋友。也许可以从这里开始:https://www.sqlserverlogexplorer.com/reading-sql-server-transaction-logs/
您只能针对一组非常有限的RDBMS,以及其中一组非常有限的行和列数据类型,自己完成这项工作。一旦你尝试做一个通用的解决方案,它就会变成一个职业!
祝好运!海因。
https://stackoverflow.com/questions/69428189
复制相似问题