Apache Doris
文章平均质量分 90
Apache Doris是一个现代化的MPP分析型数据库产品。仅需亚秒级响应时间即可获得查询结果,有效地支持实时数据分析。在大数据数据分析中Doris作为新一代的OLAP分析引擎是大数据学习过程中必备技能之一。此专栏包含部分Doris技术内容,完整内容请订阅主页“大数据OLAP体系技术栈”专栏。
IT贫道
10余年大数据架构行业工作经验,多年线下和线上大数据教学经验,专注于大数据技术分享。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Apache Doris (六十九):JDBC Catalog
🏡🚩 私聊博主:私聊博主加WX好友,获取更多资料哦~JDBC Catalog 通过标准 JDBC 协议,连接其他数据源。连接后,Doris 会自动同步数据源下的 Database 和 Table 的元数据,以便快速访问这些外部数据,数据不会同步到Doris中,Doris只是通过JDBC方式来访问外部数据库中的数据。目前Catalog支持MySQL、PostgreSQL、Oracle、SQLServer、Clickhouse、Doris。原创 2024-01-23 22:09:17 · 853 阅读 · 0 评论 -
Apache Doris (六十八): DataX DorisWriter - (2) - Doris参数介绍
目录编辑1. DorisWriter参数介绍2. DataX同步MySQL数据到Doris关于DorisWriter插件的介绍可以参考:https://github.com/apache/doris/blob/master/extension/DataX/doriswriter/doc/doriswriter.md,DorisWriter支持将大批量数据写入Doris中。DorisWriter 通过Doris原生支持Stream load方式导入数据, DorisWriter会将reader读取的数据进行原创 2024-01-22 11:45:00 · 506 阅读 · 0 评论 -
Apache Doris (六十七): DataX DorisWriter - (1) - 源码编译及集成
🏡🚩 私聊博主:私聊博主加WX好友,获取更多资料哦~DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS 等各种异构数据源之间高效的数据同步功能。原创 2024-01-20 11:45:00 · 318 阅读 · 0 评论 -
Apache Doris (六十六): Flink Doris Connector - (3)-配置及类型映射
🏡🚩 私聊博主:私聊博主加WX好友,获取更多资料哦~原创 2024-01-19 11:45:00 · 283 阅读 · 0 评论 -
Apache Doris (六十五): Flink Doris Connector - (2)-使用
🏡🚩 私聊博主:私聊博主加WX好友,获取更多资料哦~Flink操作Doris有两种方式,一个是DataStream方式,另外一种就是SQL方式操作,这两种方式官方建议使用SQL方式进行编程,相对比较简单。通过Flink Doris Connector可以通过Flink读取Doris中的数据,原创 2024-01-18 11:45:00 · 206 阅读 · 0 评论 -
Apache Doris (六十四): Flink Doris Connector - (1)-源码编译
🏡🚩 私聊博主:私聊博主加WX好友,获取更多资料哦~Flink Doris Connector 可以支持通过 Flink 操作(读取、插入、修改、删除) Doris 中存储的数据。通过Flink Doris Connector 可以将Doris表映射为DataStream或者Table对象,此外,修改和删除只支持在 Unique Key 模型上,目前的删除是支持 Flink CDC 的方式接入数据实现自动删除,如果是其他数据接入的方式删除需要自己实现。原创 2024-01-17 22:45:56 · 527 阅读 · 0 评论 -
Apache Doris (六十三): Spark Doris Connector - (3)-配置型及列映射关系
🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-优快云博客🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。🔔 博主个人B栈地址:豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频。原创 2024-01-08 11:45:00 · 1443 阅读 · 0 评论 -
Apache Doris (六十): Doris - 物化视图
🏡🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。物化视图是将预先计算(根据定义好的 SELECT 语句)好的数据集,存储在 Doris 中的一个特殊的表。物化视图的出现主要是为了满足用户,既能对原始明细数据的任意维度分析,也能快速的对固定维度进行分析查询。在没有物化视图功能之前,用户一般都是使用 Rollup 功能通过预聚合方式提升查询效率的。但是 Rollup 具有一定的局限性,他不能基于明细模型做预聚合。物化视图则在覆盖了 Rollup 的功能的同时,还能支持更丰富的聚合函数。原创 2024-01-04 23:10:35 · 1880 阅读 · 0 评论 -
Apache Doris (五十七): Doris - Runtime Filter
🏡🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。Runtime Filter 是在 Doris 0.15 版本中正式加入的新功能。旨在为某些 Join 查询在运行时动态生成过滤条件,来减少扫描的数据量,避免不必要的I/O和网络传输,从而加速查询。原创 2024-01-01 11:45:00 · 1175 阅读 · 0 评论 -
Apache Doris (五十六): Doris Join类型 - 四种Join对比
在Doris FE进行分布式查询规划时,优先选择的顺序为 Colocate Join -> Bucket Shuffle Join -> Shuffle Join ->Broadcast Join。则上述的选择优先顺序则不生效。Doris作为分布式的 MPP 数据库, 在 Join 的过程中根据使用的join类型来决定是否需要进行数据的 Shuffle,保证最终的 Join 结果是正确的。上面这 4 种方式灵活度是从高到低的,它对这个数据分布的要求是越来越严格,但 Join 计算的性能也是越来越好的。原创 2023-12-29 12:30:00 · 880 阅读 · 0 评论 -
Apache Doris (五十五): Doris Join类型 - Colocation Join
🏡🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。原创 2023-12-28 00:51:06 · 1599 阅读 · 0 评论 -
Apache Doris (五十四): Doris Join类型 - Bucket Shuffle Join
🏡🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。原创 2023-11-17 11:37:37 · 946 阅读 · 0 评论 -
Apache Doris (五十三): Doris Join类型 - Shuffle Join
🏡🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。原创 2023-11-07 07:00:00 · 292 阅读 · 0 评论 -
Apache Doris (五十二): Doris Join类型 - Broadcast Join
🏡🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。Doris中支持Join语法,Join的类型分为四种,不同Join类型有对应使用场景,下面介绍Doris中Join类型及各个类型之间的对比。Doris Broadcast Join是将小表进行条件过滤后,将其广播到大表所在的各个节点上,形成一个内存 Hash 表,然后流式读出大表的数据进行Hash Join。Broadcast Join会将右表全量数据发送到左表数据所在的每个节点上,这些节点拥有右表全量数据。原创 2023-11-06 21:34:07 · 955 阅读 · 0 评论 -
Apache Doris (五十一): Doris数据缓存
🏡🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。大部分数据分析场景是写少读多,数据写入一次,多次频繁读取,比如一张报表涉及的维度和指标,数据在凌晨一次性计算好,但每天有数百甚至数千次的页面访问,因此非常适合把结果集缓存起来。附:LRU: Least Recently Used,又叫淘汰算法,根据数据历史访问记录进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”,用通俗的话来说就是最近被频繁访问的数据会具备更高的留存,淘汰那些不常被访问的数据。原创 2023-11-04 18:45:45 · 797 阅读 · 0 评论 -
Apache Doris (五十): Doris表结构变更-动态分区(2)
🏡🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。原创 2023-11-01 07:00:00 · 300 阅读 · 0 评论 -
Apache Doris (四十九): Doris表结构变更-动态分区(1)
在某些使用场景下,用户会将表按照天进行分区划分,每天定时执行例行任务,这时需要使用方手动管理分区,否则可能由于使用方没有创建分区导致数据导入失败,这给使用方带来了额外的维护成本。通过动态分区功能,用户可以在建表时设定动态分区的规则。FE 会启动一个后台线程,根据用户指定的规则创建或删除分区。用户也可以在运行时对现有规则进行变更。动态分区是在 Doris 0.12 版本中引入的新功能,旨在对表级别的分区实现生命周期管理(TTL),减少用户的使用负担,目前实现了动态添加分区及动态删除分区的功能。原创 2023-10-31 07:30:00 · 290 阅读 · 0 评论 -
Apache Doris (四十七): Doris表结构变更-Schema变更
🏡🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。用户可以通过 Schema Change 操作来修改已存在表的 Schema。下面演示对Doris表rollup增加列以及修改列类型来演示Schema Change作业。。原创 2023-10-24 07:45:00 · 453 阅读 · 0 评论 -
Apache Doris (四十六): Doris数据更新与删除 - 批量删除
🏡🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。对于数据的删除目前只能通过delete语句进行删除,使用delete 语句的方式删除时,每执行一次delete 都会生成一个新的数据版本,如果频繁删除会严重影响查询性能,并且在使用delete方式删除时,是通过生成一个空的rowset来记录删除条件实现,每次读取都要对删除条件进行过滤,同样在条件较多时会对性能造成影响。我们可以使用批量删除方式来解决以上问题,原创 2023-10-23 20:16:19 · 846 阅读 · 0 评论 -
Apache Doris (四十五): Doris数据更新与删除 - Sequence 列
🏡🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。为了能更好的了解Doris中批量删除,我们需要了解Sequence列。Unique模型主要针对需要唯一主键的场景,可以保证主键唯一性约束,但是由于使用REPLACE聚合方式,在同一批次中导入的数据,替换顺序不做保证。替换顺序无法保证则无法确定最终导入到表中的具体数据,存在了不确定性。原创 2023-10-19 22:10:53 · 997 阅读 · 0 评论 -
Apache Doris (四十四): Doris数据更新与删除 - Delete 数据删除
🏡🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。Doris 支持通过两种方式对已导入的数据进行删除。一种是通过 DELETE FROM 语句,指定 WHERE 条件对数据进行删除。这种方式比较通用,另一种删除方式仅针对 Unique 主键唯一模型,Doris 内部会通过删除标记位对数据进行最终的物理删除。原创 2023-10-19 07:15:00 · 1100 阅读 · 0 评论 -
Apache Doris (四十三): Doris数据更新与删除 - Update数据更新
🏡🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。如果我们需要修改或更新Doris中的数据,如何使用UPDATE命令来操作。数据更新对Doris的版本有限制,只能在Doris Version 0.15.x + 才可以使用。,使用场景为:对满足某些条件的行进行修改值或小范围数据更新,待更新的行最好是整个表非常小的一部分。Doris利用查询引擎自身的 where 过滤逻辑,从待更新表中筛选出需要被更新的行。原创 2023-10-18 21:03:22 · 1612 阅读 · 0 评论 -
Apache Doris (四十二): RECOVER数据删除恢复
Doris为了避免误操作造成的灾难,支持对误删除的数据库/表/分区进行数据恢复,在drop table或者 drop database之后,Doris不会立刻对数据进行物理删除,而是在 Trash 中保留一段时间(默认1天,可通过fe.conf中catalog_trash_expire_second参数配置),管理员可以通过RECOVER命令对误删除的数据进行恢复。支持通过name、id来恢复指定的元信息,并且支持将恢复的元信息重命名。🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。原创 2023-10-18 20:54:53 · 789 阅读 · 0 评论 -
Apache Doris (二十) :Doris 索引详细内容
Doris对数据进行有序存储, 在数据有序的基础上为其建立稀疏索引,索引粒度为 block(1024行)。稀疏索引选取 schema 中固定长度的前缀作为索引内容, 目前 Doris 选取 36 个字节的前缀作为索引。建表时建议将查询中常见的过滤字段放在 Schema 的前面, 区分度越大,频次越高的查询字段越往前放。这其中有一个特殊的地方,就是 varchar 类型的字段。varchar 类型字段只能作为稀疏索引的最后一个字段。原创 2023-07-08 06:00:00 · 958 阅读 · 0 评论 -
Apache Doris (十九) :Doris Properties 配置项及Engine选择
在 0.15 版本后,该属性将自动转换成 replication_allocation 属性,如:"replication_num" = "3" 会自动转换成 "replication_allocation" = "tag.location.default:3"。示例:"disable_auto_compaction" = "false"。2)dynamic_partition.time_unit: 用于指定动态添加分区的时间单位,可选择为DAY(天),WEEK(周),MONTH(月),HOUR(时)。原创 2023-07-07 05:15:00 · 2168 阅读 · 0 评论 -
Apache Doris (十八) :Doris分区和分桶4-Random Distribution 及复合分区使用场景
如果OLAP表的是Random Distribution的数据分布,那么在数据导入的时候可以设置单tablet导入模式(将load_to_single_tablet 设置为 true),那么在大数据量的导入的时候,一个任务在将数据写入对应的分区时将只写入一个tablet分片,这样将能提高数据导入的并发度和吞吐量,减少数据导入和Compaction导致的写放大问题,保障集群的稳定性。”直接指定RANDOM,默认BUCKETS为10。当然用户也可以不使用复合分区,即使用单分区,则数据只做 HASH 分布。原创 2023-07-06 06:15:00 · 518 阅读 · 0 评论 -
Apache Doris (十七) :Doris分区和分桶3-分桶及建议
Doris数据表存储中,如果有分区,在插入数据时,数据会按照对应规则匹配写往对应的分区中,如果表除了有分区还有分桶,那么数据在写入某个分区后,还会根据分桶规则将数据写入不同的分桶(Tablet),目前分桶Bucekt目前仅支持Hash分桶,即根据对应列的hash值将数据划分成不同的分桶(Tablet)。注:表的数据量可以通过 SHOW DATA 命令查看,结果除以副本数,即表的数据量。4. 分桶的数量理论上没有上限。原创 2023-07-05 08:30:00 · 883 阅读 · 0 评论 -
Apache Doris (十六) :Doris分区和分桶2-List分区
业务上,用户可以选择城市或者其他枚举值进行partition,对于这种枚举类型数据列进行分区就可以使用List分区。List分区列支持 BOOLEAN, TINYINT, SMALLINT, INT, BIGINT, LARGEINT, DATE, DATETIME, CHAR, VARCHAR 数据类型,原创 2023-07-04 08:00:00 · 1510 阅读 · 0 评论 -
Apache Doris (十五) :Doris分区和分桶1-Range分区
Doris 支持两层的数据划分:第一层是 Partition,即分区。用户可以指定某一维度列作为分区列(Ranger分区),并指定每个分区的取值范围,分区支持 Range 和 List 的划分方式。第二层是 Bucket分桶(Tablet),仅支持 Hash 的划分方式,用户可以指定一个或多个维度列以及桶数对数据进行 HASH 分布或者不指定分桶列设置成 Random Distribution对数据进行随机分布。原创 2023-07-03 08:45:00 · 702 阅读 · 0 评论 -
Apache Doris (十四) :聚合模型的局限性、模型选择建议及列定义建议
关于Doris表的类型,可以通过在 mysql-client 中执行 HELP CREATE TABLE;查看。原创 2023-07-02 08:30:00 · 640 阅读 · 0 评论 -
Apache Doris (十三) :数据存储模型之Duplicate数据存储模型
底层的数据存储,是按照各自建表语句中,AGGREGATE KEY、UNIQUE KEY 和 DUPLICATE KEY 中指定的列进行排序存储的。,更贴切的名称应该为 “Sorted Column”,这里取名 “DUPLICATE KEY” 只是用以明确表示所用的数据模型。在某些多维分析场景下,数据既没有主键,也没有聚合需求,只需要将数据原封不动的存入表中,数据有主键重复也都要存储。这种数据模型区别于 Aggregate 和 Unique 模型,数据完全按照导入文件/或插入的数据进行存储,不会有任何聚合。原创 2023-07-01 06:15:00 · 491 阅读 · 0 评论 -
Apache Doris (十二) :数据存储模型之Unique数据存储模型
因此,我们引入了 Unique 数据模型,该模型可以根据相同的Primary Key 来保留后插入的数据,确保数据的唯一,只要UNIQUE KEY 相同时,新记录覆盖旧记录。由于聚合模型的实现方式是读时合并(merge on read),因此在一些聚合查询上性能不佳(参考3.3.4小节聚合模型的局限性的描述),在1.2版本我们引入了Unique模型新的实现方式——写时合并(merge on write),通过在写入时做一些额外的工作,实现了最优的查询性能。通过以上验证,我们发现。原创 2023-06-30 08:45:00 · 771 阅读 · 0 评论 -
Apache Doris (十一) :数据存储模型之Aggregate数据存储模型
在创建Doris表时,可以指定key_type为AGGREGATE KEY,这就是Aggregate数据模型,AGGREGATE KEY模型可以提前聚合数据, 适合报表和多维分析业务。只要向Aggregate表中插入的数据AGGREGATE KEY相同,数据表中新旧记录进行聚合,目前支持的聚合函数有SUM, MIN, MAX, REPLACE。我们可以看到,存储的数据,和导入数据完全一样,没有发生任何聚合。这是因为,这批数据中,因为加入了 timestamp 列,所有行的 Key 都不完全相同。原创 2023-06-29 07:30:00 · 682 阅读 · 0 评论 -
Apache Doris (十) :Doris基础
在 Doris 中,数据都以表(Table)的形式进行逻辑上的描述,一张表包括行(Row)和列(Column),Table中又有分区(partition)和分桶(tablet)概念,下面分别介绍这些概念。Row 代表用户的一行数据,Column用于描述一行数据中不同的字段。Column 可以分为两大类:Key 和 Value。从业务角度看,Key 和 Value 可以分别对应维度列和指标列。从聚合模型的角度来说,Key 列相同的行,会聚合成一行。其中 Value 列的聚合方式由用户在建表时指定。原创 2023-06-28 06:30:00 · 662 阅读 · 0 评论 -
Apache Doris (九) :Doris简单使用
Doris集群内置root用户,密码默认为空,root 用户默认拥有集群所有权限,例如:权限变更权限(Grant_priv )、节点变更权限(Node_priv ,包括 FE、BE、BROKER 节点的添加、删除、下线等操作)。下面按照官网给出的示例简单操作Doris,首先创建用户、创建数据库、赋权、创建表等,然后向表中加入数据,通过MySQL客户端进行数据的查询分析。your_password是为root用户设置的新密码,可以随意设置,建议设置为强密码增加安全性,下次登录就用新密码登录。原创 2023-06-27 07:00:00 · 886 阅读 · 0 评论 -
Apache Doris (八) :Doris分布式部署(五) Broker部署及Doris集群启动脚本
Broker 是 Doris 集群中一种可选进程,主要用于支持 Doris 读写远端存储上的文件和目录。建议每一个 FE 和 BE 节点都部署一个 Broker。Broker 通过提供一个 RPC 服务端口来提供服务,是一个无状态的 Java 进程,负责为远端存储的读写操作封装一些操作,如 open,pread,pwrite 等等。原创 2023-06-26 22:56:22 · 1854 阅读 · 0 评论 -
Apache Doris (七) :Doris分布式部署(四) BE扩缩容
BE启动之后,与之前部署的FE没有任何关系,现在将在node3~node5上启动的BE连接到FE中组成完成的Apache Doris集群,将BE连接到FE集群中就是BE的扩容,将BE节点从Doris FE集群中去除就是BE的缩容。至此,Apache Doris集群中已经完成3台FE Follower的部署(node1~node3)、2台Observer的部署(node4、node5)、3台BE 部署。BE缩容就是在Doris集群中将BE节点删除,删除BE节点有两种方式:DROP和DECOMMISSION。原创 2023-06-26 06:30:00 · 797 阅读 · 0 评论 -
Apache Doris (六) :Doris分布式部署(三) BE部署及启动
将资料中的“apache-doris-dependencies-1.2.1-bin-x86_64.tar.xz”进行解压,将其中“java-udf-jar-with-dependencies.jar”,将此jar包放入“/software/doris-1.2.1/apache-doris-be/lib”下,该jar包用于支持 1.2.0 版本中的 JDBC 外表和 JAVA UDF。注意启动BE后,jps看不到对应的进程(C++编写),可以通过“ps aux|grep be”命令来查看对应的BE进程。原创 2023-06-25 10:13:50 · 1361 阅读 · 0 评论 -
Apache Doris (五) :Doris分布式部署(二) FE扩缩容
node4、node5节点配置FE完成后,由于是Observer角色,已经存在node1为FE Leader,与添加Follower一样,第一次启动时需要执行如下命令,指定Leader所在节点IP和端口,端口为在fe.conf中edit_log_port配置项,默认为9010。对FE Follower扩容完成后,也可以通过以下命令来进行FE Follower缩容,删除FE Follower节点,需要保证最终剩余的Follower(包括Leader)节点为奇数,这里不再演示FE缩容。原创 2023-06-25 10:06:51 · 2335 阅读 · 0 评论 -
Apache Doris (四) :Doris分布式部署(一) FE部署及启动
Apache Doris 中部署多FE的思路为先在一台节点上配置部署一个FE并启动,相当于是启动Doris服务,然后配置更多的FE节点,添加到Doris服务中给该Doris的FE进行扩容,最终形成多节点FE。在node1节点上修改/software/doris-1.2.1/apache-doris-fe/conf/fe.conf配置文件,这里我们主要修改两个参数:priority_networks 及 meta_dir。各个节点上修改/etc/fstab文件,注释掉带有swap的行。原创 2023-06-24 18:15:00 · 7034 阅读 · 0 评论
分享