免费的黄冈网站有哪些平台游戏软件,seo推广员招聘,阿里巴巴做网站么,婚恋网站排名前三文章目录Doris 背景介绍一、Doris二、Doris 定位适用场景 案例介绍一、适用场景二、具体案例Doris 整体架构一、Doris 整体架构二、Doris 数据分布三、Doris 的使用方式Doris 关键技术一、数据可靠性二、易运维三、MySQL 兼容性四、支持 MPPDoris 数据模型一、Doris 数据…
文章目录Doris 背景介绍一、Doris二、Doris 定位适用场景 案例介绍一、适用场景二、具体案例Doris 整体架构一、Doris 整体架构二、Doris 数据分布三、Doris 的使用方式Doris 关键技术一、数据可靠性二、易运维三、MySQL 兼容性四、支持 MPPDoris 数据模型一、Doris 数据模型特点二、聚合计算说明三、按列存储四、物化视图五、两层分区与分级存储六、Doris 在 Elasticsearch 的应用七、Kafka 消息队列加载八、Doris 其他特性Doris 背景介绍
介绍 Doris读音[ˈdɔrɪs]的整体架构以及 Doris 的一些特性。
一、Doris
Doris 是分布式、面向交互式查询的分布式数据库主要部分是 SQL内部用到 MPP 技术。
什么是 MPP?
MPP ( Massively Parallel Processing )即大规模并行处理在数据库非共享集群中每个节点都有独立的磁盘存储系统和内存系统业务数据根据数据库模型和应用特点划分到各个节点上每台数据节点通过专用网络或者商业通用网络互相连接彼此协同计算作为整体提供数据库服务。非共享数据库集群有完全的可伸缩性、高可用、高性能、优秀的性价比、资源共享等优势。简单来说MPP 是将任务并行的分散到多个服务器和节点上在每个节点上计算完成后将各自部分的结果汇总在一起得到最终的结果 ( 与 Hadoop 相似 )。
Doris 主要解决 PB 级别的数据量如果高于 PB 级别不推荐使用 Doris 解决可以考虑用 Hive 等工具解决结构化数据查询时间一般在秒级或毫秒级。
Doris 由百度大数据部研发 ( 之前叫百度 Palo2018年贡献到 Apache 社区后更名为 Doris )在百度内部有超过200个产品线在使用部署机器超过1000台单一业务最大可达到上百 TB。
百度将 Doris 贡献给 Apache 社区之后许多外部用户也成为了 Doris 的使用者例如新浪微博美团小米等著名企业。
二、Doris 定位
在数据分析处理框架中Doris 主要做的是 Online 层面的数据服务主要处理的是数据分析方面的服务。 Doris 的目标是实现低成本主要针对商业产品可线性扩展支持云化部署高可用高查询性能高加载性能。 简要介绍两个百度内部业务中 Doris 的应用案例
A. 百度统计在线报表 B. 百度另一内部业务的多维分析
可以手动拖拽维度、指标等进行查询。
适用场景 案例介绍
一、适用场景
1、对数据分析、统计
数据分析大体上可以分为两大类场景一种偏向于报表类的另一种偏向于多维分析的。
2、报表
报表类数据分析数据分析以及查询的模式相对比较固定而且后台 SQL 的模式往往都是确定的。针对此类应用场景选择使用 MySQL 存结果数据用户可从界面选择执行批处理以及发送邮件。在 Doris 平台中报表类查询时延一般在秒级以下。
3、多维分析
这里提到的多维分析同样要求数据是结构化的适用于查询相对灵活的场景例如数据分析条件以及聚合维度等方面不是很确定一般将此类数据分析定义为多维分析。相对于报表类分析多维分析的查询时延会稍慢大约在会在 10s 的级别。
二、具体案例
案例分析 1百度统计
百度统计为网站站长提供流量分析网站分析受众分析等多种分析服务。服务网站数量超过 450W每天查询量达到 1500WQPS ( Queries Per Second每秒查询率 ) 峰值超过1400每日新增数据量超过 2TB数据导入频次为5分钟平均查询时延 30ms。
案例分析 2百度云系统
1、百度云交易系统
百度云交易系统主要提供订单、账单、扣费、交易流水等 TB 级别量数据的存储和实时查询服务数据量约 12TB每5分钟导入。
2、百度云数据中心
百度云数据中心主要提供百度云经营分析产品分析用户分析等多种分析服务提供多维度100分析具备高性能 ( 秒级 ) BI 能力百度云数据中心的日处理数据量约 1T ( 略少于百度统计因此查询效率略高于百度统计 )分钟级导入。以下是百度云数据中心页面的一个截图
Doris 整体架构
一、Doris 整体架构 Doris 的整体架构和 TiDB 类似借助 MySQL 协议用户使用任意 MySQL 的 ODBC/JDBC以及MySQL 的客户端都可以直接访问 Doris。Doris 中的模块包括 FE 和 BE 两类FE 主要负责元数据的管理、存储以及查询的解析等一个用户请求经过 FE 解析、规划后具体的执行计划会发送给 BEBE 则会完成查询的具体执行。BE 节点主要负责数据的存储、以及查询计划的执行。目前平台的 FE 部分主要使用 JavaBE 部分主要使用 C。
二、Doris 数据分布
如果从表的角度来看数据结构用户的一张 Table 会拆成多个 TabletTablet 会存成多副本存储在不同的 BE 中从而保证数据的高可用和高可靠。
三、Doris 的使用方式
Doris 的使用方式和 MySQL 类似创建 database创建 table导入数据、执行查询等。具体详见下图 Doris 关键技术
一、数据可靠性
1、元数据使用 MemoryCheckpointJournal ( 分别是什么)使用 BTBJE ( 类似于 Raft ) 协议实现高可用性和高可靠性。
2、Doris 内部自行管理数据的多副本和自动修复。保证数据的高可用、高可靠。在服务器宕机的情况下服务依然可用数据也不会丢失。
二、易运维
无外部依赖
Doris 部署无外部依赖只需要部署 BE 和 IBE 即可搭建起一个集群。
支持 Online Schema Change
支持在线更改表模式 ( 加减列创建 Rollup )不会影响当前服务不会阻塞读、写等操作这种执行是异步的 ( 用户不需要一直盯在那里 )
数据库同步操作和异步操作
同步是所有的操作都做完才返回给用户结果即写完数据库之后再响应用户用户体验不好
异步不用等所有操作等做完就相应用户请求即先相应用户请求然后慢慢去写数据库用户体验较好。缓存机制也就是消息队列就是异步操作的一个典型应用。
1、副本自动均衡
传统数据库的扩缩容比较麻烦有时甚至需要重做数据而 Doris 数据库只需要一条 SQL ( 无须额外操作 ) 即可实现扩缩容。
2、内置监控
使用 Prometheus、Grafana 将监控项指标列出。
下图为 Doris 默认配置面板
三、MySQL 兼容性
MySQL 的兼容性从两方面体现
1、兼容 MySQL 的网络协议 ( MySQL Network Protocol )
2、兼容 MySQL 语法使用 MySQL 语法可对 Doris 数据库进行查询
关于 MySQL 语法的兼容性前文已经描述过这里不再赘述
关于 MySQL 的网络协议的兼容性举个简单的例子MySQL 的调度服务器 Proxy可以直接用作 Doris 的 Proxy。
Doris 的前端展示可以使用 MySQL 专属展示器 Tableu。下图就是使用 Tableu 将 Doris 数据可视化的一个范例。
Doris 与 R 语言可以实现无缝对接用 R 语言可直接操作 Doris 数据库进行数据分析、数据挖掘等工作。
四、支持 MPP
MPP 即 Massively Parallel Processing大规模并行处理即海量数据并发查询。以下图为例
执行
SELECT k1,SUM(v1) FROM A,B WHERE A.k2B.k2 GROUP BY k1 ORDER BY SUM(v1)语句该语句包含了合并、聚合计算、排序等多种操作在执行计划的时候MPP 将其拆分成多份分布到每台机器执行最后再将结果汇总。假如有10台机器在大数据量下这种查询执行方式可以使得查询性能达到10倍的提升。 Doris 数据模型
一、Doris 数据模型特点
1、键值对存储形式
类似于字典搜索查询的键值对格式Doris 中所有数据分成两列Key 列和 Value 列。如下图所示Time、Id、Country 列共同组成 Key 列Clicks、Cost 列为 Value 列。Key 列有序可进行快速查找Value 列可以按照具体聚合类型内部完成数据聚合。 2、Key 列全局有序排列查询时方便快速定位查找。
Doris 数据模型的一个显著特点是 Key 列全局唯一因此存在相同 Key 值的不同 Value则后面的数据与前面的数据自动做 ( SUMMINMAXREPLACE ) 等聚合处理。例如下图中绿色方框中的两行相同的 Key 值对应不同的 Value因此新的 Value 到达后与前数据作 SUM 处理得到最新的数据不仅提升效率还可提高数据处理的准确性。 二、聚合计算说明
本部分具体描述相同 Key 值下 Value 值的聚合。
数据的导入是分版本的例如下图右侧9192版本每一个版本之间 Key 相同的数据汇总到中间表中通过聚合处理最终输出为左侧的 base。
三、按列存储
1、Doris 的数据是按列存储的每一列单独存放。
2、查询时只访问查询涉及的列大量降低 I/O。
3、数据类型一致方便压缩。
4、数据包建索引数据即索引。
5、利用原始过滤条件以及 min、max 和 sum 等智能索引技术将数据集查询范围尽可能地缩小大大减少 I/O提升查询效率。
四、物化视图
物化视图是提取某些维度的组合建立对用户透明的却有真实数据的视图表格。Doris 的物化视图可以保证用户在更新时直接更新原始表Doris 会保证原表、物化视图原子生效。在查询的时候用户也只需指定原始表Doris 会根据查询的具体条件选择适合的物化视图完成查询。
通常用户可以通过物化视图功能完成以下两种功能。
1、更换索引列进行重排列
2、针对指定列做聚合查询 五、两层分区与分级存储
两层分区
1、方便新旧数据分离使用不同的存储介质例如新数据使用 SSD历史数据 SATA
2、分区减少了大量历史数据不必要的重复 BE/CE节省了大量的 IO 和 CPU 开销
3、两层分区的方法简化了表的扩容便于 shard 调整例如前期不必建立过多 shard后期随着业务增长客随时调整 shard 数
分级存储
用户可以指定数据放到 SSD 上或者 SATA 盘上也支持根据 TTL 将冷数据从 SSD 迁移到 SATA 上高效利用 SSD 提高查询性能。 六、Doris 在 Elasticsearch 的应用
简介
1、ES 的优点是索引可支持多列索引甚至可支持全文语义索引如 termmatchfuzzy 等然而其缺点是没有分布式计算引擎不支持 join 等操作
2、与 ES 相反Palo 具备丰富的 SQL 计算能力以及分布式查询能力然而其索引性能较低不支持全文索引。
3、Doris 在 ES 开发的过程中分别借鉴 ES 和 Palo 的长处支持了 Elasticsearch 多表 Join 操作同时引入 Elasticsearch 的语义搜索功能扩充了 Doris 的查询能力。
使用方式
第一步建立一张 ES 的外部表。
第二步在 ES 外部表中导入一些数据 第三步使用和 ES 一样的搜索语句进行全文检索查询 类似于上图这样的搜索语句在 SQL 中比较难以表达但是在 ES 中较容易实现。
七、Kafka 消息队列加载
1、Doris 内部支持订阅 Kafka 数据流实现直接对接 Kafka
2、用户数据源经 Kafka 消息队列收集后可以依次进入到 Doris 中通过 Doris 做报表展示和决策分析等工作。
3、优点
无需额外组件用户可直接通过命令实现 Kafka 消息订阅。
精确传输秒级延迟。
Doris 可自动感知 Kafka 中 partition 变化合理调度并发导入。
在数据导入这一过程中支持对 Kafka 原始数据做二次处理如转换过滤等。
八、Doris 其他特性
原子性——即一批数据要么都生效要么都不生效。
支持单机多盘
向量化执行
UDF ( User Defined Function 用户自定义函数 )
内置 HLL 类型快速计算 UV
doris官方文档中文版链接