问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Apache Doris设计思想介绍与应用场景

创作时间:
作者:
@小白创作中心

Apache Doris设计思想介绍与应用场景

引用
1
来源
1.
https://www.cnblogs.com/wintersun/p/18355883

Apache Doris是一个现代化的MPP(大规模并行处理)数据库,主要用于实时分析和报表查询。它采用了分布式存储和计算架构,数据分片是其核心机制之一。Doris 主要解决 PB 级别的数据量(如果高于 PB 级别,不推荐使用 Doris 解决,可以考虑用 Hive 等工具),解决结构化数据,查询时间一般在秒级或毫秒级。

MPP数据库的主要特点

  1. 分布式架构:MPP数据库通过将数据和处理任务分散到多个节点上,实现水平扩展,能够高效处理大量数据。
  2. 无共享架构:每个节点独立运行,拥有自己的资源,这增强了系统的可靠性和容错能力。
  3. 并行查询处理:可以在多个节点上并行执行查询,显著提高了性能。
  4. 数据分区:将数据划分为小块,每个节点负责特定部分,便于高效处理。
  5. 高性能计算:针对复杂分析和数据仓库进行了优化,支持并行处理和高效的存储引擎。
  6. 可扩展性:通过增加节点,可以轻松扩展以应对不断增长的数据量和用户需求。
  7. 高可用性:采用冗余和复制机制,确保系统始终可用,减少停机时间。
  8. 支持复杂查询:能够高效处理涉及多表连接、子查询和聚合的复杂查询。
  9. 列存储:许多MPP数据库使用列式存储,提升分析工作负载的性能。
  10. 与分析工具集成:与各种分析框架和商业智能平台兼容,便于数据驱动的决策。

Apache Doris的核心功能

  • 高效的数据传输机制:为了应对大规模数据读取和传输的需求,Doris 支持 Arrow Flight SQL 协议,这一协议能够显著提高数据传输效率,实现百倍飞跃。
  • 冷热数据分层功能:在 Doris 2.0 版本中引入了冷热数据分层功能,可以将冷数据下沉到成本更低的对象存储中,同时减少因存储附加带来的开销。
  • 易用性和运维成本低:Doris 设计上注重用户体验,具有极速易用的特点,仅需亚秒级响应时间即可返回查询结果。此外,它还具备较低的运维成本和使用成本。

应用场景

  • 报表分析:Doris 可以快速生成各种报表,适用于企业的经营分析决策、日志分析、用户行为洞察等场景。
  • 即席查询:由于其高效的查询性能,Doris 也适用于需要即席查询的场景,比如临时的数据分析需求。
  • 统一数仓构建:Doris 可以作为企业统一数仓的核心组件,支持复杂的查询和数据整合需求。
  • 数据湖联邦查询加速:Doris 支持与位于 Apache Hive、Apache Iceberg 等平台的外部表联合查询,加速数据湖中的联邦查询。
  • 用户行为分析和 AB 实验平台:用户可以基于 Doris 构建用户行为分析系统和 AB 实验平台,以优化产品和服务。
  • 实时数据分析:Doris 在实时数据分析领域表现优异,适用于需要实时处理和分析大量数据的业务场景。

存算分离的架构优势

  1. 性能优化:将存储和计算分开,可以针对不同的需求优化各自的资源。例如,存储可以使用高效的列式存储格式,而计算节点则可以专注于执行复杂的查询。
  2. 灵活性与可扩展性:存算分离允许独立扩展存储和计算资源。当需要处理更多数据时,可以单独增加存储节点;当需要更强的计算能力时,可以增加计算节点。
  3. 资源利用率提升:存算分离使得计算资源可以根据需求动态调整,避免了资源的浪费。例如,计算负载较高时,可以临时增加计算节点,而不必同时增加存储节点。
  4. 简化维护:存储和计算的分离可以简化系统的维护和管理。可以独立更新或优化存储层和计算层,而不影响整体系统的运行。
  5. 支持多种数据访问模式:存算分离能够支持不同的数据访问场景,如批处理和实时分析,使得数据处理更加灵活。
  6. 降低成本:通过灵活配置存储和计算资源,企业可以根据实际需求选择合适的硬件和服务,降低整体运营成本。

Apache Doris的MetaService设计思想

  1. 集中管理:MetaService负责管理和维护整个集群的元数据,包括数据库、表、分区等信息,提供集中化的管理方式,确保元数据的一致性和可靠性。
  2. 高可用性:通过引入主从复制机制,MetaService能够在主节点故障时迅速切换到备用节点,确保系统的高可用性,减少单点故障的风险。
  3. 实时更新:MetaService支持元数据的实时更新和快速读取,能够快速响应系统中的变化,保证数据的及时性和准确性。
  4. 分布式架构:MetaService设计为分布式架构,可以横向扩展,以适应大规模集群的需求,提升系统的整体性能和扩展性。
  5. 高性能:通过优化元数据的存储和访问方式,MetaService能够提供高效的元数据查询性能,支持快速的元数据操作。
  6. 灵活的事务处理:支持ACID事务,确保元数据操作的原子性和一致性,避免因并发操作导致的数据不一致。
  7. 多种数据源支持:MetaService能够与多种类型的数据源协同工作,便于集成和扩展。

Apache Doris在日志存储与分析领域的实践指南

  1. 整体架构
  • 日志采集和预处理:通过HTTP APIs,多种日志采集工具如Logstash、Filebeat等将日志数据写入Apache Doris。
  • 日志存储和分析引擎:Apache Doris提供高性能、低成本的统一日志存储,并通过SQL接口提供丰富的检索分析能力。
  • 日志分析和告警界面:支持通过标准SQL接口查询Apache Doris,提供简单易用的界面,如Grafana、Superset等。
  1. 特点与优势
  • 高吞吐、低延迟:支持每天百TB级、GB/s级日志数据持续稳定写入,延迟保持在1s以内。
  • 低成本存储:支持PB级海量存储,相比Elasticsearch节省60%到80%的存储成本,冷数据存储到S3/HDFS可再降50%成本。
  • 高性能检索分析:支持倒排索引和全文检索,常见查询秒级响应。
  • 开放易用生态:上游对接Logstash、Filebeat等,下游对接Grafana、Superset等,兼容MySQL协议和语法。
  1. 高性能、低成本实现
  • 写入吞吐提升:利用SIMD等CPU向量化指令提升JSON数据解析速度和索引构建性能,写入性能是Elasticsearch的3~5倍。
  • 存储成本降低:去掉正排索引,采用列式存储和Zstandard压缩算法,压缩比高达5~10倍,冷热分层功能进一步降低存储成本。
  • 查询性能提升:简化全文检索流程,针对日志场景常见查询做专门优化,如TopN动态剪枝。
  1. 分析能力强
  • 标准SQL支持:兼容MySQL协议和语法,支持检索、聚合、多表JOIN等多种数据分析能力。
  • Flexible Schema:支持动态字段增减和索引调整,适应日志数据的迭代变化。

Apache Doris开源项目的目录结构

Apache Doris开源项目的目录结构通常包括以下主要部分:

  1. be/(Backend)
  • 存放后端代码,包括存储引擎、查询处理等核心功能。包括数据解析、执行计划、存储格式等模块。
  1. fe/(Frontend)
  • 包含前端服务的代码,负责用户接口和SQL解析。处理用户请求、SQL编译和查询优化。
  1. docs/
  • 包含项目的文档,包括用户手册、开发指南和API文档。
  1. tests/
  • 包含单元测试和集成测试的代码,确保代码质量。分为不同的测试模块,便于管理和扩展。
  1. tools/
  • 存放各种工具和脚本,用于构建、部署和管理Doris。包括数据导入导出工具、监控工具等。
  1. conf/
  • 包含配置文件和示例,帮助用户进行系统配置。
  1. examples/
  • 提供示例代码和用例,帮助用户快速上手使用Doris。

结论

Apache Doris凭借其高性能、易用性和实时分析能力,成为多种数据分析场景的理想选择。无论是在商业智能、实时数据分析还是数据集成方面,Doris都能提供强大的支持,为企业决策提供数据驱动的洞察。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号