https://www.toutiao.com/article/7240359841682981388/

https://github.com/apache/doris

从 Apache Doris 到 SelectDB:下一代云原生实时数仓的演进
原创2023-06-04 15:00·DataFunTalk
导读 本次分享的题目是从 Apache Doris 到 SelectDB,从开源数仓走向下一代云原生数仓的演进之路。分享内容首先介绍 Apache Doris,然后分析在云时代下数据分析需求有什么样变化,为何要做 SelectDB,SelectDB 是怎样一个下一代云原生数仓。

全文目录如下:

  1. Apache Doris 的基本介绍

  2. 云原生时代的数据分析需求

  3. 下一代云原生实时数仓的演进之路

分享嘉宾|肖康 SelectDB 联合创始人兼技术 VP

编辑整理|范雯蕾 香港科技大学

出品社区|DataFun

01

Apache Doris 介绍

首先简单介绍下 Apache Doris,一个基于 MPP 架构的高性能、实时的分析型数据库。

其特点主要有几方面:性能突出,通过向量化执行引擎以及一系列查询优化技术实现极致性能;简单易用,支持标准 SQL 并且兼容 MySQL 协议;运维简易,分布式集群管理及部署和维护相对其他更加简单;高并发点查询方面效果较好,通过分区、分桶、裁剪,通过一些 bitmap 索引可以加快高并发点查。

这些年 Doris 也在不断发展,在多维报表、即席查询、用户画像、实时大屏、日志分析、湖仓加速场景得到很多应用。

Doris 历史最早可以追溯到百度凤巢的广告报表详细,经过多年的发展,在 2022 年 6 月从 Apache 基金会毕业,正式成为 Apache 顶级项目。社区发展活跃,聚集了来自不同行业近百家企业的超 500 位贡献者,每月有近 150 位活跃贡献者,已经成长为全球大数据与数据库领域最活跃的开源项目之一。

目前已有全球 2000 家企业在生产中使用,在互联网公司例如百度、美团、小米、京东、字节跳动、腾讯、快手、网易、微博、新浪、360 等。在一些传统的比如制造业、金融、能源有不少应用。Doris 在各大公司广泛活跃地使用,在使用过程中会发现很多问题和改进思路,反馈到开源社区。在这里欢迎大家使用 Doris,在使用过程中把问题和想法提供到 Doris 社区,一起把中国人开源的数仓项目建设好。

Doris 的定位是易用、极速、实时、统一的湖仓分析引擎。不同数据源通过 ETL 导入进入 Doris 引擎中去——其中包括实时 Flink、Spark 和新式 DBT,把数据集成到统一的 Doris 数仓中。Doris 还能和 Iceberg、Hudi 这样的数据湖进行联动,进行湖仓加速。这样统一的引擎提供像报表、BI 分析、联邦查询等这样的能力。

从业务使用角度,Doris 在技术上有个特点是简单易用。从使用角度来看,Doris 支持标准 SQL 并且兼容 MySQL 协议,一些 MySQL 客户端工具例如 DBeaver 或 BI 工具例如 Superset 、Metabase 等都可以无缝接入 Doris,这大大简化了作为业务使用者的门槛。对于常见的各种数据源和数据集成工具,Doris 都提供了开箱即用的对接能力,包括 Flink、Spark、Kafka 等,进一步实现了对海量数据的存储与分析。

从技术架构运维的角度,Doris 部署简单,分为 FE、BE 两类进程,无 Zookeeper 等外部依赖。在线扩缩容(增加/减少机器)、自动副本修复都自动完成,无需手动挡运维。

除此之外 Doris 在系统方面优越,采用列式存储并具有丰富的索引结构,在数据分析场景可以大幅减少数据扫描,提升查询性能表现。在数据模型方面,Doris 支持三种数据模型——Aggregate key 聚合模型提供数据预聚合的能力,Unique key 主键模型在主键查询以及行级别数据更新上有更好的支持,而 duplicate key 明细模型可以存储明细数据、保证最细粒度的数据洞察。除此以外,Doris 还提供了强一致的物化视图,可以加速相对固定的分析场景,且物化视图完全不需人工处理、系统自动路由至最优的视图。

查询引擎方面,Doris 实现了向量化执行引擎,结合自身分布式的 MPP 查询框架,在多表 Join 场景相对业界产品具有更佳的表现。查询优化器方面,Doris 目前具备基于规则和基于代价的优化器,同时这部分能力仍在持续进化中。

实时性方面,Doris 保证数据实时性导入,高并发微批可以将数据实时性处理保证到很好,在更新和删除时要保证数据强一致性,同时数据导入过程中,Doris 提供了端到端的 Exactly-only 语义,保证数据不丢不重。

02

云原生时代的数据分析需求

首先看下当前常见的数据分析技术栈。数据存储在不同的数据源中,通过数据采集和预处理导入数仓中,之后满足不同业务需求建设比如数仓、数据湖、大数据平台等配合相应业务场景需求,在面对不同场景时可能会引入多个系统组件,整体架构复杂度较高。

纵观大数据系统的发展演进过程,移动互联网时代带来了数据量的暴增,而从 2006 年起 Hadoop 的诞生解决了海量数据的分析与处理。而随着数据处理分析需求的进一步发展,大数据技术栈百花齐放,新的技术不断出现,其中包括 Kafka、Pulsar 等消息系统以及 Spark、Flink 等流或批处理引擎,OLAP 方向更是有众多的优秀产品出现,例如 SQL on Hadoop 的 Impala、Kylin 以及 OLAP 数据库例如 Doris、Druid、Clickhouse、Greenplum 等,用户可能会选择多个组件来处理不同场景的问题。随着技术的进一步演进,降本增效成为行业趋势,开发者越来越希望统一架构,减少多个系统的运维压力、降低不同系统的学习成本。而随之云时代的发展,将大数据架构构建在云之上成为一种新的选择。

在新一轮技术背景下,原有架构呈现复杂度比较高,维护和使用都比较复杂,势必涉及数据多份存储和多份处理,性价比低。灵活性差,数仓支持结构化数据的分析与处理,但对半结构化和非结构化数据没有高效支持。

作为现代数据栈的核心,数据分析技术已经呈现出三大变革趋势,即实时化、统一化与云原生化。

实时化:千或万级高并发、毫秒级低延迟、高吞吐、走向分钟级的数据产出效率成为了数据分析技术的关键词。统一化:湖仓一体、在离线一体、流批一体等智能湖仓的理念加速了平台和接口的统一;计算模型的融合、多模数据类型支持进一步提高存储计算的效能,降低运维门槛。云原生化:数据仓库结合云的软硬件创新、资源弹性、安全可靠、随需而用等云原生特色,从根本上带给用户极致性价比和极简使用体验。技术和产品创新的本质是契合广大用户的诉求和新技术的演进趋势,SelectDB 就是在这样的时代背景下应运而生,引领最新的数仓技术和产品创新。

03

云原生时代实时数仓演进之路

SelectDB 核心架构是云原生数仓,也是当前国内首个真正实现多云中立的云原生实时数仓。

SelectDB 采取存储计算分离的架构, 以对象存储为主存储,提供高度可扩展、性价比极高的模式,在此之上提供共享缓存加速数据写入和查询、确保可用性和查询加速。缓存基础上不同业务创建不同 cluster,cluster 之间相互隔离,保证业务之间的性能与稳定。

04

SelectDB 核心功能

在这样架构之下 SelectDB Cloud 有几个特点。极致性能、融合统一、简单易用、高性价比、开源开放,内核完全基于 Apache Doris 打造,能与 Doris 保持完美兼容,同时还提供了众多企业特性来满足更多样的管控和安全需求。接下来详细介绍这 6 个特点。

  1. 极致性能

首先是极致性能。依托列式存储引擎、现代的 MPP 架构、向量化查询引擎、预聚合物化视图、数据索引、查询优化器的实现,SelectDB 在高并发低延迟和高吞吐查询上, 都达到了极速性能。2022 年 10 月,在 Clickhouse 发起的 ClickBench 数据库性能排行榜中,SelectDB 多项指标排名前列,性能业界领先。在 C6A 这一通用机型上,以大幅超越业界同类产品的性能表现取得了第一名的成绩,并一直保持到至今。其中如左图所见,在全部 40 多个 query 中近半数查询结果最佳,查询总耗时远低于行业排行前列的其他产品。

  1. 融合统一

作为一款云数仓,希望在云上为各类业务场景提供统一的分析体验:

具体表现是混合负载,可以去同时支撑多种分析 Workload,包括高并发报表、湖仓联邦分析、即席查询、统一数仓、ETL 及其他各种负载等。而这在云数仓中更容易实现,因为云数仓共享底层的存储和缓存,可以为不同业务负载创建不同的 cluster,cluster 之间天然隔离,不同 cluster 可以通过不同配置和模型的使用,得到不同使用负载的体验。这比以往通过大的集群支持多个业务可以得到更好的使用体验。

第二种是结构化、非结构化和半结构化数据的融合。数仓或大数据中面临的非结构化、半结构化数据越来越多,而 SelectDB 高效原生地支持了半结构化数据的高效存储和检索分析,在半结构化数据的灵活高效存储方面,支持了Array、JSONB、Map 等复合数据类型,支持灵活快速的 schame 变更,最重要的是支持动态 schema 表,可以自动识别数据的字段和类型、自动扩展新字段、动态扩展表结构 。在半结构化数据高效分析和处理方面,支持包含倒排索引、BKD 索引、N-Gram 等丰富的索引结构来加速检索分析,支持向量化的字符串处理和匹配函数 。

  1. 特点是简单易用

SelectDB 仍然保持 MySQL 协议兼容,支持标准 SQL 语法,在云的控制台上提供基于 WebUI 的数据库管理和开发工具。无需安装部署,一键创建集群;无需复杂参数设置,极简运维管理;提供了多种数据导入方式,方便数据快速入库。对 Spark,Flink,Kafka 以及新式数据处理工具 DBT 提供很好的支持。

  1. 高性价比

SelectDB 架构在云上,存储按量使用按量付费,计算按需弹性。多 cluster 之间通过调用共享数据,使得同一份数据消除冗余。通过和云计算基础设施进行深度适配,依托领先的存算分离架构设计,满足计算资源和存储资源的弹性伸缩,提供了极高的性价比。

  1. 开源开放

SelectDB 是基于开源 Apache Doris 进行构建的,与其完全兼容。SelectDB 提供与 Apache Doris 之间的高效数据互相迁移工具,并且与 Apache Doris 的使用高度兼容,确保了企业随时可以在 SelectDB 服务与自主搭建的 Apache Doris 互相切换

同时 SelectDB 可以运行于 AWS、阿里云、腾讯云、华为云上,在多云上提供云上的一致体验,且云的场合列表还在不断扩大。

  1. 企业特性

在数据安全方面,提供完备的权限管控、数据加密和备份恢复机制;在运维管理方面,提供对数仓服务全面的可观测性指标收集和可视化管理;在技术支持方面,拥有完善的工单管理系统和远程协助平台,提供多种级别的专家支持服务。

05

SelectDB Cloud 应用场景

SelectDB 支持多种数据分析场景,并提供了基于四大场景的解决方案:提供面向广告主的在线报表平台、用户画像与行为分析、湖仓一体的现代数据平台以及日志存储与分析平台。在此我们重点介绍其中的湖仓一体分析和日志存储分析这两大解决方案。

  1. 湖仓一体的现代化分析平台

当前企业普遍使用典型的湖仓并行架构方案,既有面向批量的多个组件、也有面向交互分析的多个组件,甚至不止一个湖一个仓。这样的数据平台解决方案存在的问题主要集中在复杂性高、性价比低、实时性差。采用了 SelectDB 的现代化数据平台方案将统一数据仓库和数据湖到单一平台,提供面向企业内部的 BI 报表和 Adhoc 分析,以及批量和增量 ETL 数据处理。它的特点就是以 SelectDB 云数仓为中心:提供三种数据集成方式(ETL、轻量 ELT、联邦查询)将数据接入到 SelectDB;存算分离架构降低资源成本、多计算集群设计实现计算隔离、多云一致保证开放性;在数仓之上提供多种分析负载的支持,相对于传统分析架构实现数倍的性能提升。

  1. 日志存储与分析

日志系统对于保障系统、业务稳定性至关重要,在故障排查、监控告警等中都需要用到日志。日志场景往往有以下几个特点:

① 数据写入量大、实时可见,在检索日志问题时需要最新数据的实时可见;

② 数据存储量大,日志发挥价值相对业务数据价值密度较高,对成本敏感;

③ 数据结构复杂,有大量的非结构化或半结构化数据,需要支持文本格式、json 格式;

④ 交互式查询对性能要求高,特别是需要支持文本检索。

基于以上问题,日志场景解决方案的想法基于 Doris 高性能向量化引擎底座,再加上 SelectDB 存算分离架构、轻量级倒排索引和时序数据管理达到更好的效果。具体实现包括:

① 通过服务端攒批、时序 Compaction、向量化执行引擎等支持高吞吐和实时写入;

② 通过存算分离的云原生架构、本地磁盘缓存和对象存储的分层分级存储、列式存储等降低日志存储成本

③ 通过轻量倒排索引、Dynamic Table、MPP 并行处理架构等实现半结构化数据的交互式查询

(1)上游数据写入

在上游写入方面,我们配置 Logstash 使用内置的http output plugin 将数据写入 SelectDB。

在下游查询方面,在 Grafana 中使用内置 MySQL 数据源,导入已有模板配置可视化日志看板、检索界面;在 BI 场景中,可以使用 Superset 等 BI 工具通过 MySQL 协议,即可开箱即用访问 SelectDB 进行可视化 BI 分析。

(2)日志存储与分析

我们也跟业界典型产品进行了性能对比,在写入速度方面 SelectDB 是 ES 的 4.2 倍,存储空间上只需要 ES 的五分之一,而查询性能相对 ES 实现了 2.3 倍的大幅领先。

SelectDB 一直秉承开源开放的价值观,对于上面介绍的倒排索引、TopN 优化、时序 Compaction 优化等关键技术,已经贡献到 ApacheDoris 社区。

值得注意的是,Apache Doris 2.0 Alpha 版本(
https://github.com/apache/doris/releases/tag/2.0.0-alpha1)已经发布,并实现了单节点数万 QPS 的高并发点查询能力、高性能的倒排索引、基于对象存储的冷热数据分离、基于代价模型的全新查询优化器以及 Pipeline 执行引擎等,欢迎大家下载体验。

文档更新时间: 2024-05-16 13:15   作者:admin