![](https://img-blog.csdnimg.cn/87c0f94663924aacabfd3de9c2dc1c94.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Doris
文章平均质量分 82
Doris
优惠券已抵扣
余额抵扣
还需支付
¥19.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
shangjg3
这个作者很懒,什么都没留下…
展开
-
Doris优化总结
而如果范围true,则有可能在这个集合内。load_process_max_memory_limit_percent 默认为 80,表示对 Backend 总内存限制的百分比(总内存限制 mem_limit 默认为 80%,表示对物理内存的百分比)。最终的 Join 结果是一样的,但是它生成的中间结果有 20 倍的差距,这就会产生一个很大的性能 Diff 了。假设有三张表 Join,参考下面这张图,左边是 a 表跟 b 张表先做 Join,中间结果的有 2000 行,然后与 c 表再进行 Join 计算。原创 2023-12-07 03:45:00 · 550 阅读 · 0 评论 -
Doris Hive外表
完成在 Doris 中建立 Hive 外表后,除了无法使用 Doris 中的数据模型(rollup、预聚合、物化视图等)外,与普通的 Doris OLAP 表并无区别。当前默认支持的 Hive 版本为 2.3.7、3.1.2,未在其他版本进行测试。Hive 表 Schema 变更不会自动同步,需要在 Doris 中重建 Hive 外表。支持 Doris 与 Hive 数据源中的表联合查询,进行更加复杂的分析操作。Timestamp 转成 Datetime 会损失精度。列的顺序需要与 Hive 表一致。原创 2023-12-06 11:17:22 · 480 阅读 · 0 评论 -
Doris 集成 ElasticSearch
默认情况下,Doris On ES会从行存也就是_source中获取所需的所有列,_source的存储采用的行式+json的形式存储,在批量读取性能上要劣于列式存储,尤其在只需要少数列的情况下尤为明显,只获取少数列的情况下,docvalue的性能大约是_source性能的十几倍。Doris On ES一个重要的功能就是过滤条件的下推: 过滤条件下推给ES,这样只有真正满足条件的数据才会被返回,能够显著的提高查询性能和降低Doris和Elasticsearch的CPU、memory、IO使用量。原创 2023-12-06 03:45:00 · 348 阅读 · 0 评论 -
Flink 读写Doris
Flink Doris Connector Sink的内部实现是通过 Stream load 服务向Doris写入数据, 同时也支持 Stream load 请求参数的配置设定。Flink Doris Connector 可以支持通过 Flink 操作(读取、插入、修改、删除) Doris 中存储的数据。从而提升Flink侧的并行度,但同时会对Doris造成更大的压力。单次写BE的最大数据量,当每个 batch 中记录的数据量超过该阈值时,会将缓存数据写入 BE。向Doris发送请求的读取超时时间。原创 2023-12-05 03:45:00 · 429 阅读 · 0 评论 -
Spark读写Doris数据
由于Doris底层存储引擎处理逻辑,直接使用时间类型时,覆盖的时间范围无法满足需求。从而提升Spark侧的并行度,但同时会对Doris造成更大的压力。Spark Doris Connector 可以支持通过 Spark 读取 Doris 中存储的数据,也支持通过Spark写入数据到Doris。这种方式是早期写法,Spark无法感知Doris的数据分布,会导致打到Doris的查询压力非常大。过滤读取数据的表达式,此表达式透传给Doris。查询doris的超时时间,默认值为1小时,-1表示无超时限制。原创 2023-12-05 03:45:00 · 378 阅读 · 0 评论 -
Doris数据备份及恢复
Doris 支持将当前数据以文件的形式,通过 broker 备份到远端存储系统中。之后可以通过 恢复 命令,从远端存储系统中将数据恢复到任意 Doris 集群。通过这个功能,Doris 可以支持将数据定期的进行快照备份。也可以通过这个功能,在不同集群间进行数据迁移。该功能需要 Doris 版本 0.8.2+使用该功能,需要部署对应远端存储的 broker。如 BOS、HDFS 等。可以通过 SHOW BROKER;查看当前部署的 broker。1。原创 2023-12-04 04:15:00 · 325 阅读 · 0 评论 -
Doris 数据导出方式总结
(5)如果 Export 作业运行成功,在远端存储中产生的 __doris_export_tmp_xxx 目录,根据远端存储的文件系统语义,可能会保留,也可能会被清除。该查询计划会读取所包含的 Tablet 上的数据,然后通过 Broker 将数据写到远端存储指定的路径中,也可以通过S3协议直接导出到支持S3协议的远端存储上。(4)如果 Export 作业运行失败,在远端存储中产生的 __doris_export_tmp_xxx 临时目录,以及已经生成的文件不会被删除,需要用户手动删除。原创 2023-12-04 03:45:00 · 249 阅读 · 0 评论 -
Doris 数据导入四:Binlog Load 方式
Cluster模式的主从同步中,二进制日志文件(Binlog)记录了主节点上的所有数据变化,数据在Cluster的多个节点间同步、备份都要通过Binlog日志进行,从而提高集群的可用性。(2)client中的receiver将负责通过Get命令接收数据,每获取到一个数据batch,都会由consumer根据对应表分发到不同的channel,每个channel都会为此数据batch产生一个发送数据的子任务Task。当作业发生了错误时,若错误是不可恢复的,状态会变成CANCELLED,否则会变成PAUSED。原创 2023-12-03 04:00:00 · 82 阅读 · 0 评论 -
Doris 数据导入三:Routine Load 方式
如果要使用 Kafka 0.10.0.0 以下版本 (0.9.0, 0.8.2, 0.8.1, 0.8.0),需要修改 be 的配置,将 kafka_broker_version_fallback 的值设置为要兼容的旧版本,或者在创建routine load的时候直接设置 property.broker.version.fallback的值为要兼容的旧版本,使用旧版本的代价是routine load 的部分新特性可能无法使用,如根据时间设置 kafka 分区的 offset。默认是 0,即不允许有错误行。原创 2023-12-03 03:45:00 · 171 阅读 · 0 评论 -
Doris 数据导入二:Stream Load 方式
注意:由于 Stream load 是同步的导入方式,所以并不会在 Doris 系统中记录导入信息,用户无法异步的通过查看导入命令看到 Stream load。待导入表的 Partition 信息,如果待导入数据不属于指定的 Partition 则不会被导入。待导入数据的函数变换配置,目前 Stream load 支持的函数变换方法包含列的顺序变化以及表达式变换,其中表达式变换的方法与查询语句的一致。由于 Stream load 是一种同步的导入方式,所以导入的结果会通过创建导入的返回值直接返回给用户。原创 2023-12-02 04:15:00 · 145 阅读 · 0 评论 -
Doris 数据导入一:Broker Load 方式
数据的合并类型,一共支持三种类型APPEND、DELETE、MERGE 其中,APPEND是默认值,表示这批数据全部需要追加到现有数据中,DELETE 表示删除与这批数据key相同的所有行,MERGE 语义 需要与delete 条件联合使用,表示满足delete 条件的数据按照DELETE 语义处理其余的按照APPEND 语义处理。如果希望撤销某一批导入的数据。在 data_desc 中可以指定待导入表的 partition 信息,如果待导入数据不属于指定的 partition 则不会被导入。原创 2023-12-02 04:00:00 · 149 阅读 · 0 评论 -
Doris 外部表
切记,这里要求所有的BE节点都安装上相同的Driver,并且安装路径相同,同时有相同的be/conf/odbcinst.ini的配置。各大主流数据库都会提供ODBC的访问Driver,用户可以执行参照各数据库官方推荐的方式安装对应的ODBC Driver LiB库。Driver= 这个要根据实际BE安装Driver的路径来填写,本质上就是一个动态库的路径,这里需要保证该动态库的前置依赖都被满足。上述配置[]里的对应的是Driver名,在建立外部表时需要保持外部表的Driver名和配置文件之中的一致。原创 2023-12-01 14:41:34 · 469 阅读 · 0 评论 -
Doris 上卷(Rollup)和前缀索引
底层的数据存储,是按照各自建表语句中,AGGREGATE KEY、UNIQ KEY 和 DUPLICATE KEY 中指定的列进行排序存储的。用户可以在Base表的基础上,创建或删除ROLLUP,但是不能在查询中显式的指定查询某 ROLLUP。查询能否命中ROLLUP的一个必要条件(非充分条件)是,查询所涉及的所有列(包括 select list 和 where 中的查询条件列等)都存在于该ROLLUP的列中。3)当我们的查询条件,是前缀索引的前缀时,可以极大的加快查询速度。原创 2023-12-01 09:26:55 · 494 阅读 · 0 评论 -
Doris的向量化执行引擎
过去 Apache Doris 的 SQL 执行引擎是基于行式内存格式以及基于传统的火山模型进行设计的,在进行 SQL 算子与函数运算时存在非必要的开销,导致 Apache Doris 执行引擎的效率受限,并不适应现代 CPU 的体系结构。向量化执行引擎的目标是替换 Apache Doris 当前的行式 SQL 执行引擎,充分释放现代 CPU 的计算能力,突破在 SQL 执行引擎上的性能限制,发挥出极致的性能表现。开启了向量化执行引擎之后,在SQL的执行计划之中会在SQL算子前添加一个V的标识。原创 2023-11-28 04:00:00 · 157 阅读 · 0 评论 -
Doris物化视图
在Doris中,count(distinct) 聚合的结果和bitmap_union_count聚合的结果是完全一致的。(1)目前支持的聚合函数包括,常用的sum,min,max count,以及计算pv ,uv, 留存率,等常用的去重算法 hll_union,和用于精确去重计算count(distinct)的算法 bitmap_union。物化视图就是包含了查询结果的数据库对象,可能是对远程数据的本地copy,也可能是一个表或多表join后结果的行或列的子集,也可能是聚合后的结果。原创 2023-11-28 03:45:00 · 257 阅读 · 0 评论 -
Doris数据查询
1。原创 2023-11-27 20:01:51 · 145 阅读 · 0 评论 -
Doris的数据模型
即使两行数据完全相同,也都会保留。因为在实现上,我们可以通过如“导入时对行进行计数,保存count的统计信息”,或者在查询时“仅扫描某一列数据,获得count值”的方式,只需很小的开销,即可获得查询结果。也就是说,只要保证导入的数据中,每一行的 Key 都不完全相同,那么即使在聚合模型下,Doris 也可以保存完整的明细数据。因此,当业务上有频繁的count(*) 查询时,我们建议用户通过增加一个值恒为 1 的,聚合类型为SUM的列来模拟count(*)。在聚合模型中,模型对外展现的,是最终聚合后的数据。原创 2023-11-27 20:00:57 · 229 阅读 · 0 评论 -
Doris表的动态分区
动态分区使用过程中,如果因为一些意外情况导致 dynamic_partition.start 和 dynamic_partition.end 之间的某些分区丢失,那么当前时间与 dynamic_partition.end 之间的丢失分区会被重新创建,dynamic_partition.start与当前时间之间的丢失分区不会重新创建。当置为 true 时,Doris 会自动创建所有分区,当期望创建的分区个数大于 max_dynamic_partition_num 值时,操作将被禁止。这两个时间段的分区。原创 2023-11-22 04:00:00 · 773 阅读 · 0 评论 -
Doris的分区表和分桶表
如果指定为 SSD,则数据初始存放在SSD上。如按天分区,当每天的数据量差异很大时,可以通过指定分区的分桶数,合理划分不同分区的数据,分桶列建议选择区分度大的列。此时,当多个点查询并发时,这些查询有较大的概率分别触发不同的分桶扫描,各个查询之间的IO影响较小(尤其当不同桶分布在不同磁盘上时),所以这种方式适合高并发的点查询场景。如果一个查询条件不包含所有分桶列的等值条件,那么该查询会触发所有分桶同时扫描,这样查询的吞吐会增加,单个查询的延迟随之降低。下面通过示例说明,进行分区的增删操作时,分区的变化。原创 2023-11-22 03:45:00 · 432 阅读 · 0 评论 -
Doris DDL和DML
1。原创 2023-11-21 14:24:50 · 218 阅读 · 0 评论 -
doris分析英国房产数据集
准备数据。原创 2023-08-31 16:32:21 · 86 阅读 · 0 评论 -
Doris 1.1.5 离线安装
jdk安装配置环境变量。原创 2023-08-07 09:26:42 · 150 阅读 · 0 评论