1。Doris简介什么是DorisApacheDoris是一个现代的MPP(MassivelyParallelProcessing)分析型数据库产品。亚秒级响应即可获得查询结果,有效支持实时数据分析。ApacheDoris的分布式架构非常简单,易于运维,可以支持超过10PB的超大数据集。ApacheDoris可以满足固定历史报表、实时数据分析、交互式数据分析和探索性数据分析等多种数据分析需求。Doris由百度大数据部(百度Palo)开发。百度内部有200多个产品线在用,1000多台部署机,单项业务可达数百TB。百度将Doris贡献给Apache社区后,很多外部用户也成为了Doris的用户,比如新浪微博、美团、小米等知名企业。关键词:MPP,分布式,数据分析,PB级优势兼容MySQL协议。聚合表技术+预聚合技术。动态水平扩展和自动负载均衡。缺点是网上相关经验很少。2.Doris定位于数据分析处理框架。Doris主要提供Online层面的数据服务,主要做数据分析服务。Doris的适用场景如下:1、报表、报表的数据分析,数据分析查询的模式比较固定,后台SQL的模式往往是确定的。对于这样的应用场景,选择使用MySQL来存储结果数据,用户可以选择在界面上执行批处理和发送邮件。在Doris平台上,报表查询延迟一般在秒级以下。2、多维分析这里说的多维分析也需要数据结构化,适用于查询比较灵活的场景。例如,数据分析条件和聚合维度不是很确定。通常,这种类型的数据分析被定义为多维分析。.与报表类分析相比,多维分析的查询延迟会稍微慢一些,在10s左右。3.Doris架构Doris架构图如下:Doris的整体架构与TiDB类似。借助MySQL协议,用户可以使用任何MySQLODBC/JDBC或MySQL客户端直接访问Doris。Doris中的模块包括FE和BE:FE主要负责元数据的管理、存储、查询分析;一个用户请求经过FE解析和规划后,会将具体的执行计划发送给BE,由BE完成查询的具体执行。BE节点主要负责数据存储和查询计划执行。目前平台的FE部分主要使用Java,BE部分主要使用C++。4.Doris数据结构如果从表的角度来看数据结构,一个用户的Table会被拆分成多个Tablet,Tablet会被分多份存储在不同的BE中,从而保证高可用且数据可靠性高。5、MPP(MassivelyParallelProcessing)MPP将SQL拆分成多个部分,分发到每台机器上执行,最后汇总结果。如果有10台机器,这种查询执行方式在大数据量下可以提升10倍的查询性能。6.表设计列式存储Doris的表和关系型数据一样,由行和列组成。每行数据对应一条用户记录,每列数据具有相同的数据类型。所有数据都具有相同的列数,可以动态添加或删除列。在Doris中,表的列可以分为维度列(也称为键列)和索引列(值列)。维度列用于分组和排序。索引列可以通过聚合函数SUM、COUNT、MIM、MAX、REPLACE、HLL_UNION、BITMAP_UNION等加起来进行聚合。因此,DorisDB表也可以看作是多维键到多维指标的映射。稀疏索引Doris将数据有序存储,并在有序数据的基础上为其构建稀疏索引。索引粒度为块(1024行)。这里面有一个特别的地方,就是varchar类型的字段。varchar类型的字段只能用作稀疏索引的最??后一个字段。索引在varchar处被截断,因此如果varchar先出现,索引可能小于36字节长。具体请参考DataModel、ROLLUP和PrefixIndex。除了稀疏索引,Doris还提供了bloomfilter索引。Bloomfilter索引对过滤区分度比较大的列效果明显。如果认为varchar不能放在稀疏索引中,可以创建bloomfilter索引。7.数据模型的详细模型Doris建表的默认模型是详细模型。一般用细化模型处理的场景有以下特点:1、需要保留原始数据(如原始日志、原始操作记录等)进行分析;2、查询方式灵活,不局限于预定义的预聚合方式,难以命中;3、数据更新不频繁。导入数据的来源一般是日志数据或者时序数据,主要特点是append写入,数据生成后不会有太多变化。聚合模型适用于具有以下特点的分析场景:1.业务方做的查询是汇总查询,比如sum、count、max等类型的查询;2、无需调出原始详细数据;3.旧数据不会频繁更新,只会追加新数据。Doris会根据相同的维度列对索引列进行聚合。当多条数据具有相同的维度时,Doris会对指标进行聚合。因此,可以减少查询时需要处理的数据量,从而提高查询效率。更新模型适合用更新模型分析的场景有以下特点:1.写入的数据需要更新;2.需要实时数据分析。在更新模型中,排序键满足唯一性约束,成为主键。Doris存储在内部为每批导入的数据分配一个版本号。同一个主键可能有多个版本的数据。查询时,版本最大(最新)的数据获胜。8、物化视图物化视图是提取某些维度的组合,建立一个对用户透明但有真实数据的视图表。Doris的物化视图可以保证用户在更新时直接更新原表,Doris会保证原表和物化视图是原子有效的。查询时,用户只需指定原始表,Doris会根据查询的具体情况,选择合适的物化视图完成查询。一般情况下,用户可以通过物化视图功能完成以下两个功能。1、更换索引列进行重排。2、对指定列进行聚合查询。
