Doris(9):删除数据(Delete)

Delete不同于其他导入方式,它是一个同步过程。和Insert into相似,所有的Delete操作在Doris中是一个独立的导入作业,一般Delete语句需要指定表和分区以及删除的条件来筛选要删除的数据。

Doris 目前可以通过两种方式删除数据:

  • DELETE FROM 语句
  • ALTER TABLE DROP PARTITION 语句

语法:

DELETE FROM table_name [PARTITION partition_name]

WHERE

column_name1 op { value | value_list } [ AND column_name2 op { value | value_list } ...];

删除 my_table partition p1 中 k1 列值大于等于 3 且 k2 列值为 "abc" 的数据行

DELETE FROM my_table PARTITION p1 WHERE k1 >= 3 AND k2 = "abc";

1 DELETE FROM Statement(条件删除)

delete from 语句类似标准 delete 语法,具体使用可以查看 help delete; 帮助。这里主要说明一些注意事项。

  • delete from 语句类似标准 delete 语法,具体使用可以查看 help delete; 帮助。这里主要说明一些注意事项。
  • 该语句只能针对 Partition 级别进行删除。如果一个表有多个 partition 含有需要删除的数据,则需要执行多次针对不同 Partition 的 delete 语句。而如果是没有使用 Partition 的表,partition 的名称即表名。
  • where 后面的条件谓词只能针对 Key 列,并且谓词之间,只能通过 AND 连接。如果想实现 OR 的语义,需要执行多条 delete。
  • delete 是一个同步命令,命令返回即表示执行成功。
  • 从代码实现角度,delete 是一种特殊的导入操作。该命令所导入的内容,也是一个新的数据版本,只是该版本中只包含命令中指定的删除条件。在实际执行查询时,会根据这些条件进行查询时过滤。所以,不建议大量频繁使用 delete 命令,因为这可能导致查询效率降低。
  • 数据的真正删除是在 BE 进行数据 Compaction 时进行的。所以执行完 delete 命令后,并不会立即释放磁盘空间。
  • delete 命令一个较强的限制条件是,在执行该命令时,对应的表,不能有正在进行的导入任务(包括 PENDING、ETL、LOADING)。而如果有 QUORUM_FINISHED 状态的导入任务,则可能可以执行。
  • delete 也有一个隐含的类似 QUORUM_FINISHED 的状态。即如果 delete 只在多数副本上完成了,也会返回用户成功。但是会在后台生成一个异步的 delete job(Async Delete Job),来继续完成对剩余副本的删除操作。如果此时通过 show delete 命令,可以看到这种任务在 state 一栏会显示 QUORUM_FINISHED。

如:

delete from student_kafka where id=1;

2 DROP PARTITION Statement(删除分区)

该命令可以直接删除指定的分区。因为 Partition 是逻辑上最小的数据管理单元,所以使用 DROP PARTITION 命令可以很轻量的完成数据删除工作。并且该命令不受 load 以及任何其他操作的限制,同时不会影响查询效率。是比较推荐的一种数据删除方式。

该命令是同步命令,执行成功即生效。而后台数据真正删除的时间可能会延迟10分钟左右。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/12218.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用Schrödinger Python API系列教程 -- 介绍 (一)

使用Schrdinger Python API系列教程 – 介绍 (一) 本文档可从Schrdinger网站www.schrodinger.com/pythonapi访问。 从Python文档字符串生成的完整API文档可以在这里访问 介绍 在最高级别上,Schrdinger Python API提供了一个基本的分子结构类,并允许与…

【JavaEE】关于synchronized总结-Callable用法及JUC的常见问题

博主简介:想进大厂的打工人博主主页:xyk:所属专栏: JavaEE初阶synchronized原理是什么?synchronized到底有什么特点,synchronized的锁策略是什么,是怎么变化的呢?本篇文章总结出, Synchronized 具有以下特性…

HyperWorks2021软件安装教程

下载软件 https://www.xsoftnet.com/share/a0004MWyQAg9r.html产品介绍: HyperWorks一款功能强大的开放式架构仿真软件。拥有先进的技术以及高性能、高效和创新的产品,为用户提供了设计、仿真和制造等服务。支持电磁分析设计、材料建模制造、多物理场分…

【数据结构】二叉树链式结构

🚀write in front🚀 📜所属专栏:初阶数据结构 🛰️博客主页:睿睿的博客主页 🛰️代码仓库:🎉VS2022_C语言仓库 🎡您的点赞、关注、收藏、评论,是对…

18 隐私模式下面发送 http 请求不成功

前言 是这样的一个情况, 最近 我们服务存在这样的一个问题 是在登录界面, 假设我用户名 或者 密码输入错误, 能够得到真确的结果, 拿到了 正常的 http 响应, 回来 "用户名 或者 密码 不正确 " 但是 假设是在 隐私模式下面, 同样的输入, 同样的服务, 但是结果 不一…

【配电网故障重构SOP】基于二阶锥松弛的加光伏风机储能进行的配电网故障处理和重构【考虑最优潮流】(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Java多线程基础学习(一)

1. 创建线程 1.1 通过构造函数:public Thread(Runnable target, String name){} 或:public Thread(Runnable target){} 示例: Thread thread1 new Thread(new MyThread(), "mythread"); class MyThread extends Thread(){public void …

联盟链是虚构的?没有用的?用FISCO BCOS来展示链委员这件事

前言 当前区块链大都使用的是投票决定这种方法,但是如何使现实中的投票转换到区块链中,如何让举手表决变得更加智能,如何让投票透明、安全、权威,这是区块链的一大设计思路,有很多人觉得联盟链是个梦,是个虚…

计算机网络简史

ARPANET的发展 互联网最早的雏形 1931-ARPANET设计 互联网名人堂 1965-packet switching(分包交换) 1969 第一个RFC(Request for Comments)(开始通过APPANET发布)第一个接口信息处理单元(Interface Message Processor)(下图,节…

制造企业该如何选择MES生产管理系统?盘点四大生产管理系统软件

本文将介绍:1、如何选择MES(生产管理系统);2、盘点四款好用的生产管理系统 生产管理系统即MES(Manufacturing Execution System),制造执行系统。是面向车间生产的管理系统。在产品从工单发出到成品完工的过程中,MES系…

提取图像特征方法总结 是那种很传统的方法~

目录 写在前面 一、SIFT(尺度不变特征变换) 1.SIFT特征提取的实质 2.SIFT特征提取的方法 3.SIFT特征提取的优点 4.SIFT特征提取的缺点 5.SIFT特征提取可以解决的问题: 二、HOG(方向梯度直方图) 1.HOG特征提取…

webgl-图形非矩阵旋转

知识拓展 由(x1,y1)旋转β角度到(x2,y2) 根据圆极坐标方程 x1 r*cosα y1 r*sinα 可得 x2 r*cos(α β) r*cosα*cosβ - r*sinα*sinβ,因为x1 r*cosα,y1 r*sinα,所以x2 x1*cosβ -y1*sinβ…

Linux 提权学习

提权的目的是获取 root 权限 root 权限可获取 shadow 文件中的密码 Hash,若内网环境中存在「账户/密码复用」的情况,可用于横向扩展 暴力破解 suid 提权 内核漏洞提权 定时任务提权 sudo 提权 第三方服务提权(docker、mysql、redis、NFS提权…

【C++】结构体嵌套结构体

目录 1、缘起 2、结构体嵌套结构体 3、总结 1、缘起 结构体嵌套结构体 是一种数据组织方式,就像 俄罗斯套娃 一样,一个数据结构可以包含另一个数据结构。这种嵌套结构使得程序可以更加灵活地处理数据,从而更好地满足复杂的需求。类比生活中…

Can‘‘t connect to MySQL server on localhost (10061)解决方法

首先检查MySQL 服务没有启动》如果没有启动,则要启动这个服务。 有时候安装mysql后使用mysql命令时报错 Cant connect to MySQL server on localhost (10061),或者用net start mysql 时报服务名无效,一般是因为mysql服务没有启动。 打开 powe…

MySQL中使用IN()查询到底走不走索引?

MySQL中使用IN()查询到底走不走索引? 看数据量 EXPLAIN SELECT * from users WHERE is_doctor in (0,1); 很明显没走索引,下面再看一个sql。 EXPLAIN SELECT * from users WHERE is_doctor in (2,1);又走索引了,所以…

day81【leetcode】打家劫舍专题

文章目录前言一、打家劫舍(力扣198)【相邻两间房不能偷】二、打家劫舍 II(力扣213)【围成一圈 相邻两间房不能偷】三、打家劫舍 III(力扣337)【树形DP】每日一题day81:链表中的下一个更大节点&a…

Java:jdk的安装以及hello world

由于本人头发较多,常常被认为是不用功的程序员;故,我来学学Java,希望我变秃了也变强了! 首先是java的安装,根据我司java的建议,安装了jdk8与jdk17!因为在众多的版本中,只…

《Netty》从零开始学netty源码(三十九)之PoolSubPage的内存分配

目录 PoolSubPage.allocategetNextAvail方法toHandle方法removeFromPool方法 PoolSubPage.allocate 上一篇我们介绍了PoolSubPage的简单知识,当我们需要PoolSubPage的内存时可调用allocate方法查找可分配二进制的位置,具体的源码过程如下: …

vite .env.test环境使用ant design vue ,打包后a-date-picker控件无法选择日期

前端开发后台管理系统,常用的UI库当属Element UI和 Ant Design Vue,但是前段时间遇到一个奇葩问题,在这里记录一下,防止小伙伴们踩坑。 后台系统,大家肯定都用过时间控件,本期我们使用的是ant design vue&…
最新文章