接上篇《构建一个完整的数据仓库(十三)doris进阶之导入数据的方式(中)》。前几篇文章我们介绍了把数据导入到doris中,这篇我们介绍下数据的更新。
前提说明
在doris中,他的更新操作只能存在云Unique 唯一主键模型里面,其他的duplicate和aggregate模型都不支持更新操作。
更新操作目前有一种,分别是:update,使用的语法和mysql是一模一样的。网上有看到说支持replace,但是我在使用的时候是不支持的,使用replace会报错,在官方文档里面我也没搜索到replace。
所以目前的数据更新操作仅用update即可。
doris的更新机制
doris和mysql的更新机制不一样,我们熟悉nosql的同学都知道,在做update的时候,nosql的更新过程是:
1、根据条件把数据读取出来,例如根据documentid,或其他值。 2、然后在内存里面把对应的document给更改掉。 3、再把新的document写会数据库中
在doris里面,他的流程也是一样的,而且我们前面知道 unique唯一主键模型在插入数据的时候,插入相同的数据不会提示报错,而是用新值覆盖旧值。所以这个更新操作的机制也是一模一样的。
举个例子
1)创建一张表
CREATE TABLE order_table( order_id BIGINT, order_type VARCHAR(8), order_status VARCHAR(32) ) UNIQUE KEY(order_id) DISTRIBUTED BY HASH(order_id) BUCKETS 1 PROPERTIES ( "replication_num" = "1" );
2)插入一条数据
insert into order_table values(123456,'省份','无效')
3)查询结果
select * from order_table;
下面我们把他改成有效
update order_table set order_status = '有效' where order_id = 123456
然后再查询
还没有评论,来说两句吧...