openLooKeng | Oracle update和delete支持简介及实现

本文介绍了openLooKeng如何支持Oracle数据源的update和delete操作,包括功能介绍、实现原理和delete业务流程。通过查询获取rowid,对数据进行原地操作,同时提供了适配开发接口。delete操作可被优化为下推到数据源执行,减少交互次数,提高效率。开发注意事项中提到,需根据数据源选择合适的接口实现,并注意事务处理。
摘要由CSDN通过智能技术生成

Oracle update和delete是openLooKeng在Oracle connector上提供的对Oracle数据源进行更新和删除操作的特性,此特性除实现对Oracle数据源update和delete操作的直接支持,还提供了适配开发接口,基于这些接口可以开发某些数据源的update和delete操作。

功能介绍

update和delete操作,先通过查询操作获取到满足条件的行,这些行每行有一个唯一的rowid的值来标识,然后对行数据进行update和delete操作,对于delete操作还提供额外的优化,如果查询可以下推到数据源,则可以将delete操作和查询操作一起下推到数据源中执行。

备注:oracle的update和delete与Hive的update和delete在业务流程还有些差别,oracle是实现原地写(只对待处理的数据进行操作),而Hive是实现重定向写(把待涉处理数据处理后,重新写入到HDFS中,实际执行updateAsInsert或deleteAsInsert的流程)。

功能实现原理

二个操作都要经过上面的不同阶段的处理, 语法解析阶段对SQL语句进行解析并转化为内部的AST树,语法&语义分析阶段对AST树中的各种标识进行识别(如表,列,表达式等)转化为逻辑计划树,优化阶段对这个逻辑树进行优化,然后转化为一个物理执行树,执行阶段框架按照这个执行树进行执行,其中有些树节点的算子会与数据源进行交互。

交互的接口大致分2类:

    <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值