
数据处理
|
85
4.2.1 捕获数据更改
如今,许多数据库都提供了数据更改事件(更改日志)流,并通过易于使用的 API 供用
户调用。这样就可以基于事件去执行某些操作,例如在文档更改或更新实例化视图时触
发一个函数。举个例子,成功添加一个包含了订单的文档可以触发一个事件,这个事件
将更新总订单数并通知账单服务某个客户创建了一个订单。在混合持久化和分布式数据
存储的场景下,这些基于事件流的解决办法在保持这些数据在多存储之间的一致性方面
非常有用。数据更改捕获(CDC)的一些常见用例包括:
通知
在微服务架构中,常常会遇到一个服务希望收到另一个服务中数据更改的通知的情
况。为此,你可以使用 Webhook 或订阅来发布事件通知给其他服务。
实例化视图
实例化视图提供了在系统上进行有效且简化的查询的能力。更改事件可用于更新这
些视图。
缓存失效
缓存对于提高系统的扩展性和性能非常有用,但是当后端数据发生更改时如何使缓
存中的数据无效是个挑战。除了使用有效时间(Time-To-Live, TTL)外,你还可以
使用更改事件来删除或更新缓存中的数据。
审计
许多系统有维护数据更改记录的需求。你可以使用更改的日志来跟踪更改的内容和
时间。我们也经常需要知道是谁进行了更改,因此有必要把这个信息也记录下来。
搜索
许多数据库不能很好地处理搜索,而搜索数据库又不能提供其他数据库所具备的所
有功能。你可以使用变更数据流来维护搜索索引。
数据分析
企业的数据分析需求通常需要跨越许多不同数据库组成数据视图。将数据发送至中
央数据湖、数据仓库或数据库可以实现更丰富的报告和分析需求。 ...