Massively Parallel Processing
GreenPlum
01.Greenplum MPP 架构
02.Primary/Mirror 同步机制
03.Greenplum 计算能力估算
04.segment mirrir mode
05.最佳配置
06.Install Greenplum for CentOS 8.4
07.greenplum adds mirror to master and segment
08.Greenplum Command Center v6.22.0
09.Greenplum平台扩展框架(PXF)
11.management tool
12.管理数据库
13.分布式数据库存储及查询处理
14.角色权限及客户端认证管理
系统配置和参数
Greenplum to Greenplum modules
18.gptransfer and gpcopy
22.Apache MADlib
21.gpbackup and gprestore
20.备份与恢复
gpfdist 原理解析
Greenplum Stream Server(GPSS)
17.Loading and unloading data
16.数据库性能
15.Database objects
Greenplum mapreduce
Apache Doris
01.安装 Apache Doris
13.多租户和资源划分
12.查询执行的统计
11.权限管理
10.元数据运维
09.数据副本管理
08.数据管理
07.FQDN
06.负载均衡
05.弹性扩缩容
04.监控和报警
03.集群升级
02.构建 Docker Image
Cluster Manager for Apache Doris 安装手册
本文档使用 MrDoc 发布
-
+
home page
Apache Doris
# 1.Apache Doris 和 DorisDB、StarRocks Doris 最早是解决百度凤巢统计报表的专用系统,随着百度业务的飞速发展对系统进行了多次迭代,逐渐承担起百度内部业务的统计报表和多维分析需求。2013 年,我们把 Doris 进行了 MPP 框架的升级,并将新系统命名为 Palo ,2017 年我们以百度 Palo 的名字在 GitHub 上进行了开源,2018 年贡献给 Apache 基金会时,由于与国外数据库厂商重名,因此选择用回最初的名字,这就是 Apache Doris 的由来。 2020 年 2 月,百度 Doris 团队的个别同学离职创业,基于 Apache Doris做了自己的商业化闭源产品 DorisDB ,这就是 StarRocks 的前身。 > Doris属于百度的,Apache Doris是有百度贡献给Apache 的,DorisDB是百度前员工基于Apache Doris做的商业版本属于另外的公司,后面因为版权的问题,将DorisDB改名为StarRocks,所以StarRocks和DorisDB是属于一个产品,一个公司的。 Apache Doris GitHub地址:https://github.com/apache/doris Apache Doris 官网文档:https://doris.apache.org/docs/get-starting/get-starting.html StarRocks GitHub地址:https://github.com/StarRocks/starrocks StarRocks官方文档:https://docs.starrocks.com/zh-cn/main/introduction/StarRocks_intro # 2.StarRocks概述 StarRocks 是一款高性能分析型数据仓库,使用向量化、MPP(Massively Parallel Processing:大规模并行处理) 架构、可实时更新的列式存储引擎等技术实现多维、实时、高并发的数据分析。StarRocks 既支持从各类实时和离线的数据源高效导入数据,也支持直接分析数据湖上各种格式的数据。StarRocks 兼容 MySQL 协议,可使用 MySQL 客户端和常用 BI 工具对接。同时 StarRocks 具备水平扩展,高可用,高可靠,易运维等特性。广泛应用于实时数仓、OLAP 报表、数据湖分析等场景。  1)特征 - 原生向量化 SQL 引擎: StarRocks 采用向量化技术,充分利用 CPU 的并行计算能力,在多维分析中实现亚秒级的查询返回,比之前的系统快 5 到 10 倍。 - 标准 SQL: StarRocks 支持 ANSI SQL 语法(完全支持 TPC-H 和 TPC-DS)。它还与 MySQL 协议兼容。可以使用各种客户端和 BI 软件来访问 StarRocks。 - 智能查询优化: StarRocks 可以通过 CBO(Cost Based Optimizer)优化复杂查询。有了更好的执行计划,数据分析效率会大大提高。 - 实时更新: StarRocks的更新模型可以根据主键进行upsert/delete操作,在并发更新的同时实现高效查询。 - 智能物化视图: StarRocks的物化视图可以在数据导入过程中自动更新,在执行查询时自动选择。 - 直接查询数据湖中的数据:StarRocks 允许直接访问来自 Apache Hive™、Apache Iceberg™ 和 Apache Hudi™ 的数据,而无需导入。 - 资源管理:该特性允许 StarRocks 限制查询的资源消耗,实现同一集群内租户之间的资源隔离和高效使用。 - 易于维护:简单的架构使 StarRocks 易于部署、维护和横向扩展。StarRocks 敏捷调整查询计划,在集群扩容或扩容时均衡资源,在节点故障下自动恢复数据副本。 - 列式存储:StarRocks实现了列式存储引擎,数据以按列的方式进行存储。通过这样的方式,相同类型的数据连续存放。一方面,数据可以使用更加高效的编码方式,获得更高的压缩比,降低存储成本。另一方面,也降低了系统读取数据的IO总量,提升了查询性能。此外,在大部分OLAP场景中,查询只会涉及部分列。相对于行存,列存只需要读取部分列的数据,能够极大地降低磁盘IO吞吐。 - 原子性:StarRocks的存储引擎在数据导入时能够保证每一次操作的ACID。一个批次的导入数据生效是原子性的,要么全部导入成功,要么全部失败。并发进行的各个事务相互之间互不影响,对外提供Snapshot Isolation的事务隔离级别。 - 支持Upsert 类操作:StarRocks存储引擎不仅能够提供高效的 Append 操作,也能高效的处理 Upsert 类操作。使用 Delete-and-insert 的实现方式,通过主键索引快速过滤,消除了读取时 Sort merge 操作,同时还可以充分利用其他二级索引。可以在大量更新的场景下,仍然可以保证查询的极速性能。 2)适用场景 StarRocks 可以满足企业级用户的多种分析需求,包括 OLAP 多维分析、定制报表、实时数据分析和 Ad-hoc 数据分析等。 1. OLAP 多维分析 利用 StarRocks 的 MPP 框架和向量化执行引擎,用户可以灵活的选择雪花模型,星型模型,宽表模型或者预聚合模型。适用于灵活配置的多维分析报表,业务场景包括: - 用户行为分析 - 用户画像、标签分析、圈人 - 高维业务指标报表 - 自助式报表平台 - 业务问题探查分析 - 跨主题业务分析 - 财务报表 - 系统监控分析 2. 实时数据仓库 StarRocks 设计和实现了 Primary-Key 模型,能够实时更新数据并极速查询,可以秒级同步 TP 数据库的变化,构建实时数仓,业务场景包括: - 电商大促数据分析 - 物流行业的运单分析 - 金融行业绩效分析、指标计算 - 直播质量分析 - 广告投放分析 - 管理驾驶舱 - 探针分析APM(Application Performance Management) 3. 高并发查询 StarRocks 通过良好的数据分布特性,灵活的索引索引以及物化视图等特性,可以解决面向用户侧的分析场景,业务场景包括: - 广告主报表分析 - 零售行业渠道人员分析 - SaaS 行业面向用户分析报表 - Dashboard 多页面分析 4. 统一分析 - 通过使用一套系统解决多维分析、高并发查询、预计算、实时分析查询等场景,降低系统复杂度和多技术栈开发与维护成本。 - 使用StarRocks 来统一数据湖和数据仓库,将高并发和实时要求性很高的业务放在StarRocks中分析,把数据湖上的分析使用StarRocks外表查询,统一使用 StarRocks 管理湖仓数据。 # 3.StarRocks架构  StarRocks的架构简洁,整个系统的核心只有FE(Frontend)和 BE(Backend)两类进程,不依赖任何外部组件,方便部署与维护。同时,FE和BE模块都可以在线水平扩展,元数据和数据都有副本机制,确保整个系统无单点。 1)FE(Frontend) - Frontend是StarRocks的前端节点,负责管理元数据,管理客户端连接,进行查询规划,查询调度等工作。FE根据配置会有两种角色:Follower和Observer。 - Follower会通过类Paxos的BDBJE协议选主出一个Leader(实现选主需要集群中有半数以上的Follower实例存活),只有Leader会对元数据进行写操作。非Leader节点会自动的将元数据写入请求路由到Leader节点。每次元数据写入时,必须有多数Follower成功才能确认是写入成功。 - Observer不参与选主操作,只会异步同步并且回放日志,主要用于扩展集群的查询并发能力。每个FE节点都会在内存保留一份完整的元数据,这样每个FE节点都能够提供无差别的服务。 2)BE(Backend) Backend是StarRocks的后端节点,负责数据存储以及SQL执行等工作。 # 4.数据管理 Table数据划分 + Tablet三副本的数据分布如下图:  - 在StarRocks里,一张表的数据会被拆分成多个Tablet,而每个Tablet都会以多副本的形式存储在BE节点中。 - StarRocks通过分区、分桶两种划分方式将Table划分成Tablet。 - 通过分区机制(Sharding),一张表可以被划分成多个分区,如将一张表按照时间来进行分区,粒度可以是一天,或者一周等。 - 一个分区内的数据可以根据一列、或者多列进行分桶,将数据切分成多个Tablet。 - 用户可以自行指定分桶的大小。StarRocks会管理好每个Tablet副本的分布信息。 - 由于一张表被切分成了多个Tablet,StarRocks在执行SQL语句时,可以对所有Tablet实现并发处理,从而充分的利用多机、多核提供的计算能力。 - 在BE节点规模发生变化时,比如在扩容、缩容时,StarRocks可以做到无需停止服务,直接完成节点的增减。 - StarRocks支持Tablet多副本存储,默认副本数为三个。多副本够保证数据存储的高可靠,以及服务的高可用。
Seven
Oct. 29, 2022, 9:47 p.m.
转发文档
Collection documents
Last
Next
手机扫码
Copy link
手机扫一扫转发分享
Copy link
Markdown文件
share
link
type
password
Update password