我有一个用例,我想将数据库表数据更改审核到另一个表中以达到合规性目的。首先,应审核对插入/更新/删除等数据的任何更改。我发现了不同的选项,例如JaVers、Hibernate Envers、Database triggers和Debezium。
我避免使用 JaVers 和 Hibernate Envers,因为这不会捕获通过直接 SQL 查询发生的任何数据更改以及通过其他应用程序发生的任何数据更改。我看到的另一个问题是我们需要将与审计相关的代码添加到同一事务边界中的主应用程序代码中。
我也避免使用数据库触发器,因为我们根本没有在任何部署中使用触发器。
然后我带着很有希望的 Debezium 离开了。但是,我唯一担心的是我们需要使用 Kafka 来利用 Debezium。如果主表和审计表都位于同一个数据库实例中,是否需要使用 Kafka 才能使用 Debezium?