首页 > 数据库 >高性能实时分析型数据库Doris

高性能实时分析型数据库Doris

时间:2024-12-17 15:46:10浏览次数:9  
标签:存储 数据库 支持 查询 高性能 实时 数据 节点 Doris

Apache Doris是一个基于MPP的现代化、高性能、支持实时的分析型数据库,以极速易用的特性被业内所熟知。以下是对它的详细介绍:

发展历程

Apache Doris最早是诞生于百度广告报表业务的Palo项目,2017年正式对外开源,2018年7月由百度捐赠给Apache基金会进行孵化,2022年6月成功从Apache孵化器毕业,正式成为Apache顶级项目。

特点

  • 性能优异:自带高效的列式存储引擎,实现超高的数据压缩比,减少数据扫描量。提供丰富的索引结构,支持在线服务业务的超高并发,单节点最高可支持上千QPS。结合向量化执行引擎,充分发挥现代化CPU并行计算能力,辅以智能物化视图技术实现预聚合加速,并通过查询优化器进行基于规划和基于代价的查询优化。
  • 简单易用:支持标准ANSI SQL语法,包括单表聚合、排序、过滤和多表Join、子查询等,还支持窗口函数、Grouping Set等复杂SQL语法。实现了MySQL协议兼容,用户可通过各类客户端工具访问,并支持与BI工具的无缝对接。
  • 架构精简:系统只有Frontend(FE)和Backend(BE)两个模块,FE节点负责用户请求的接入、查询计划的解析、元数据存储及集群管理等工作,BE节点负责数据存储和查询计划的执行。任一模块都可以支持横向拓展,集群最高可以拓展到数百个节点,支持存储超过10PB的超大规模数据。
  • 稳定可靠:支持数据多副本存储,集群具备自愈功能,分布式管理框架可自动管理数据副本的分布、修复和均衡,副本损坏时系统自动感知并修复。节点扩容时,仅需一条SQL命令即可完成,数据分片会自动在节点间均衡,系统无需停止运行。
  • 生态丰富:提供丰富的数据同步方式,支持快速加载来自本地、Hadoop、Flink、Spark、Kafka、SeaTunnel等系统中的数据,也可以直接访问MySQL、PostgreSQL、Oracle、S3、Hive、Iceberg、Elasticsearch等系统中的数据而无需数据复制。存储在Doris中的数据也可以被Spark、Flink读取,并输出给上游数据应用进行展示分析。

应用场景

  • 实时数据分析:可实时引入和分析数据流,适用于监控系统、实时用户行为分析等场景,也适用于构建实时可视化仪表盘。
  • 数据仓库:支持复杂的OLAP查询,能够处理大规模数据集,提供快速的多维分析和报告生成。支持从各种数据源快速导入数据,并进行清理、聚合和分析。
  • 日志分析:能够高效存储和查询大规模的日志数据,支持进行实时查询和分析,帮助快速排查系统故障和进行安全监控。
  • 用户行为分析:能分析大规模用户行为数据,支持构建用户画像和个性化推荐系统,适用于电商、内容推荐等场景的实时点击流分析。
  • 业务报表:可以与各种BI工具集成,生成各种业务报表和数据洞察,支持决策分析,也能够根据业务需求定制生成各种复杂报表,支持高并发查询 。
  • 物联网数据分析:实时处理和分析IoT设备数据,监控设备状态和性能,分析历史数据进行预测性维护和故障预警。

架构设计

  • MPP架构:采用大规模并行处理架构,实现节点间和节点内的并行执行。将查询任务分解为多个子任务,在多个节点上同时处理,然后将结果汇总返回,大幅提高查询效率,可应对复杂查询和大规模数据处理。
  • FE与BE架构:系统仅由Frontend(FE)和Backend(BE)两个模块构成。FE负责用户请求接入、查询解析规划、元数据管理及集群管理等;BE负责数据存储和查询计划执行,这种架构简单清晰,易于扩展和管理。

存储管理

  • 列式存储:按列进行数据的编码压缩和读取,数据压缩比高,可减少大量非相关数据的扫描,有效利用IO和CPU资源,在执行大规模聚合操作时性能优势明显。
  • 存储模型:支持多种存储模型,如Aggregate Key模型通过提前聚合相同Key的Value列大幅提升性能;Unique Key模型实现行级别数据更新;Duplicate Key模型满足事实表的明细存储。
  • 数据副本与容错:支持数据多副本存储,分布式管理框架自动管理数据副本的分布、修复和均衡,副本损坏时系统自动感知并修复,保证数据的高可用性和可靠性。

索引技术

  • Sorted Compound Key Index:最多可指定三个列组成复合排序键,通过该索引能有效进行数据裁剪,更好地支持高并发的报表场景。
  • Z-order Index:可对数据模型中的任意字段组合进行范围查询,提高查询效率。
  • Min/Max索引:能有效过滤数值类型的等值和范围查询。
  • Bloom Filter:对高基数列的等值过滤裁剪非常有效。
  • Invert Index:能够对任意字段实现快速检索。

查询优化

  • 代价优化器:基于查询的成本估算,选择最优的查询执行计划,综合考虑数据量、索引情况、操作复杂度等因素,生成高效的执行路径。
  • 向量化执行引擎:内存结构按列式布局,减少虚函数调用、提升Cache命中率,高效利用SIMD指令,在宽表聚合场景下性能是非向量化引擎的5-10倍。
  • 物化视图:支持强一致的物化视图,自动进行物化视图的更新和选择,大幅减少物化视图维护的代价,通过预聚合数据加速查询。
  • 自适应查询执行:根据运行时统计信息动态调整执行计划,优化查询性能。

数据导入导出

  • Stream Load:支持通过HTTP协议从文件进行快速流式导入,适用于实时数据写入。
  • Broker Load:通过配置代理,将数据从HDFS、Kafka等大数据存储系统批量加载到Doris,适用于大规模数据导入。
  • Routine Load:支持定时或持续从消息队列如Kafka中导入数据,实现实时数据同步。
  • Data Export:支持将数据导出到外部系统或文件,如CSV、Parquet格式等。

标签:存储,数据库,支持,查询,高性能,实时,数据,节点,Doris
From: https://www.cnblogs.com/java-note/p/18612591

相关文章

  • 时序数据库IoTDB
    定义与概述IoTDB(InternetofThingsDatabase)是一个专门为物联网(IoT)场景设计的时序数据库。它能够高效地处理海量的时序数据,时序数据是指按照时间顺序排列的数据,在物联网场景中,设备会不断地产生带有时间戳的数据,如传感器每隔一段时间就会采集温度、湿度等数据并发送到数据库存......
  • ip地址解析-纯真(CZ88.net) 中国IP地理位置数据库首创者
    纯真(CZ88.NET)自2005年起一直为广大社区用户提供社区版IP地址库,只要获得纯真的授权就能免费使用,并不断获取后续更新的版本。如果有需要免费版IP库的朋友可以前往纯真的官网进行申请。纯真除了免费的社区版IP库外,还提供数据更加准确、服务更加周全的商业版IP地址查询数据。纯真......
  • 分布式数据库HBase
    HBase简介HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,它构建在Hadoop分布式文件系统(HDFS)之上。HBase主要用于存储海量的非结构化和半结构化数据,并且能够提供实时的读写访问。例如,在互联网公司中,用于存储用户的行为日志。这些日志数据量巨大,每条日志包含多个......
  • 推荐几个不错的数据库设计工具
    推荐几个不错的数据库设计工具 思维导航前言PowerDesignerdrawDBPDManer程序员常用的工具软件前言在当今信息化高速发展的时代,数据库设计成为了软件开发过程中不可或缺的一环。一个优秀的数据库设计工具,不仅能够提高开发效率,还能确保数据库结构的合理性。今天大......
  • 震惊!Doris和Hive竟然能这样玩?数据分析的松弛感拉满
    震惊!Doris和Hive竟然能这样玩?数据分析的松弛感拉满Doris与Hive的完美邂逅Doris-HiveCatalog核心特性多样化的存储支持智能的元数据管理企业级安全特性凌晨三点,办公室里只剩下屏幕的幽光。数据工程师小明正在和两个"大家伙"较劲——Doris和Hive。“导出、清洗、......
  • 老板既要又要还要......我用Doris+Hudi把不可能变成了日常
    老板既要又要还要......我用Doris+Hudi把不可能变成了日常探索Doris与Hudi的完美融合智能查询优化华丽转身-不止于快的进化Doris+Hudi湖仓一体的"艺术之美"大数据江湖中流传着这样一个传说:有一位数据科学家,整日为查询性能发愁,夜夜加班优化SQL。直到有一天,他发现了D......
  • 要在 C# 6.0 中连接 PostgreSQL 数据库
    要在C#6.0中连接PostgreSQL数据库,你可以使用Npgsql库。Npgsql是一个开源的.NET数据提供程序,专门用于与PostgreSQL数据库进行交互。以下是详细步骤和示例代码,帮助你在C#6.0项目中连接和操作PostgreSQL数据库。步骤1:安装Npgsql包首先,你需要在你的C#项......
  • SQL Server的数据库备份与还原
    数据库备份分类备份分类完全备份:(常用方式)备份整个数据库,包含用户表、系统表、索引、视图和存储过程等所有数据库对象。因而,占用不少时间和空间,这种方式不建议太频繁,一般一周一次。差异备份:也叫增量备份。它不使用事务日志,相反,它使用整个数据库的一种新映象。它比最初......
  • 数据库期末考点复习
    第2章辅助存储管理磁盘的概念:圆盘、盘面、磁道、扇区读写时间:读写某个磁盘块的时间=寻道时间+旋转延迟+传输时间;平均寻道时间是移动过整个磁盘的1/3(证明);平均旋转延迟是磁盘旋转半周需要的时间磁头调度:电梯算法磁盘故障的应对技术:RAID(冗余盘)、RAID4(奇偶校验......
  • EyouCMS中beafter标签涉及哪些数据库字段?
    在EyouCMS中,beafter标签用于获取当前文档的上一篇或下一篇内容,其背后涉及到数据库中的某些字段。这些字段通常存储在 ey_archives 表中,该表记录了所有文章的基本信息。具体涉及的字段包括但不限于以下几项:arcurl:文章的URL地址,用于生成链接。title:文章的标题,用于显示在链......