带你读《Apache Doris 案例集》——07查询平均提速700% ,奇安信基于 Apache Doris 升级日志安全分析系统(2)

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 Tair(兼容Redis),内存型 2GB
简介: 带你读《Apache Doris 案例集》——07查询平均提速700% ,奇安信基于 Apache Doris 升级日志安全分析系统(2)

更多精彩内容,欢迎观看:

带你读《Apache Doris 案例集》——07查询平均提速700% ,奇安信基于 Apache   Doris 升级日志安全分析系统(1):https://developer.aliyun.com/article/1405710


存储成本降低近40%

 

在看到写入性能的大幅提升后,Apache Doris存储空间占用也给我们带来了惊喜。在开启倒排索引的前提下,存储空间比原系统不具备倒排索引还要略低,压缩比从1:4.3提高至1:5.7

 

通过对比 Apache Doris 在磁盘上存储的文件大小,同一份数据的索引文件(.idx)与数据文件(.dat)大小相差无几。换言而之,增加索引后Doris数据膨胀率大约在1倍左右,与许多数据库和检索引擎3-5倍的膨胀率相比, Doris 的数据存储空间占用相对较低。经过研究发现,ApacheDoris 采用了列式存储和ZSTD 压缩算法来优化存储空间占用。Doris 将原始数据和倒排索引都以列的形式存储,使同一列的数据被存储在相邻位置,从而实现了更高的压缩率。


ZSTD 是一个优秀的新型压缩算法,使用了智能优化算法,相较于常见的 GZIP 算法, ZSTD 

有更高的压缩率更和更快的压缩解压速度,尤其在处理日志场景时表现非常出色。

 

查询性能平均提升690%

 

对于业务最关注的查询性能,我们从线上查询日志进行去重后分析出79SQL,在同一天总数(1000亿条) 、同样规模的集群(10BE 节点)上对比测试Apache Doris与原系统的查询耗时。 

 

我们发现,与原系统相比,所有的查询语句均有明显提升,整体查询性能提升近7倍,有26SQL查询语句性能提升10倍以上,8SQL 查询提升10-20倍、14SQL 查询提升20-50倍、还有4SQL 查询提升50倍以上。最大差异的一条SQL 查询语句为Q43,在原系统中执行时间接近一分钟,在Apache Doris 中仅需不到1秒,其性能差异高达到88倍。 

 image.png 

 针对性能提升幅度高的查询,我们进行了对比分析并发现了其中几个共同点:

1.倒排索引对关键词查找的加速: Q23、Q24Q30Q31Q42Q43Q50 

  - - 例 如q43  提升88.2倍
   SELECT         count()from        table2
   WHERE(event_time     >=1693065600000    and     event_time    <1693152000000)
      AND(rule_hit_big                                MATCH'xxxx');

倒排索引的原理是在数据写入时将每一行文本切分成单词,并在索引中记录每个单词在哪些行出 现过,例如下图中的"machine"  在第127201 行出现过,当需要检索包含某个词的数据时,只需要在索引中查这个词在哪些行出现,将对应行号的数据读取出来即可。

 

这种基于倒排索引进行关键词检索的技术,相较于基本的暴力扫描后进行文本匹配具有显著的优势, 一方面极大地减少了需要读取的数据量;另一方面,在查询过程中无需进行文本匹配操作,因此查询效率往往提升一个数量级甚至更高。

image.png

 

2.NGram   BloomFilter索引对LIKE的加速:Q75、Q76、Q77、Q78  

- - 例 如q75  提升44 .  4倍
     SELECT     *FROM     tablel
     WHERE     ent_id                     ='xxxxx'
         AND  event_date  ='2023-08-27'
         AND file_level =70
         AND    rule_group_id    LIKE   'adid:%'
    ORDER       BY       event_time       LIMIT       100;

 对于要查找的非一个完整关键词的场景, LIKE 仍然是有用的查询方式, Apache Doris NGram BloomFilter 索引能对常规的 LIKE 进行加速。

 

 

NGram    BloomFilter 索引与普通 BloomFilter   索引不同,它不是将整个文本放入 BloomFilter, 而是将文本分成连续的子串,每个子串长度为 n,并将他们放入 NGram BloomFilter 中。对于cola   LIKE  '%pattern%'的查询,将'pattern     ' 按照同样的方式分成长度为 n的子串,判断每个子串在中是否存在,如果有一个子串不存在,则说明 BloomFilter   对应的数据块中没有跟'pattern '匹配的数据块,因此通过跳过数据块扫描的步骤,达到加速查询的效果。

 

3.满足条件的最新TopN  条日志明细查询优化:Q19-Q29    

 

- - 例 如q22,  提升50 .3倍
    SELECT       *FROM       table1
     where      event_date      ='2023-08-27'and      file_level      =70
        and      ent_id      ='nnnnnnn'and      file_name      ='xxx.exe'
     order  by  event_time  limit   100;

 这种 SELECT*FROM t WHERE xxx ORDER BY xx LIMITn  的查询,在查找满足某种条件的最新n 条日志时使用频率非常高,ApacheDoris 针对这种 SQL 查询模式进行了专门的优化,根据查询的中间状态确定排序字段的动态范围,并利用自动动态谓词下推的方式,避免读全部数据进行排序取TopN,从而减少需要读取的数据量(有时甚至可以减少一个数量级),进而提升了查询效率。

 

可视化运维管控和可视化查询WebUl,   最大化减少运维和探索分析成本

 为了提高日常集群维护效率,我们使用了飞轮科技免费开放的可视化集群管理工具Cluster ManagerforApacheDoris   (以下简称 Doris   Manager)Doris  Manager提供的功能可以满足日常运维中集群监控、巡检、修改配置、扩缩容、升级等操作,降低登陆机器手动操作的麻烦和误操作风险。

 

image.png

 

除了管控ApacheDoris集群之后Doris  Manager还集成了类似Kibana的可视化日志探索分

WebUl,  对于习惯 ELK 日志分析的用户非常友好,支持关键词检索、趋势图展示、趋势图拖

拽日期范围、明细日志平铺和折叠展示、字段值过滤等交互方便的探索式分析,跟日志场景探索

下钻的分析需求很契合。

 image.png

 

总结与规划 

 

在跟随Apache Doris  2.0-alpha,2.0-beta,2.0正式版本发布的节奏,我们根据业务场景进行了详细的评测,也为社区反馈了不少优化建议,得到社区的积极响应和解决。系统经历试运行一个月之后,我们将2.0.1版本正式用于生产环境,替换了原系统集群,完成架构升级改造,实现了写入性能、查询性能、存储成本、运维成本等多方面收益:

 

写入性能提升3倍以上:目前,奇安信日志分析平台每日平均有数千亿的新增安全日志数据,通过 Doris  Routine  Load   将数据实时稳定写入库,保障数据低延迟高吞吐写入。

 

查询性能平均提升7倍:查询响应时间大幅减少,与之前的查询效率相比达到平均7倍提升,其中业务特别关注的全文检索速度达到20倍以上的提升,助力日志分析与网络安全运营效率。 

 

●高效便捷的可视化管理:Cluster Managerfor Apache Doris工具提供了可视化集群监控告警平台,满足日常集群监控等一系列操作,同时WebUl  多种功能为分析人员提供了操作简 单、使用便捷的交互式分析。总而言之, Doris 的易用性、灵活性大幅降低了开发、运维、分析人员的学习与使用成本。 

 

后续我们还将在日志分析场景下探索更多Apache  Doris 的能力。我们将扩大 JSON  数据类型的 相关应用,加强系统对于半结构化数据深度分析的能力。同时,我们也非常期待 Apache    Doris 2.1版本中新增的 Variant 可变数据类型,支持存储任意结构的JSON  数据,支持字段个数与类型的变化,让业务人员灵活定义特殊字符,以更好地实现半结构数据Schema  Free分析需求。


非常感谢SelectDB 团队一直以来对我们的技术支持,助力奇安信走向体系化防御、数字化运的网络日志安全管理,帮助客户准确识别、保护和监管网络设备与各类系统,确保业务人员在任何时候都能够安全、可信、稳定地访问数据与业务。

 

最后,我们也将持续参与到 Apache Doris 社区建设中,将相关成果贡献回馈社区,希望

Apache  Doris飞速发展,越来越好!

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
21天前
|
Prometheus 监控 Cloud Native
基于docker搭建监控系统&日志收集
Prometheus 是一款由 SoundCloud 开发的开源监控报警系统及时序数据库(TSDB),支持多维数据模型和灵活查询语言,适用于大规模集群监控。它通过 HTTP 拉取数据,支持服务发现、多种图表展示(如 Grafana),并可结合 Loki 实现日志聚合。本文介绍其架构、部署及与 Docker 集成的监控方案。
230 122
基于docker搭建监控系统&日志收集
WGLOG日志管理系统是怎么收集日志的
WGLOG通过部署Agent客户端采集日志,Agent持续收集指定日志文件并上报Server,Server负责展示与分析。Agent与Server需保持相同版本。官网下载地址:www.wgstart.com
|
3月前
|
监控 API 开发工具
HarmonyOS Next的HiLog日志系统完全指南:从入门到精通
本文深入解析HarmonyOS Next的HiLog日志系统,涵盖日志级别、核心API、隐私保护与高级回调功能,助你从入门到精通掌握这一重要开发工具。
206 1
|
10天前
|
Ubuntu
在Ubuntu系统上设置syslog日志轮替与大小限制
请注意,在修改任何系统级别配置之前,请务必备份相应得原始档案并理解每项变更可能带来得影响。
51 2
|
2月前
|
存储
WGLOG日志管理系统可以采集网络设备的日志吗
WGLOG日志审计系统提供开放接口,支持外部获取日志内容后发送至该接口,实现日志的存储与分析。详情请访问:https://www.wgstart.com/wglog/docs9.html
|
3月前
|
人工智能 运维 监控
Aipy实战:分析apache2日志中的网站攻击痕迹
Apache2日志系统灵活且信息全面,但安全分析、实时分析和合规性审计存在较高技术门槛。为降低难度,可借助AI工具如aipy高效分析日志,快速发现攻击痕迹并提供反制措施。通过结合AI与学习技术知识,新手运维人员能更轻松掌握复杂日志分析任务,提升工作效率与技能水平。
|
5月前
|
监控 安全 BI
优化 Apache 日志记录的 5 个最佳实践
Apache 日志记录对于维护系统运行状况和网络安全至关重要,其核心包括访问日志与错误日志的管理。通过制定合理的日志策略,如选择合适的日志格式、利用条件日志减少冗余、优化日志级别、使用取证模块提升安全性及实施日志轮换,可有效提高日志可用性并降低系统负担。此外,借助 Eventlog Analyzer 等专业工具,能够实现日志的高效收集、可视化分析与威胁检测,从而精准定位安全隐患、评估服务器性能,并满足合规需求,为强化网络安全提供有力支持。
134 0
优化 Apache 日志记录的 5 个最佳实践
|
17天前
|
人工智能 运维 Java
Flink Agents:基于Apache Flink的事件驱动AI智能体框架
本文基于Apache Flink PMC成员宋辛童在Community Over Code Asia 2025的演讲,深入解析Flink Agents项目的技术背景、架构设计与应用场景。该项目聚焦事件驱动型AI智能体,结合Flink的实时处理能力,推动AI在工业场景中的工程化落地,涵盖智能运维、直播分析等典型应用,展现其在AI发展第四层次——智能体AI中的重要意义。
249 22
Flink Agents:基于Apache Flink的事件驱动AI智能体框架
|
9月前
|
存储 人工智能 大数据
The Past, Present and Future of Apache Flink
本文整理自阿里云开源大数据负责人王峰(莫问)在 Flink Forward Asia 2024 上海站主论坛开场的分享,今年正值 Flink 开源项目诞生的第 10 周年,借此时机,王峰回顾了 Flink 在过去 10 年的发展历程以及 Flink社区当前最新的技术成果,最后展望下一个十年 Flink 路向何方。
682 33
The Past, Present and Future of Apache Flink

推荐镜像

更多