假设上游数据源是具有插入、更新和删除功能的事务性 SQL Server 表,那么了解 Elastic Search 索引何时需要更新的最佳方法是什么?
示例:表父、子、孙子。
Parent | Child | Grandchild
ID Name | ID ParentID Name | ID ChildID Amount
1 Foo | 10 1 Bike | 100 10 5
2 Bar | 20 1 Car | 200 20 2
3 Baz | 30 3 Tran | 300 30 1
孙子被更新,并且父项上的弹性搜索索引需要更新关联记录。
因此,在孙子更新时,我需要找到该孙子的 Parent.ID。这意味着加入 Child 并获取 ParentID 值。
同时,我们正在启动一个增量、迭代加载的数据仓库计划,因此理想情况下,我希望对两者使用相同的 SQL Server API/技术。
基于如何通知 Windows 服务(c#)数据库表更改(sql 2005)?通过 Remus Rusanu,不应使用查询通知 API,因为它的唯一用途是缓存失效,而不是更改跟踪......
这似乎留下了两个选项 - SQL Server Change Data Capture 和 SQL Server Change Tracking API。
我们考虑在应用程序级别进行所有更改跟踪,但我们主要担心的是带外更新,因为由于新的政府法规,一些数据需要在夜间以不可预见的方式更新,所以我们真的需要一个在表级别捕获更改并将其冒泡到队列中以提供 Elastic Search 的方法。
谢谢!