当前位置: 首页 > news >正文

doris:聚合模型的导入更新

这篇文档主要介绍 Doris 聚合模型上基于导入的更新。

整行更新​

使用 Doris 支持的 Stream Load,Broker Load,Routine Load,Insert Into 等导入方式,往聚合模型(Agg 模型)中进行数据导入时,都会将新的值与旧的聚合值,根据列的聚合函数产出新的聚合值,这个值可能是插入时产出,也可能是异步 Compaction 时产出,但是用户查询时,都会得到一样的返回值。

聚合模型的部分列更新​

Aggregate 表主要在预聚合场景使用而非数据更新的场景使用,但也可以通过将聚合函数设置为 REPLACE_IF_NOT_NULL 来实现部分列更新效果。

建表

将需要进行列更新的字段对应的聚合函数设置为REPLACE_IF_NOT_NULL

CREATE TABLE order_tbl (order_id int(11) NULL,order_amount int(11) REPLACE_IF_NOT_NULL NULL,order_status varchar(100) REPLACE_IF_NOT_NULL NULL
) ENGINE=OLAP
AGGREGATE KEY(order_id)
COMMENT 'OLAP'
DISTRIBUTED BY HASH(order_id) BUCKETS 1
PROPERTIES (
"replication_allocation" = "tag.location.default: 1"
);

数据写入

无论是 Stream Load、Broker Load、Routine Load 还是INSERT INTO, 直接写入要更新的字段的数据即可

示例

与前面例子相同,对应的 Stream Load 命令为(不需要额外的 header):

$ cat update.csv1,To be shippedcurl  --location-trusted -u root: -H "column_separator:," -H "columns:order_id,order_status" -T /tmp/update.csv http://127.0.0.1:8030/api/db1/order_tbl/_stream_load

对应的INSERT INTO语句为(不需要额外设置 session variable):

INSERT INTO order_tbl (order_id, order_status) values (1,'待发货');

部分列更新使用注意​

Aggregate Key 模型在写入过程中不做任何额外处理,所以写入性能不受影响,与普通的数据导入相同。但是在查询时进行聚合的代价较大,典型的聚合查询性能相比 Unique Key 模型的 Merge-on-Write 实现会有 5-10 倍的下降。

由于 REPLACE_IF_NOT_NULL 聚合函数仅在非 NULL 值时才会生效,因此用户无法将某个字段值修改为NULL值。

http://www.lryc.cn/news/530809.html

相关文章:

  • Java NIO_非阻塞I/O的实现与优化
  • 代码随想录算法训练营Day51 | 101.孤岛的总面积、102.沉没孤岛、103.水流问题、104.建造最大岛屿
  • Games202Lecture 6 Real-time Environment Mapping
  • 在 Zemax 中使用布尔对象创建光学光圈
  • MySQL知识点总结(十八)
  • [论文总结] 深度学习在农业领域应用论文笔记14
  • MySQL和Redis的区别
  • Rust 中的注释使用指南
  • 2025年2月2日(tcp3次握手4次挥手)
  • 一文了解制造业中的QC是什么
  • 【NEXT】网络编程——上传文件(不限于jpg/png/pdf/txt/doc等),或请求参数值是file类型时,调用在线服务接口
  • 在CentOS服务器上部署DeepSeek R1
  • 算法随笔_36: 复写零
  • MoonBit 编译器(留档学习)
  • 使用 DeepSeek-R1 与 AnythingLLM 搭建本地知识库
  • 网络工程师 (13)时间管理
  • 【xdoj-离散线上练习】T251(C++)
  • 定时器按键tim_key模版
  • Kanass快速安装配置教程(入门级)
  • 无用知识之:std::initializer_list的秘密
  • 论文阅读笔记 —— 英文论文常见缩写及含义
  • 实验9 JSP访问数据库(二)
  • [c语言日寄]C语言类型转换规则详解
  • Airflow:选择合适执行器扩展任务执行
  • 使用冒泡排序模拟实现qsort函数
  • AI大模型开发原理篇-4:神经概率语言模型NPLM
  • Eigen::Tensor使用帮助
  • git基础使用--3---git安装和基本使用
  • html的字符实体和颜色表示
  • OpenAI发布o3-mini:免费推理模型,DeepSeek引发的反思