Apache Doris设计思想介绍与应用场景
创作时间:
作者:
@小白创作中心
Apache Doris设计思想介绍与应用场景
引用
1
来源
1.
https://www.cnblogs.com/wintersun/p/18355883
Apache Doris是一个现代化的MPP(大规模并行处理)数据库,主要用于实时分析和报表查询。它采用了分布式存储和计算架构,数据分片是其核心机制之一。Doris 主要解决 PB 级别的数据量(如果高于 PB 级别,不推荐使用 Doris 解决,可以考虑用 Hive 等工具),解决结构化数据,查询时间一般在秒级或毫秒级。
MPP数据库的主要特点
- 分布式架构:MPP数据库通过将数据和处理任务分散到多个节点上,实现水平扩展,能够高效处理大量数据。
- 无共享架构:每个节点独立运行,拥有自己的资源,这增强了系统的可靠性和容错能力。
- 并行查询处理:可以在多个节点上并行执行查询,显著提高了性能。
- 数据分区:将数据划分为小块,每个节点负责特定部分,便于高效处理。
- 高性能计算:针对复杂分析和数据仓库进行了优化,支持并行处理和高效的存储引擎。
- 可扩展性:通过增加节点,可以轻松扩展以应对不断增长的数据量和用户需求。
- 高可用性:采用冗余和复制机制,确保系统始终可用,减少停机时间。
- 支持复杂查询:能够高效处理涉及多表连接、子查询和聚合的复杂查询。
- 列存储:许多MPP数据库使用列式存储,提升分析工作负载的性能。
- 与分析工具集成:与各种分析框架和商业智能平台兼容,便于数据驱动的决策。
Apache Doris的核心功能
- 高效的数据传输机制:为了应对大规模数据读取和传输的需求,Doris 支持 Arrow Flight SQL 协议,这一协议能够显著提高数据传输效率,实现百倍飞跃。
- 冷热数据分层功能:在 Doris 2.0 版本中引入了冷热数据分层功能,可以将冷数据下沉到成本更低的对象存储中,同时减少因存储附加带来的开销。
- 易用性和运维成本低:Doris 设计上注重用户体验,具有极速易用的特点,仅需亚秒级响应时间即可返回查询结果。此外,它还具备较低的运维成本和使用成本。
应用场景
- 报表分析:Doris 可以快速生成各种报表,适用于企业的经营分析决策、日志分析、用户行为洞察等场景。
- 即席查询:由于其高效的查询性能,Doris 也适用于需要即席查询的场景,比如临时的数据分析需求。
- 统一数仓构建:Doris 可以作为企业统一数仓的核心组件,支持复杂的查询和数据整合需求。
- 数据湖联邦查询加速:Doris 支持与位于 Apache Hive、Apache Iceberg 等平台的外部表联合查询,加速数据湖中的联邦查询。
- 用户行为分析和 AB 实验平台:用户可以基于 Doris 构建用户行为分析系统和 AB 实验平台,以优化产品和服务。
- 实时数据分析:Doris 在实时数据分析领域表现优异,适用于需要实时处理和分析大量数据的业务场景。
存算分离的架构优势
- 性能优化:将存储和计算分开,可以针对不同的需求优化各自的资源。例如,存储可以使用高效的列式存储格式,而计算节点则可以专注于执行复杂的查询。
- 灵活性与可扩展性:存算分离允许独立扩展存储和计算资源。当需要处理更多数据时,可以单独增加存储节点;当需要更强的计算能力时,可以增加计算节点。
- 资源利用率提升:存算分离使得计算资源可以根据需求动态调整,避免了资源的浪费。例如,计算负载较高时,可以临时增加计算节点,而不必同时增加存储节点。
- 简化维护:存储和计算的分离可以简化系统的维护和管理。可以独立更新或优化存储层和计算层,而不影响整体系统的运行。
- 支持多种数据访问模式:存算分离能够支持不同的数据访问场景,如批处理和实时分析,使得数据处理更加灵活。
- 降低成本:通过灵活配置存储和计算资源,企业可以根据实际需求选择合适的硬件和服务,降低整体运营成本。
Apache Doris的MetaService设计思想
- 集中管理:MetaService负责管理和维护整个集群的元数据,包括数据库、表、分区等信息,提供集中化的管理方式,确保元数据的一致性和可靠性。
- 高可用性:通过引入主从复制机制,MetaService能够在主节点故障时迅速切换到备用节点,确保系统的高可用性,减少单点故障的风险。
- 实时更新:MetaService支持元数据的实时更新和快速读取,能够快速响应系统中的变化,保证数据的及时性和准确性。
- 分布式架构:MetaService设计为分布式架构,可以横向扩展,以适应大规模集群的需求,提升系统的整体性能和扩展性。
- 高性能:通过优化元数据的存储和访问方式,MetaService能够提供高效的元数据查询性能,支持快速的元数据操作。
- 灵活的事务处理:支持ACID事务,确保元数据操作的原子性和一致性,避免因并发操作导致的数据不一致。
- 多种数据源支持:MetaService能够与多种类型的数据源协同工作,便于集成和扩展。
Apache Doris在日志存储与分析领域的实践指南
- 整体架构
- 日志采集和预处理:通过HTTP APIs,多种日志采集工具如Logstash、Filebeat等将日志数据写入Apache Doris。
- 日志存储和分析引擎:Apache Doris提供高性能、低成本的统一日志存储,并通过SQL接口提供丰富的检索分析能力。
- 日志分析和告警界面:支持通过标准SQL接口查询Apache Doris,提供简单易用的界面,如Grafana、Superset等。
- 特点与优势
- 高吞吐、低延迟:支持每天百TB级、GB/s级日志数据持续稳定写入,延迟保持在1s以内。
- 低成本存储:支持PB级海量存储,相比Elasticsearch节省60%到80%的存储成本,冷数据存储到S3/HDFS可再降50%成本。
- 高性能检索分析:支持倒排索引和全文检索,常见查询秒级响应。
- 开放易用生态:上游对接Logstash、Filebeat等,下游对接Grafana、Superset等,兼容MySQL协议和语法。
- 高性能、低成本实现
- 写入吞吐提升:利用SIMD等CPU向量化指令提升JSON数据解析速度和索引构建性能,写入性能是Elasticsearch的3~5倍。
- 存储成本降低:去掉正排索引,采用列式存储和Zstandard压缩算法,压缩比高达5~10倍,冷热分层功能进一步降低存储成本。
- 查询性能提升:简化全文检索流程,针对日志场景常见查询做专门优化,如TopN动态剪枝。
- 分析能力强
- 标准SQL支持:兼容MySQL协议和语法,支持检索、聚合、多表JOIN等多种数据分析能力。
- Flexible Schema:支持动态字段增减和索引调整,适应日志数据的迭代变化。
Apache Doris开源项目的目录结构
Apache Doris开源项目的目录结构通常包括以下主要部分:
- be/(Backend)
- 存放后端代码,包括存储引擎、查询处理等核心功能。包括数据解析、执行计划、存储格式等模块。
- fe/(Frontend)
- 包含前端服务的代码,负责用户接口和SQL解析。处理用户请求、SQL编译和查询优化。
- docs/
- 包含项目的文档,包括用户手册、开发指南和API文档。
- tests/
- 包含单元测试和集成测试的代码,确保代码质量。分为不同的测试模块,便于管理和扩展。
- tools/
- 存放各种工具和脚本,用于构建、部署和管理Doris。包括数据导入导出工具、监控工具等。
- conf/
- 包含配置文件和示例,帮助用户进行系统配置。
- examples/
- 提供示例代码和用例,帮助用户快速上手使用Doris。
结论
Apache Doris凭借其高性能、易用性和实时分析能力,成为多种数据分析场景的理想选择。无论是在商业智能、实时数据分析还是数据集成方面,Doris都能提供强大的支持,为企业决策提供数据驱动的洞察。
热门推荐
复合肥的正确用法,可在种植前或作物生长期使用
想生发吃什么?10种生发食物推荐:鸡蛋、草莓等助你头发快速生长
水葫芦的治理措施以及注意事项
肺腺癌微浸润是什么意思?能做手术吗?
C语言变量类型声明完全指南:从基础到进阶
太平公主的婚姻生活:究竟有过几任丈夫?
沉默的西方:探究沉默在西方文化中的代表与影响
C语言default关键字详解:定义、使用场景及最佳实践
1.95%的债市可能易上难下
怠速10小时开空调对车的危害
硬膜下血肿术后护理诊断及措施
创新设计:玻璃钢天线罩提升信号传输效果
治水名人故事 | 林则徐:大规模疏浚江苏河流
月季花怎么养才能更旺盛
如何在Windows 11中查找产品密钥?这里提供两种办法
想知道肝脏好不好,记住这四项检查
才情与柔弱并存:探秘林黛玉性格的复杂与魅力
PCI医学上是什么意思
心肌梗死各期心电图特点详解
耳机音质由哪些参数决定?
用Excel计算相差天数的多种方法
沈阳理工大学到合作区开展访企拓岗活动
紫苏:解鱼蟹毒的神奇植物
零信任之父亲述:零信任架构的前世今生与未来展望
生育保险的定义是什么?
免疫共沉淀(Co-IP)技术详解:原理、操作及优化策略
商铺租赁合同怎么谈?这份实用指南请收好
助学贷款是助学金吗 二者有何不同
唏嘘!一代球王桃田贤斗落泪退役:未竟的辉煌与遗憾!
合同到期不续签和辞退赔偿是否一样