【发布时间】:2016-04-25 01:30:59
【问题描述】:
假设 Oracle Schema 有以下表和列:
国家 国家ID; (首要的关键) 国家的名字; 部 部门ID; (首要的关键) 部门名称; 国家ID; (国家的外键:country_id) 员工 员工ID; (首要的关键) 员工姓名; 部门ID; (部门的外键:department_id)我有我的 Elasticsearch 文档,其中根元素是 Country 并且它包含 该国家/地区的所有部门,这些部门又包含各个部门的所有员工。
所以文档结构是这样的:
{ “映射”:{ “国家”: { “特性”: { "country_id": { "type": "string"}, “国家名称”:{“类型”:“字符串”}, “部”: { “类型”:“嵌套”, “特性”: { “部门ID”:{“类型”:“字符串”}, “部门名称”:{“类型”:“字符串”}, “员工”: { “类型”:“嵌套”, “特性”: { “employee_id”:{“类型”:“字符串”}, “员工姓名”:{“类型”:“字符串”} } } } } } } } }我希望能够在每个表上运行单独的输入 jdbc 查询,它们应该创建/更新/删除 每当添加/更新/删除基表中的数据时,elasticsearch 文档中的数据。
这是一个示例问题,实际的表和数据结构更复杂。所以我不是在寻找解决方案 仅限于此。
有没有办法做到这一点?
谢谢。
【问题讨论】:
-
我猜您可能已经解决了这个问题,但是,您能否使用 Oracle 视图将所需数据组合成文档结构格式(国家、部门、员工)并将其作为单个 JDBC 查询,这样您就可以将 elasticsearch 文档 ID 创建为最低唯一级别(在本例中为employee_id)并在那里管理更改?
标签: jdbc elasticsearch logstash