
Doris
文章平均质量分 81
Apache Doris简介
只是甲
10年及以上金融信贷、通信行业数据库运维管理、数据仓库及大数据相关工作经验,持有Oracle OCP和Linux RHCE认证证书。
展开
-
StarRocks案例7:使用shell批量broker load导入hdfs数据
近期需要进行补录数据,需要将hive的历史数据迁移到StarRocks,因为需要补录的数据较多,hive和StarRocks均使用的是分区表,两边的日期格式也不同,hive这边是 yyyymmdd格式,StarRocks这边是yyyy-mm-dd格式。之前一直是使用DataX来从hive导入到StarRocks,因为DataX是单节点的,而hive和StarRocks是分布式的,所以这个性能其实一般,而且DataX配置json确实有点麻烦。原创 2023-06-20 09:33:24 · 964 阅读 · 0 评论 -
StarRocks案例6: StarRocks同关系型数据库的绑定变量功能
找了下官网,没有发现绑定变量相关的文档,只有一个类似MySQL在查询中使用变量的方法,感觉目前 还不能解决当前的问题。原创 2023-06-19 09:42:57 · 619 阅读 · 0 评论 -
StarRocks案例5: hive外表报错starrocks [42000][1064] hdfsOpenFile failed
(既不能是spark.zip 也不能是spark-24.zip, 需要在配置文件中写死为 spark-2x.zip)没想到打包名字居然是写死的,而且hive catalog居然受到spark 客户端的影响。现在需要使用hive外表,然后根据官网的的命令创建了hive resource。StarRocks的committer在论坛回复我了,原来是打包的问题。spark jar 打包名字需要是 spark-2x.zip。StarRocks版本 2.5.5。原创 2023-06-16 09:41:04 · 1303 阅读 · 0 评论 -
StarRocks案例4: Spark load第二次运行报错
使用Spark 2.4.0客户端会报错,java.lang.NoClassDefFoundError: org/slf4j/Logger。(既不能是spark.zip 也不能是spark-24.zip, 需要在配置文件中写死为 spark-2x.zip)看StarRocks lib下面使用的是Spark 2.4.6版本的jar包。然后spark_launcher_log下压根就不打印日志。spark jar 打包名字需要是 spark-2x.zip。于是使用Spark 2.4.6版本的客户端。原创 2023-06-15 09:48:21 · 1137 阅读 · 0 评论 -
StarRocks案例3: 通过[broadcast] 优化慢SQL
但是实际情况是 table_b 居然是扫描了 5kw数据后,在于table_a 进行join,table_a 通过关联字段 与 table_b 进行join,然后再进行group by。table_a 10W 左右数据,通过where条件过滤数据后 剩下 10行数据。table_b 5亿左右数据,通过where过滤条件后 剩下 5kw 数据。table_b join后其实只剩下少量的数据,进行聚合运算,应该也不会太慢。通过explain查看了执行计划,发现了table_b 访问的行数太多了。原创 2023-06-02 09:32:48 · 1018 阅读 · 0 评论 -
StarRocks案例2: 升级后性能变慢
CPU解析SQL生成执行计划,需要依赖统计信息,如统计信息正在收集中,那么此时CPU会等待统计信息收集完成或采用动态采样。可以看到,慢查询里面,CPU用于解析SQL生成执行计划的时间非常长,远高于实际执行的时间。从下图我们可以看到列的统计信息是此次新增的,要收集所有存量表的列的统计信息,耗时较久。从普罗米修斯上看到,集群CPU资源使用率不高,也就不存在资源的瓶颈。后面想到了,新版本的统计信息会有新增,那我们来看看统计信息。升级完成后,所有的查询均比较慢,前端报表页面点开也卡。原创 2023-06-01 09:49:01 · 1167 阅读 · 0 评论 -
StarRocks案例1: DBeaver执行SQL报unknown error
因为StarRocks也属于mysql的生态,而且使用的是mysql 5.1的版本。在DBeaver上执行某些SQL语句的时候,直接报 unknown error。奇怪的是我直接用命令行连接没报错,可以正常运行成功。那么此时问题就是DBeaver这个工具的问题了。将驱动降到5.1版本,重新测试,SQL运行正常。然后我们看看DBeaver使用的驱动的版本。是最新的8.0.29的。原创 2023-05-31 09:30:08 · 1139 阅读 · 0 评论 -
Doris系列20-分区缓存
文章目录一. 分区缓存概述1.1 需求场景1.2 解决方案1.3 SQLCache1.4 PartitionCache1.4.1 设计原理1.5 一些限制二. 使用方式2.1 开启SQLCache2.2 开启PartitionCache参考:一. 分区缓存概述1.1 需求场景大部分数据分析场景是写少读多,数据写入一次,多次频繁读取,比如一张报表涉及的维度和指标,数据在凌晨一次性计算好,但每天有数百甚至数千次的页面访问,因此非常适合把结果集缓存起来。在数据分析或BI应用中,存在下面的业务场景:高并原创 2022-01-14 14:34:17 · 1316 阅读 · 0 评论 -
Doris系列19-查询结果集导出
文章目录一. 查询结果导出概述二. 并发导出三. 案例参考:一. 查询结果导出概述语法:SELECT INTO OUTFILE 语句可以将查询结果导出到文件中。目前支持通过 Broker 进程, 通过 S3 协议, 或直接通过 HDFS 协议,导出到远端存储,如 HDFS,S3,BOS,COS(腾讯云)上。语法如下query_stmtINTO OUTFILE "file_path"[format_as][properties]file_pathfile_path 指向文件存储的路径以及原创 2022-01-14 14:32:17 · 835 阅读 · 0 评论 -
Doris系列18-数据导出
文章目录一. 数据导出概述二. 案例2.1 不指定文件2.1 指定文件参考:一. 数据导出概述数据导出(Export)是 Doris 提供的一种将数据导出的功能。该功能可以将用户指定的表或分区的数据,以文本的格式,通过 Broker 进程导出到远端存储上,如 HDFS/BOS 等。名词解释:FE:Frontend,Doris 的前端节点。负责元数据管理和请求接入。BE:Backend,Doris 的后端节点。负责查询执行和数据存储。Broker:Doris 可以通过 Broker 进程对远端存储原创 2022-01-13 09:07:35 · 1417 阅读 · 0 评论 -
Doris系列17-动态分区
文章目录一. 动态分区概述1.1 原理1.2 使用方式1.3 动态分区规则参数1.4 创建历史分区规则1.5 注意事项二. 案例2.1 案例12.2 案例22.3 案例3参考:一. 动态分区概述动态分区是在 Doris 0.12 版本中引入的新功能。旨在对表级别的分区实现生命周期管理(TTL),减少用户的使用负担。目前实现了动态添加分区及动态删除分区的功能。动态分区只支持 Range 分区。名词解释:FE:Frontend,Doris 的前端节点。负责元数据管理和请求接入。BE:Backend原创 2022-01-13 09:03:58 · 1533 阅读 · 0 评论 -
Doris系列16-物化视图
文章目录一. 物化视图概述二. 使用物化视图2.1 创建物化视图2.2 支持聚合函数2.3 更新策略2.4 查询自动匹配2.5 查询物化视图2.6 删除物化视图三. 案例参考:一. 物化视图概述物化视图是将预先计算(根据定义好的 SELECT 语句)好的数据集,存储在 Doris 中的一个特殊的表。物化视图的出现主要是为了满足用户,既能对原始明细数据的任意维度分析,也能快速的对固定维度进行分析查询。适用场景:分析需求覆盖明细数据查询以及固定维度查询两方面。查询仅涉及表中的很小一部分列或行。查原创 2022-01-12 12:13:25 · 986 阅读 · 0 评论 -
Doris系列15- 索引
文章目录一. 索引概述二. 案例参考:一. 索引概述目前Doris只支持bitmap 索引BITMAP 索引仅在单列上创建bitmap index:位图索引,是一种快速数据结构,能够加快查询速度语法:index 创建和修改相关语法有两种形式,一种集成与 alter table 语句中,另一种是使用单独的 create/drop index 语法创建索引创建索引的的语法可以参见 CREATE INDEX 或 ALTER TABLE 中bitmap 索引相关的操作, 也可以通过在创建表时指定原创 2022-01-12 12:11:11 · 2449 阅读 · 0 评论 -
Doris系列14-数据导入之批量删除
文章目录一. 批量删除概述1.1 原理1.2 读取1.3 Cumulative Compaction1.4 Base Compaction1.5 语法二. 启用批量删除支持参考:一. 批量删除概述目前Doris 支持broker load, routine load, stream load 等多种导入方式,对于数据的删除目前只能通过delete 语句进行删除,使用delete 语句的方式删除时,每执行一次delete 都会生成一个新的数据版本,如果频繁删除会严重影响查询性能,并且在使用delete 方原创 2022-01-11 10:25:56 · 3071 阅读 · 0 评论 -
Doris系列13-数据导入之Routine Load
文章目录一. Routine Load 概述二. Kafka 例行导入2.1 创建例行导入任务2.1.1 columns_mapping2.1.2 where_predicates2.1.3 desired_concurrent_number2.1.4 max_batch_interval/max_batch_rows/max_batch_size2.1.5 max_error_number2.1.6 data_source_properties2.1.7 strict_mode2.1.8 merge_ty原创 2022-01-11 10:23:44 · 1671 阅读 · 0 评论 -
Doris系列12-数据导入之Broker Load
文章目录一. Broker Load 概述二. 基本操作2.1 创建导入2.1.1 Label2.1.2 数据描述类参数2.1.3 导入作业参数2.1.4 strict mode 与 source data 的导入关系2.2 查看导入2.3 取消导入三. 相关系统配置3.1 FE 配置四. 案例4.1 导入Hive orc格式表4.2 导入Hive text格式表参考:一. Broker Load 概述Broker load 是一个异步的导入方式,支持的数据源取决于 Broker 进程支持的数据源。用原创 2022-01-10 09:12:37 · 1363 阅读 · 1 评论 -
Doris系列11-数据导入之Stream load
文章目录一. Stream load概述1.1 基本原理1.2 支持数据格式1.3 基本操作1.3.1 创建导入1.3.1.1 签名参数1.3.1.2 导入任务参数1.3.1.3 strict mode 与 source data 的导入关系1.3.2 返回结果1.3.3 取消导入1.4 相关系统配置1.4.1 FE 配置1.4.2 BE 配置二. 导入实例参考:一. Stream load概述Stream load 是一个同步的导入方式,用户通过发送 HTTP 协议发送请求将本地文件或数据流导入到原创 2022-01-10 08:54:10 · 1940 阅读 · 0 评论 -
Doris系列10-数据导入之Insert into
文章目录一. Insert into 概述二. 相关系统配置2.1 FE 配置2.2 Session 变量三. Insert 实例参考:一. Insert into 概述Insert Into 语句的使用方式和 MySQL 等数据库中 Insert Into 语句的使用方式类似。但在 Doris 中,所有的数据写入都是一个独立的导入作业。所以这里将 Insert Into 也作为一种导入方式介绍。主要的 Insert Into 命令包含以下两种:INSERT INTO tbl SELECT …I原创 2022-01-09 10:54:37 · 6763 阅读 · 2 评论 -
Doris系列9-表结构变更
文章目录一. 表结构变更概述二. 原理介绍三. 作业3.1 创建作业3.2 查看作业3.3 取消作业四. 最佳实践五. 注意事项六. 常见问题6.1 Schema Change 的执行速度6.2 提交作业报错 Table xxx is not stable. ...七. 相关配置八. 表结构变更实例8.1 新增列8.2 修改列的顺序参考:一. 表结构变更概述用户可以通过 Schema Change 操作来修改已存在表的 Schema。目前 Doris 支持以下几种修改:增加、删除列修改列类型调整原创 2022-01-09 10:48:51 · 5647 阅读 · 0 评论 -
Doris系列8-数据划分
文章目录一. 数据划分基本概念二. 数据划分2.1 列定义2.2 分区与分桶2.2.1 Partition2.2.1.1 Range 分区2.2.1.2 List 分区2.2.2 Bucket2.2.3 关于 Partition 和 Bucket 的数量和数据量的建议2.2.4 多列分区2.3 PROPERTIES2.3.1 replication_num2.3.2 storage_medium & storage_cooldown_time2.4 ENGINE参考:一. 数据划分基本概念在 D原创 2022-01-06 09:53:20 · 889 阅读 · 0 评论 -
Doris系列7-Doris之前缀索引
文章目录一. 前缀索引概述二. ROLLUP 调整前缀索引参考:一. 前缀索引概述 不同于传统的数据库设计,Doris 不支持在任意列上创建索引。Doris 这类 MPP 架构的 OLAP 数据库,通常都是通过提高并发,来处理大量数据的。 本质上,Doris 的数据存储在类似 SSTable(Sorted String Table)的数据结构中。该结构是一种有序的数据结构,可以按照指定的列进行排序存储。在这种数据结构上,以排序列作为条件进行查找,会非常的高效。 在 Aggregate、Uniq原创 2022-01-06 09:30:30 · 1572 阅读 · 0 评论 -
Doris系列6-Doris之rollup
文章目录一. 基本概念二. Aggregate 和 Uniq 模型中的 ROLLUP2.1 测试数据准备2.2 获取每一天的销售额2.2.1 直接写sql2.2.2 先使用rollup聚合再查询三. ROLLUP 的几点说明参考:一. 基本概念在 Doris 中,我们将用户通过建表语句创建出来的表称为 Base 表(Base Table)。Base 表中保存着按用户建表语句指定的方式存储的基础数据。在 Base 表之上,我们可以创建任意多个 ROLLUP 表。这些 ROLLUP 的数据是基于 Base原创 2022-01-05 09:53:44 · 2187 阅读 · 0 评论 -
Doris系列5-Doris数据模型
文章目录基本概念一. Aggregate 模型1.1 Aggregate 模型介绍1.2 案例一:导入数据聚合1.3 案例2:保留明细数据二. Uniq 模型三. Duplicate 模型四. 数据模型的选择建议参考:基本概念在 Doris 中,数据以表(Table)的形式进行逻辑上的描述。一张表包括行(Row)和列(Column)。Row 即用户的一行数据。Column 用于描述一行数据中不同的字段。Column 可以分为两大类:Key 和 Value。从业务角度看,Key 和 Value 可以原创 2022-01-04 18:10:18 · 941 阅读 · 0 评论 -
Doris系列4-Doris Hive Spark简单的比较
文章目录一.测试环境准备二. 测试结果2.1 Hive2.2 Hive on Spark2.3 Doris2.4 测试结果一.测试环境准备测试环境:Doris 4台虚拟机,4核8G 150GB普通磁盘。Hive 4台虚拟机,4核8G 150GB普通磁盘。Hive on Spark 同Hive测试数据:数据量7亿左右。hive> desc ods_fact_sale_orc;OKid原创 2021-12-30 17:47:31 · 3707 阅读 · 1 评论 -
Doris系列3-基础使用指南
文章目录基础使用指南一. 创建用户1.1 Root 用户登录与密码修改1.2 创建新用户二. 数据表的创建与数据导入2.1 创建数据库2.2 账户授权2.3 建表2.3.1 单分区2.3.2 复合分区2.4 导入数据2.4.1 流式导入2.4.2 Broker 导入参考:基础使用指南Doris 采用 MySQL 协议进行通信,用户可通过 MySQL client 或者 MySQL JDBC连接到 Doris 集群。选择 MySQL client 版本时建议采用5.1 之后的版本,因为 5.1 之前不能支原创 2021-12-30 17:45:24 · 7712 阅读 · 0 评论 -
Doris系列2-Doris编译和安装
文章目录一.编译前准备1.1 环境准备1.2 安装Docker1.2.1 卸载旧版本1.2.2 安装需要的软件包1.2.3 设置yum源1.2.4 查看docker版本1.2.5 安装docker1.2.6 启动并加入开机启动1.2.7 验证安装是否成功1.2.8 迁移docker1.2.9 退出后重新进入docker二. 编译2.1 下载 Docker 镜像2.2 运行镜像2.3 下载源码2.4 编译 Doris三. 安装部署3.1 安装FE3.1.1 拷贝FE部署文件3.1.2 配置 FE3.1.3 启原创 2021-12-28 09:21:45 · 2050 阅读 · 0 评论 -
Doris系列1-Doris介绍
文章目录一. Doris简介二. Doris 整体架构2.1 Doris 整体架构简介2.2 Doris 数据分布2.3 Doris 的使用方式三. Doris关键技术3.1 数据可靠性3.2 易运维3.3 MySQL 兼容性3.4 支持 MPP四. Doris 数据模型4.1 Doris 数据模型特点4.1.1 键值对存储形式4.1.2 Key 列全局有序排列4.2 聚合计算说明4.2 按列存储4.4 物化视图4.5 两层分区与分级存储4.6 Doris 在 Elasticsearch 的应用4.7 Ka原创 2021-12-28 09:05:27 · 21029 阅读 · 0 评论