database - 实时查询 RDBMS 事务日志
问题描述
这是一个变更数据捕获方案。但是,我不想在表上启用 CDC,而是想读取数据库事务日志并为某些表过滤它。
例如,我想知道某个表上的所有更新、删除和所有 DDL,然后在找到时将该日志行流式传输到 ElasticSearch。
有哪些解决方案可以让我实时监控数据库日志并流式传输到 ElasticSearch?
感谢任何反馈
解决方案
每个 RDBM 都有自己的专有事务日志格式,有时取决于版本。有一些记录在案,大多数没有。有些是直观的,大多数不是。
有些公司销售 CDC 工具,这些工具知道如何解释这些日志,并且他们花费了数年的时间来正确、一致地解释事务日志。Attunity就是这样的公司。他们的“复制”产品现在可以通过 Qlik 获得。
对于 SQLserver,您可以调用 FN_DBLOG(用于实时日志)和 FN_DUMP_DBLOG(用于存档日志)来轻松获取 RAW 事务行数据。接下来,您需要弄清楚如何解释它。谷歌(鸭鸭去)是你的朋友。也许从这里开始:https ://www.sqlserverlogexplorer.com/reading-sql-server-transaction-logs/
您只能对非常有限的 RDBMS 集以及非常有限的行和列数据类型集自行执行此操作。一旦您尝试制定通用解决方案,它就会变成职业!
祝你好运!海因。
推荐阅读
- arrays - 将原始字符串转换为 JSON 格式
- go - Go 如何在后台使用无类型 const 保存大量数字?
- typescript - 如何在 PhpStorm 中为 TypeScript 配置自动导入
- php - 警告:sizeof():参数必须是一个数组或一个在事件生成器上实现 Countable 的对象
- ios - 为什么 ion-item click 在 ionic4 for ios 中不起作用?
- laravel - 试图从发票中返回项目数据
- css - 将 zoom:80% 应用于某些浏览器,但不适用于 Internet Explorer
- c# - 如何用不同的对齐方式包装来自 2 个不同文本块的文本
- csv - 读取 csv 文件,但它在第一列名称中得到 \ufeff,如何在 Robot Framework 中删除它
- php - 当我使用 laravel 单击添加到购物车按钮时,我想将产品项目显示到购物车中吗?