首页 > 其他分享 >Apache Doris设计思想介绍与应用场景

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

时间:2024-08-12 22:49:30浏览次数:6  
标签:FoundationDB 存储 场景 查询 Apache 数据 节点 Doris

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

    MPP ( Massively Parallel Processing ),即大规模并行处理,在数据库非共享集群中,每个节点都有独立的磁盘存储系统和内存系统,业务数据根据数据库模型和应用特点划分到各个节点上,每台数据节点通过专用网络或者商业通用网络互相连接,彼此协同计算,作为整体提供数据库服务。非共享数据库集群有完全的可伸缩性、高可用、高性能、优秀的性价比、资源共享等优势。简单来说,MPP 是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果 ( 与 Hadoop 相似 )。

MPP数据库的主要特点
  1. 分布式架构:MPP数据库通过将数据和处理任务分散到多个节点上,实现水平扩展,能够高效处理大量数据。

  2. 无共享架构:每个节点独立运行,拥有自己的资源,这增强了系统的可靠性和容错能力。

  3. 并行查询处理:可以在多个节点上并行执行查询,显著提高了性能。

  4. 数据分区:将数据划分为小块,每个节点负责特定部分,便于高效处理。

  5. 高性能计算:针对复杂分析和数据仓库进行了优化,支持并行处理和高效的存储引擎。

  6. 可扩展性:通过增加节点,可以轻松扩展以应对不断增长的数据量和用户需求。

  7. 高可用性:采用冗余和复制机制,确保系统始终可用,减少停机时间。

  8. 支持复杂查询:能够高效处理涉及多表连接、子查询和聚合的复杂查询。

  9. 列存储:许多MPP数据库使用列式存储,提升分析工作负载的性能。

  10. 与分析工具集成:与各种分析框架和商业智能平台兼容,便于数据驱动的决策。


 Apache Doris

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

image

高效的数据传输机制:为了应对大规模数据读取和传输的需求,Doris 支持 Arrow Flight SQL 协议,这一协议能够显著提高数据传输效率,实现百倍飞跃。

冷热数据分层功能:在 Doris 2.0 版本中引入了冷热数据分层功能,可以将冷数据下沉到成本更低的对象存储中,同时减少因存储附加带来的开销。

易用性和运维成本低:Doris 设计上注重用户体验,具有极速易用的特点,仅需亚秒级响应时间即可返回查询结果。此外,它还具备较低的运维成本和使用成本


应用场景

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


image

image

image


image

存算分离的架构主要有以下几个原因:

  1. 性能优化:将存储和计算分开,可以针对不同的需求优化各自的资源。例如,存储可以使用高效的列式存储格式,而计算节点则可以专注于执行复杂的查询。

  2. 灵活性与可扩展性:存算分离允许独立扩展存储和计算资源。当需要处理更多数据时,可以单独增加存储节点;当需要更强的计算能力时,可以增加计算节点。

  3. 资源利用率提升:存算分离使得计算资源可以根据需求动态调整,避免了资源的浪费。例如,计算负载较高时,可以临时增加计算节点,而不必同时增加存储节点。

  4. 简化维护:存储和计算的分离可以简化系统的维护和管理。可以独立更新或优化存储层和计算层,而不影响整体系统的运行。

  5. 支持多种数据访问模式:存算分离能够支持不同的数据访问场景,如批处理和实时分析,使得数据处理更加灵活。

  6. 降低成本:通过灵活配置存储和计算资源,企业可以根据实际需求选择合适的硬件和服务,降低整体运营成本。

image

image


image

image

Apache Doris的MetaService设计思想主要包括以下几个方面:

  1. 集中管理:MetaService负责管理和维护整个集群的元数据,包括数据库、表、分区等信息,提供集中化的管理方式,确保元数据的一致性和可靠性。

  2. 高可用性:通过引入主从复制机制,MetaService能够在主节点故障时迅速切换到备用节点,确保系统的高可用性,减少单点故障的风险。

  3. 实时更新:MetaService支持元数据的实时更新和快速读取,能够快速响应系统中的变化,保证数据的及时性和准确性。

  4. 分布式架构:MetaService设计为分布式架构,可以横向扩展,以适应大规模集群的需求,提升系统的整体性能和扩展性。

  5. 高性能:通过优化元数据的存储和访问方式,MetaService能够提供高效的元数据查询性能,支持快速的元数据操作。

  6. 灵活的事务处理:支持ACID事务,确保元数据操作的原子性和一致性,避免因并发操作导致的数据不一致。

  7. 多种数据源支持:MetaService能够与多种类型的数据源协同工作,便于集成和扩展。

image

FoundationDB 是由苹果公司开发并维护的高性能分布式数据库,设计用于处理大量结构化数据,具有高可用性、强一致性以及水平扩展等特性。

https://github.com/apple/foundationdb

FoundationDB在多节点的商用服务器集群上运行,通过分布式架构实现了高可扩展性。随着数据量的增长,可以轻松添加更多的服务器来扩展存储容量。

优化的算法和数据结构使得FoundationDB在读/写操作中表现出色,特别是在写密集型场景下,提供了高效的性能。

FoundationDB使用基于ACID事务的模型,确保了数据的一致性和完整性。无论是在读/写密集型工作负载下,都能保证数据在任何时候都是准确无误的。

学习曲线较陡峭:
作为一个功能强大的分布式数据库系统,FoundationDB的复杂性相对较高。对于初学者来说,可能需要花费一定的时间和精力来学习和掌握其使用方法和原理。
应用迁移相对困难:
由于FoundationDB不支持MySQL协议和SQL语法,对于已经使用MySQL等传统关系型数据库的应用程序来说,迁移到FoundationDB可能会面临一定的挑战。这包括数据迁移、应用程序改造等方面的工作


FoundationDB主要应用场景:

1. 金融行业
高频交易系统:FoundationDB的高性能和低延迟特性使其成为高频交易系统的理想选择,能够确保交易数据的实时性和准确性。
风险控制系统:在风险管理中,FoundationDB的强一致性和事务支持保证了数据的可靠性和一致性,有助于金融机构及时识别和控制风险。
2. 物联网(IoT)
实时数据处理:物联网平台需要处理来自各种设备的实时数据流,FoundationDB的分布式架构和高效读写性能能够满足这一需求,提供可靠的数据存储和查询服务。
设备状态监控:通过FoundationDB,物联网平台可以实时监控设备的状态,确保设备的正常运行和及时维护。
3. 电子商务
高并发订单处理:在电子商务平台中,FoundationDB能够支持高并发的订单处理,确保在促销活动或节假日等高峰期也能保持系统的稳定运行。
库存管理:通过FoundationDB,电子商务平台可以实时更新库存信息,避免超卖或库存积压等问题。
4. 游戏行业
实时多人在线游戏:FoundationDB的低延迟和高并发特性使其成为实时多人在线游戏的首选数据库,能够确保游戏过程中的流畅性和稳定性。
游戏数据分析:游戏公司可以利用FoundationDB存储和分析玩家的游戏数据,以优化游戏体验和制定营销策略。
5. 大数据分析
数据预处理和存储:FoundationDB可以用于预处理和存储大量的原始数据,为后续的数据分析任务提供可靠的数据源。
与大数据框架结合:FoundationDB可以与Hadoop、Spark等大数据框架结合使用,提供高性能的数据存储和查询服务,加速数据分析过程。
6. 云服务提供商
构建可扩展的云基础架构:云服务提供商可以利用FoundationDB构建可扩展、可靠的云基础架构服务,满足不同用户的存储需求。
弹性伸缩:随着数据量的增长,云服务提供商可以轻松添加更多的服务器来扩展FoundationDB的存储容量,确保服务的连续性和稳定性。
7. 实时应用
在线游戏、流媒体服务等:这些应用需要快速响应和频繁更新的数据操作,FoundationDB的高性能和低延迟特性能够满足这些需求。

FoundationDB架构图

image


image


image


image

image

image

日志存储与分析的经典场景

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

image

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


image

image

image

image

新架构移除Kafka,ODS层直接到Doris

image

image

image

image

image

image

image

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

1. be/ (Backend)

存放后端代码,包括存储引擎、查询处理等核心功能。 包括数据解析、执行计划、存储格式等模块。

2. fe/ (Frontend)

包含前端服务的代码,负责用户接口和SQL解析。 处理用户请求、SQL编译和查询优化。

3. docs/

包含项目的文档,包括用户手册、开发指南和API文档。

4. tests/

包含单元测试和集成测试的代码,确保代码质量。 分为不同的测试模块,便于管理和扩展。

5. tools/

存放各种工具和脚本,用于构建、部署和管理Doris。 包括数据导入导出工具、监控工具等。

6. conf/

包含配置文件和示例,帮助用户进行系统配置。

7. examples/

提供示例代码和用例,帮助用户快速上手使用Doris。



结论 

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




今天先到这儿,希望对AIGC,云原生,技术领导力, 企业管理,系统架构设计与评估,团队管理, 项目管理, 产品管理,信息安全,团队建设 有参考作用 , 您可能感兴趣的文章:
构建创业公司突击小团队
国际化环境下系统架构演化
微服务架构设计
视频直播平台的系统架构演化
微服务与Docker介绍
Docker与CI持续集成/CD
互联网电商购物车架构演变案例
互联网业务场景下消息队列架构
互联网高效研发团队管理演进之一
消息系统架构设计演进
互联网电商搜索架构演化之一
企业信息化与软件工程的迷思
企业项目化管理介绍
软件项目成功之要素
人际沟通风格介绍一
精益IT组织与分享式领导
学习型组织与企业
企业创新文化与等级观念
组织目标与个人目标
初创公司人才招聘与管理
人才公司环境与企业文化
企业文化、团队文化与知识共享
高效能的团队建设
项目管理沟通计划
构建高效的研发与自动化运维
某大型电商云平台实践
互联网数据库架构设计思路
IT基础架构规划方案一(网络系统规划)
餐饮行业解决方案之客户分析流程
餐饮行业解决方案之采购战略制定与实施流程
餐饮行业解决方案之业务设计流程
供应链需求调研CheckList
企业应用之性能实时度量系统演变

如有想了解更多软件设计与架构, 系统IT,企业信息化, 团队管理 资讯,请关注我的微信订阅号:

image_thumb2_thumb_thumb_thumb_thumb[2]

作者:Petter Liu
出处:http://www.cnblogs.com/wintersun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 该文章也同时发布在我的独立博客中-Petter Liu Blog。

标签:FoundationDB,存储,场景,查询,Apache,数据,节点,Doris
From: https://www.cnblogs.com/wintersun/p/18355883

相关文章

  • DEVCON初级使用教程结构,你可以根据自己的需求深入学习每个部分。深入了解 DEVCON 的中
    DEVCON(DeviceConsole)是一个用于管理Windows设备驱动程序和设备的命令行工具。它提供了一个用于列出、启用、禁用、安装、卸载和更新设备驱动程序的接口。以下是一个DEVCON初级使用教程的大纲,帮助你了解如何开始使用这个工具。DEVCON初级使用教程大纲1. 介绍什么是DEVCON?......
  • 5 大场景上手通义灵码企业知识库 RAG
    大家好,我是通义灵码,你的智能编程助手!最近我又升级啦,智能问答功能全面升级至Qwen2,新版本在各个方面的性能和准确性都得到了显著提升。此外,行间代码补全效果也全面优化,多种编程语言生成性能及准确性大幅提升,如前端、Java、Go、Python、C++ 等。此外,灵码新增代码提交信息(CommitMes......
  • 5 大场景上手通义灵码企业知识库 RAG
    大家好,我是通义灵码,你的智能编程助手!最近我又升级啦,智能问答功能全面升级至Qwen2,新版本在各个方面的性能和准确性都得到了显著提升。此外,行间代码补全效果也全面优化,多种编程语言生成性能及准确性大幅提升,如前端、Java、Go、Python、C++ 等。此外,灵码新增代码提交信息(CommitMes......
  • Doris 夺命 30 连问!(中)
    导言抱歉,作为从S2开始的骨灰级玩家看到EDG·UZI官宣首发上线,兴奋之余忘了写文档--||,还望各位看官老爷见谅,这次错了,下次还敢^_^这是继上次的30问上篇的中篇,也是10个问题,有些还是比较难回答的,欢迎大家在评论区或者私聊我来进行battle~Q&A1.时区zone,因现在国家......
  • EF Core 索引器属性(Indexer property)场景及应用
    EFCore索引器属性(Indexerproperty)场景及应用简介EFCore中的索引器属性(IndexerProperty)是指通过一个特殊的属性来访问实体类中的数据,而不必明确声明实体属性。这种属性在一些动态或未预定义的场景中非常有用,比如当实体的属性名在编译时并不确定,或者属性名集合较大时。场景......
  • Apache Hive详解
    文章目录一、ApacheHive概述二、ApacheHive架构、组件1.Hive架构图2.Hive组件(1)用户接口(2)元数据存储(3)Driver驱动程序(4)执行引擎(5)启动命令三、ApacheHive元数据1.元数据2.HiveMetadata3.HiveMetastore四、HiveSQL语言1.HiveSQL之数据库与建库(1)createdatabase(2)use......
  • USBServer的应用场景
    USBServer的应用场景:1.虚拟环境,云服务器环境连接不到Ukey。当工作系统或工作环境迁移到虚拟机或服务器上时,原本在物理机上工作的Ukey无处可寻。你会发现哪些加密软件失去了Ukey的阅读能力,根本无法启动,工作难以进步。USBServer适用于当前场景。它可以将虚拟机和服务器连接到UK......
  • 深入探索NPM:常用命令及其应用场景解析
    NPM(NodePackageManager)是JavaScript编程语言的包管理器,它允许开发者安装和管理有依赖的包,以及发布自己的包。作为Node.js生态系统中的核心工具,NPM提供了一系列的命令,用于项目的依赖管理、版本控制、包发布等。以下是一些NPM的常用命令及其作用的详细介绍。1.npminit此......
  • Build Texture Streaming 和 Build Virtual Textures 的用途和使用场景
    TextureStreaming(纹理流)详细说明TextureStreaming(纹理流)是UnrealEngine4中的一项重要技术,用于动态加载和管理游戏中的纹理资源。这种技术可以有效地优化内存使用,确保游戏在不同的硬件上都有良好的表现。UnrealEngine提供了一些工具来帮助开发者管理纹理流的构建和优化,主要......
  • USB 控制写传输、控制读传输、无数据控制传输都是在什么场景下?
    在USB通信中,控制传输(ControlTransfer)是一个非常常见且重要的传输类型,主要用于配置设备、查询设备状态以及发送和接收命令。控制传输有三种主要形式:控制写传输(ControlWriteTransfer)、控制读传输(ControlReadTransfer)和无数据控制传输(NoDataControlTransfer)。这些传输类型......