doris: update 更新慢的问题 解决办法: 通过数据导入(INSERT INTO )实现高效的数据更新。
一:全列更新 :将update 换成 INSERT INTO 数据导入方式,带上唯一键。
做法:先查出来,再设置需要修改的列。 最后insert into 导入进去最终版本数据 update v2=1。
备注:改成导入的话,一个批次就写完了,秒级完成的。一个批次可以支持1Gb级别的数据量导入doris
二:部分列更新:
DDL 设置 : enable_insert_strict的值为false
做法
<insert id="updateabc">
SET enable_unique_key_partial_update = true;
insert into tableA(a,b,c) select * from tableB;
SET enable_unique_key_partial_update = false;
</insert>
Apache Doris 简介
Apache Doris 是一个开源的 MPP(大规模并行处理)数据库,主要用于在线分析处理(OLAP)场景。它支持实时数据仓库和数据湖分析,能够高效地处理大规模数据集。Doris 以其高性能、高可用性和易用性而受到广泛欢迎,适用于各种数据分析和业务智能场景。
核心特性
-
高性能
- 列存储:Doris 采用列存储格式,能够高效地进行数据压缩和编码,减少存储空间,同时提升读写性能。
- 向量化执行:通过向量化执行引擎,Doris 能够批量处理数据,显著提升查询性能。
- 分布式架构:Doris 采用分布式架构,支持水平扩展,能够处理大规模数据集。
-
高可用性
- 多副本存储:数据在多个节点上存储多个副本,确保数据的高可用性和可靠性。
- 自动故障转移:在节点故障时,Doris 能够自动进行故障转移,确保服务的连续性。
-
易用性
- SQL 标准:Doris 支持标准的 SQL 语法,用户可以使用熟悉的 SQL 语言进行数据查询和分析。
- 多种数据源支持:Doris 支持从多种数据源(如 MySQL、Kafka、HDFS 等)导入数据,方便数据集成。
- Web 管理界面:Doris 提供了 Web 管理界面,用户可以通过浏览器进行集群管理和查询操作。
架构设计
Doris 的架构主要由以下几部分组成:
-
FE(Frontend)
- 协调节点:负责管理元数据、任务调度、查询优化等。
- 高可用:通常部署多个 FE 节点,通过选举机制确保高可用性。
-
BE(Backend)
- 数据节点:负责存储数据和执行具体的计算任务。
- 水平扩展:可以通过增加 BE 节点来提升集群的存储和计算能力。
-
Broker
- 数据代理:负责数据的导入和导出,支持多种数据源的接入。
使用场景
-
实时数据分析
- Doris 能够实时处理和分析数据,适用于需要快速响应的业务场景,如实时监控、实时报表等。
-
数据仓库
- Doris 可以作为数据仓库使用,支持数据的存储、管理和分析,适用于企业级数据仓库场景。
-
数据湖分析
- Doris 支持与数据湖(如 HDFS、S3 等)集成,能够高效地分析数据湖中的数据,适用于数据湖分析场景。
优势
-
高性能
- Doris 的列存储和向量化执行引擎使其在处理大规模数据集时表现出色,能够快速响应复杂的查询请求。
-
高可用性
- 多副本存储和自动故障转移机制确保了数据的高可用性和可靠性,适用于对数据可用性要求较高的场景。
-
易用性
- 支持标准 SQL 语法和多种数据源接入,用户可以轻松上手,快速构建数据分析系统。
-
社区支持
- Doris 拥有活跃的开源社区,用户可以获取丰富的文档、教程和技术支持,方便问题解决和功能扩展。