讨论
water huang · 四月 18, 2021

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

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

0
0 115
讨论 (4)2
登录或注册以继续

我想您的问题涉及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或其它方式处理,这样不需要产生消息,效率更高。

1.的确是以SQL访问的第三方数据库。2.每条数据有主键,通过主键判断在不在。3.其他方式比如kettle?,但是我需要消息。如果是保存在ensemble上 通过对象的方式很快的。

有的DBMS有upsert的功能。这样的话只要一个SQL语句处理insert跟update的情况。