首页 > 其他分享 >doris实践——Compaction 策略

doris实践——Compaction 策略

时间:2024-09-11 20:24:35浏览次数:14  
标签:策略 series 模型 实践 compaction time 主键 doris Compaction

1.基本概念

Doris的Compaction 策略决定什么时候将哪些小文件合并成大文件。适当的调整 Compaction 的策略,可以极大地提升导入效率和查询效率。Doris 当前提供了 2种 compaction 策略,通过表属性的 compaction_policy 参数指定。

①size_based compaction 策略:默认策略,对大多数场景适用。
("compaction_policy" = "size_based")
②time_series compaction 策略:是为日志、时序等场景优化的策略。它利用时序数据具有时间局部性的特点,将相邻时间写入的小文件合并成大文件,每个文件只会参与一次 compaction 就合并成比较大的文件,减少反复 compaction 带来的写放大。
("compaction_policy" = "time_series")

2.使用实践

默认策略就不说了,主要是time_series compaction 策略针对主键模型和聚合模型使用。我们分别将个别主键模型和清洗日志的聚合模型的Compaction 策略调整为time_series。
起初可以看到Compaction Score 有明显的下降。但是随着时间越来越长。大概在一周后,我们发现主键模型的查询效率越来越低,清洗日志的聚合模型几乎没有影响

3.分析总结

①分析

为什么主键模型查询效率越来越低呢?基于time_series compaction 策略的基本概念,它将相邻时间写入的小文件合并成大文件,每个文件只会参与一次 compaction。在主键模型使用time_series策略的时候,每个文件只会参与一次 compaction,那么同一个主键的数据会compaction到多个文件,无法真正merge。时间越长,版本就越多,查询效率越来越低。
日志聚合模型为什么没有影响呢?因为日志聚合模型的主键和时间相关,并且日志聚合模型同一天的数据不会重复出现。所以日志聚合模型的版本不会有太大影响。

②总结

Doris的time_series compaction 策略只适用于日志实时消费的模型,不要轻易使用,特别是需要覆盖属性的主键模型不能使用time_series compaction 策略。

标签:策略,series,模型,实践,compaction,time,主键,doris,Compaction
From: https://blog.csdn.net/weixin_71195617/article/details/142053705

相关文章

  • 【项目实践】CompletableFuture异步编排在多任务并行执行中的使用
    【项目实践】CompletableFuture异步编排在多任务并行执行中的使用一、单次请求处理多任务的场景        在实际项目中,我们经常会遇到一些比较复杂的查询,需要给前端响应一个内容量较大的响应结果。例如在租房系统的app中,点击具体的某个房间查看详情,需要后端将这个房间的......
  • 什么是软件公司的数字化实践?
    目录一、什么是数字化实践?二、什么是软件公司的数字化实践?  三、数字化实践的效果评估一、什么是数字化实践?        数字化实践是指企业或组织在业务运营和管理过程中,通过采用数字技术和工具,对业务流程、客户体验、产品服务、组织结构等方面进行创新和优化的......
  • Websocket防护的重要性及应对策略:快快网络专家团队的创新实践
    WebSocket(WSS)因其双向和全双工通信的特点,在现代网络通信中得到广泛应用,尤其是在需要低延迟和实时数据交互的场景中。然而,随着WebSocket的普及,其安全性问题也日益凸显,各种针对WSS的攻击手段层出不穷,给企业的数据安全带来了严峻的挑战。针对WSS的攻击具有多样性和隐蔽性。其中,最......
  • 前端权限开发——设计到实践(保姆级)
    主要思想:基于角色的访问控制(Role-BasedAccessControl,RBAC)可以結合roleX框架学习RoleX是一种基于角色的访问控制(RBAC)框架,它提供了一种灵活、可扩展的方式来管理用户对系统资源的访问权限。RoleX的架构和原理如下:1.角色模型:RoleX的核心是一个角色模型,它定义了角色、权......
  • 《JavaEE进阶》----14.<SpringMVC配置文件实践之【验证码项目】>
    本篇博客介绍的是Google的开源项目Kaptcha来实现的验证码。这种是最简单的验证码。也是很常见的一种验证码。可以去看项目结果展示。就可以明白这个项目了。前言:随着安全性的要求越来越高、很多项目都使用了验证码。如今验证码的形式也是有许许多多、更复杂的图形验证码......
  • Java服务端中的数据验证:使用Bean Validation与Spring Validator的最佳实践
    Java服务端中的数据验证:使用BeanValidation与SpringValidator的最佳实践大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在Java服务端开发中,数据验证是确保应用数据准确性和可靠性的关键步骤。本文将探讨BeanValidation和SpringValidator这两种数......
  • Java中的安全编码实践:如何防止SQL注入与XSS攻击
    Java中的安全编码实践:如何防止SQL注入与XSS攻击大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在Java开发中,安全编码是确保应用程序免受攻击的关键因素。SQL注入和跨站脚本攻击(XSS)是最常见的安全漏洞之一。本文将介绍如何在Java中防止这两种攻击,并提......
  • 《技术规划与路标开发实践》(深圳2024年10月11-12日)
    【课程背景】技术规划流程TPP(TechnologyPlanningProcess),就是根据业务和市场目标进行所需技术的识别和分析,并给出相应的策略的过程。技术规划的根本目标是让产品在市场竞争中取得成功。技术规划给出如何通过技术领先在未来的产品和服务的市场竞争中赢得先机或占据有利态势战略和......
  • 使用线性规划优化库存管理:理论与实践应用1——基础版
    目录写在开头1.场景背景2.问题描述3.模型设定3.1需求预测和现有库存3.2补货和存储成本3.3仓库容量限制3.4安全库存要求3.5目标4.目标函数与约束条件4.1目标函数4.2约束条件5.Python实现5.1Python代码5.2整体思路介绍5.3输出结果6.模型的扩展性6.1多......
  • 日志与追踪的完美融合:OpenTelemetry MDC 实践指南
    前言在前面两篇实战文章中:OpenTelemetry实战:从零实现分布式链路追踪OpenTelemetry实战:从零实现应用指标监控覆盖了可观测中的指标追踪和metrics监控,下面理应开始第三部分:日志。但在开始日志之前还是要先将链路追踪和日志结合起来看看应用实际使用的实践。通常我们排查......