讨论
· 四月 18, 2021

ensemble如何快速的插入或更新数据到第三方数据库?比如oracle

有时候  有这样的要求,ensemble需要把数据更新或插入到第三方数据库,逻辑:如果数据在第三方数据库不存在,就插入,如果存在就更新。那么有什么方案能批量 快读的完成这个操作呢?

讨论 (5)3
登录或注册以继续

我想您的问题涉及3个方面:
1. 如何以SQL访问Ensemble的数据:
Ensemble的数据可以通过SQL操作。因此第三方SQL数据库可以直接将Ensemble作为一个SQL数据库,通过XDBC访问Ensemble,并使用SQL获取数据。
同样,Ensemble也可以通过link table直接操作第三方SQL数据库。
2. 如何发现数据在第三方数据库不存在?
这需要一些逻辑,例如通过时间戳、自增的ID等信息判断。
3. 批量快读:
听起来,不是要实时进行数据同步,而是要批量处理。批量处理可以使用多种方式:a. 小批量可以通过SQL输出适配器;b. 大批量可以绕过适配器/Production,直接以link table或其它方式处理,这样不需要产生消息,效率更高。

建议您可以使用兼容性比较好的数据ETL工具,结合我们实际的使用,推荐一款开源的 ETL 工具Kettle,纯 Java 编写,绿色无需安装,数据抽取高效稳定 (数据迁移工具)。Kettle 中有两种脚本文件,transformation 和 job,transformation 完成针对数据的基础转换,job 则完成整个工作流的控制。