• Apache Doris的数据导入insert、数据删除delete


    1. 数据导入insert

    Insert Into命令包含以下两种。其中with label是可选的,默认会自动生成

    • insert into tb with label label_name select …;
    • insert into tb with label label_name (col1, col2, …) values (…), (…), …;:不建议用于生产环境

    示例

    mysql> insert into person with label person_label (id, name, age) values(1, 'name1', 11);
    Query OK, 1 row affected (0.15 sec)
    {'label':'person_label', 'status':'VISIBLE', 'txnId':'2016'}
    
    mysql>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 如果有warnings,表示被过滤的行数。查看被过滤的行使用show load where label = "person_label";
    • 查看insert的数据可见状态使用show transaction where id = 2016;
    • 查看同一会话最近一次insert操作的结果使用show last insert;。有的语言的客户端能获取到,有的语言的客户端获取不到

    2. 数据删除delete

    delete是一个同步的操作。需要指定表、分区、删除的条件来筛选要删除的数据,并将会同时删除base表和rollup表的数据

    语法

            DELETE FROM table_name [PARTITION partition_name | PARTITIONS (p1, p2)]
            WHERE
            column_name1 op { value | value_list } [ AND column_name2 op { value | value_list } ...];
    
    • 1
    • 2
    • 3

    注意事项

    • 如果是单分区表,删除时可以不指定分区。如果是多分区表,删除时必须指定分区;如果delete_without_partition会话变量为true,删除时可以不指定分区,表示将删除应用到所有分区
    • where后面的条件谓词只能针对Key列,并且谓词之间,只能通过AND连接
    • delete是一种逻辑删除,会产生一个新的数据版本。查询时会对删除的数据进行过滤,所以会影响查询性能。所以不要频繁的进行delete
    • 数据的真正删除是在BE进行数据Compaction时进行的
    • 执行delete命令时对应的表,不能有正在进行的导入任务(包括pending、ETL、loading)

    示例

    mysql> delete from person partition beijing where id = 1;
    Query OK, 0 rows affected (0.48 sec)
    {'label':'delete_a70a7a1f-06ca-4e00-a2e7-206ed159356a', 'status':'VISIBLE', 'txnId':'2003'}
    
    mysql>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    说明如下:

    • 因为delete是逻辑删除,所以永远是0 rows affected
    • 有时delete操作提交完成,但还未发布版本变成VISIBLE,超过一定时间也会返回结果,此时status为COMMITTED

    查看数据库的delete状态

    mysql> show delete from test_db;
    +-----------+----------------+---------------------+-----------------+----------+
    | TableName | PartitionName  | CreateTime          | DeleteCondition | State    |
    +-----------+----------------+---------------------+-----------------+----------+
    | person    | beijing        | 2022-08-03 15:53:36 | id EQ "1"       | FINISHED |
    +-----------+----------------+---------------------+-----------------+----------+
    1 rows in set (0.08 sec)
    
    mysql> 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
  • 相关阅读:
    【Git报错】SSL certificate problem: unable to get local issuer certificate
    Android 使用kotlin+注解+反射+泛型实现MVP架构
    idea2021.1版本SpringBoot项目日志的说明及使用
    51页大数据湖总体规划及大数据湖一体化运营管理方案
    react中zustand的使用
    Real3D FlipBook jQuery Plugin 3.41 Crack
    2. Java变量
    lenovo联想笔记本ThinkPad系列T15p或P15v Gen3(21DA,21DB,21D8,21D9)原厂Win11系统镜像
    告警运维中心|构建高效精准的告警协同处理体系
    windows10配置paddleOCR的CPU版本总结
  • 原文地址:https://blog.csdn.net/yy8623977/article/details/126142173