现代化实时数据仓库 SelectDB 产品全面解读

B站影视 2025-01-26 22:13 4

摘要:本次分享重点介绍了数据分析的痛点与机遇,SelectDB 的架构演进与优化,涵盖了多数据源集成、ETL 处理、实时查询及性能提升。通过支持复杂数据类型、日志查询优化及存储优势,SelectDB 为用户提供了高效的数据平台,简化系统架构,降低运维成本。

导读

本次分享重点介绍了数据分析的痛点与机遇,SelectDB 的架构演进与优化,涵盖了多数据源集成、ETL 处理、实时查询及性能提升。通过支持复杂数据类型、日志查询优化及存储优势,SelectDB 为用户提供了高效的数据平台,简化系统架构,降低运维成本。

主要介绍以下四个部分:

1. 数据分析的痛点与机遇

2. SelectDB 产品简介

3. SelectDB 的设计探索与创新

4. SelectDB 应用场景与用户案例

分享嘉宾|周飞 飞轮科技 云原生研发负责人

编辑整理|Neil

内容校对|李瑶

出品社区|DataFun

01 数据分析的痛点与机遇

在当今大数据时代,实时数据仓库的需求愈发重要。企业越来越多地依赖数据来支撑业务决策和创新,而“实时性”正逐渐成为影响数据分析和数据仓库系统选择的关键因素。那么,为什么实时数据仓库如此重要?我们需要如何构建一个实时数据仓库?

通过与用户的接触和反馈,可以发现企业对于数据分析的实时性有着越来越高的要求。实时数据仓库的构建和管理中,实时性主要体现在以下三方面:

数据服务的实时性:随着客户需求的提升,数据产品和服务的实时响应能力变得至关重要。尤其在金融、零售等行业,业务系统需要随时提供最新数据来支撑运营与决策。

数据处理的实时性:在数据进入数据仓库的速度上,企业要求越来越短的延迟。传统的批处理模式已经不能满足高频数据更新的需求,实时处理数据的能力成了一个重要考量。

查询与分析的实时性:数据仓库不仅需要快速存入数据,更需要高效的查询与分析。用户希望数据一旦进入仓库,即刻能够进行高效分析,从而缩短从数据生成到分析产出的时间差。

成本问题与降本增效的需求

在不断提高实时性的同时,企业也在关注数据分析过程中的成本问题。大数据领域的系统架构经过了二十多年的发展,尤其是基于 Hadoop 生态的技术栈已经相对成熟,但由于它庞大的架构体系,系统的维护和人力成本较高。传统的 Hadoop 生态系统通常包括 HDFS、MapReduce、Hive 等组件,且每个组件的维护和优化需要专门的人员。这种分散化、多模块的架构不仅增加了复杂度,也导致运维难度加大,使得企业需要投入大量资源去维护整个技术栈。

为了应对这些痛点,云原生架构成为企业构建实时数据仓库的重要机遇。云技术的发展使得许多企业能够轻松获得弹性资源,极大地缓解了传统大数据架构中的资源瓶颈。云原生的基础设施提供了以下两方面的优势:

云原生技术:在传统的 IT 架构中,企业往往需要为峰值和低谷同样的资源配置,但云原生技术允许按需扩展,支持企业只为所用资源付费,实现了更高的性价比。企业无需再维护本地的机房、服务器等硬件基础设施,降低了大量的固定成本。

统一化的架构整合:传统大数据技术栈中包含多个分散的组件,每个组件需要独立运维和优化。相比之下,云原生的数据平台可统一管理存储、计算和查询等服务,实现数据湖与数据仓库一体化、批处理与流处理一体化。比如,数据湖在一体化数据分析中能灵活处理结构化和非结构化数据,而统一架构有助于简化维护,减少开发和运维成本。

在这种背景下,企业有了抛弃旧技术栈、构建新一代实时数据仓库的迫切需求。SelectDB 产品正是顺应了这一趋势。通过云原生的技术优势,SelectDB 不仅能够帮助企业降低成本,还实现了数据分析全流程的统一化和自动化,打破了传统架构的技术限制。

02 SelectDB 产品简介

1. Apache Doris

Apache Doris 是一款采用 MPP 架构的实时分布式 OLAP 数据仓库,专注于高效的实时数据分析。Doris 项目于 2013 年内部开发,2017 年正式开源,目前在 GitHub 上获得了接近 13,000 星,全球已有超过 5,000 家企业采用,社区活跃度极高,累计贡献者超过 650 人,且曾连续数月在大数据开源项目中排名第一。

Doris 广泛应用于金融、互联网、电信、交通、物流、零售、制造和游戏等多个领域。其核心优势体现在以下几点:

实时数据处理:Doris 的设计支持毫秒级的数据加载和查询,满足了企业对实时数据分析的高要求。

高扩展性的 MPP 架构:Doris 利用 MPP 架构,实现大规模并行计算,确保在面对大数据集时仍能高效处理和快速分析。

简化的运维与管理:Doris 采用统一架构,减少了对复杂组件的依赖,降低了传统数据仓库的运维成本,使企业能够更高效地管理数据平台。

Doris 在各行业的广泛应用不仅展示了其在实时分析、扩展性和低运维成本方面的强大优势,也为 SelectDB 的设计提供了坚实的技术基础。

2. SelectDB

SelectDB 是基于 Apache Doris 开源项目构建的一个商业化产品,主要定位于实时数据分析平台。通过在 Apache Doris 之上进行进一步的包装和优化,SelectDB 在大数据生态系统中充当了高效的分析引擎,支持接入多种数据源并提供数据加工和 BI 分析服务。

SelectDB 可以接入多种数据源,支持包括 MySQL 等传统数据库、数据流、数据湖等各种不同的数据来源。对于数据湖中的数据,SelectDB 支持联邦查询,这样用户无需将数据物理导入至 SelectDB,即可直接进行分析。这种灵活的接入方式不仅简化了 ETL 过程,还确保数据分析的实时性。

SelectDB 支持多种数据应用,包括数据加工、BI 报表生成、机器查询等功能。作为大数据平台中的关键一环,SelectDB 通过高效的数据查询和处理能力,为用户提供了全方位的数据分析支持。

SelectDB 的三种产品形态

SelectDB Cloud:一种全托管的云端产品,由 SelectDB 自营。用户可以在阿里云、腾讯云等公有云平台上使用 SelectDB Cloud,无需自行管理基础设施。

阿里云数据库 SelectDB:由阿里云直接提供并集成在阿里云平台上的 SelectDB 服务,用户可以像使用其他云数据库一样便捷地获取。

SelectDB Enterprise:一种支持私有化部署的产品,适用于需要在企业自有 IDC、私有云中部署的场景。该版本满足了数据安全与合规的需求,适合无法将数据外泄的敏感应用场景。

03 SelectDB 的设计探索与创新

1. SelectDB 的四大设计理念

在设计 SelectDB 时,聚焦于以下四大核心理念,以确保其产品能满足用户对实时数据分析的需求,并在云环境中实现高效、灵活的应用:

实时极速:SelectDB 重点提升数据导入和查询的实时性,以满足用户对数据分析速度的高要求,实现毫秒级数据处理和查询响应。

融合统一:通过兼容多种数据源,SelectDB 能够在单一系统中处理不同数据来源的查询和存储需求,提供一致的数据服务,适应多样化的数据处理场景。

云原生架构:充分利用云技术的弹性与资源优势,SelectDB 基于云原生架构设计,以降低用户的基础设施成本,并实现高效的资源利用。

开放生态:SelectDB 保持开放态度,鼓励用户参与开源社区,不仅能够反馈需求,还可以直接参与开发,从而确保产品在实际应用中持续优化和创新。

2. 实时极速

在设计 SelectDB 时,“实时极速”被视为数据价值的核心之一。团队认为,数据的时效性越高,其对决策支持的价值就越大。在大数据时代,用户对实时数据的需求已从过去的“天级”“小时级”提升到“分钟级”甚至“秒级”,而 SelectDB 正是为满足这一需求而生的。

要评估数据是否达到实时性,主要考量以下两方面:

数据导入速度:数据从源系统导入 SelectDB 的速度是否足够快,确保不会因长时间等待而降低数据价值。

数据查询响应:数据的查询响应时间是否足够短,以便支持秒级甚至亚秒级别的快速查询。特别是在需要即时数据分析的场景下,传统的大数据查询延迟已经无法满足需求,SelectDB 通过设计优化在极短时间内实现查询响应。

为提升数据导入的实时性,SelectDB 提供了多样化的数据导入 API 和工具。通过集成的 Flink Connector、Spark Connector 等工具,SelectDB 能够从流式数据源按需导入数据,并支持设定 10 秒、20 秒等灵活的间隔来确保导入的实时性。

此外,SelectDB 在小批量高频导入上也做了深入优化,具体体现在以下两方面:

更新模型支持:SelectDB 提供了原地更新的组件模型,允许数据在导入时直接更新到已有数据行上。这在传统大数据架构中是较为复杂的,因为小批量高频更新通常会牺牲查询性能,而 SelectDB 通过优化设计有效解决了这一难题。

Group Commit 优化:SelectDB 实现了“攒批”机制(Group Commit),在实时性与查询效率之间进行平衡,用户可按需选择导入和查询模式,从而实现最佳性能。

在数据结构的动态变化上,SelectDB 支持轻量级的 schema 更改,用户可以在秒级时间内完成加列、减列等操作,几乎对系统无感知。这一功能解决了传统系统在处理大数据表结构调整时的延迟问题,使用户在需要频繁进行 schema 变更时也能灵活应对,满足了用户随时调整数据模型的需求。

攒批(Group Commit)功能

在数据导入过程中,SelectDB 的“攒批”功能为小批量数据的高效写入提供了灵活方案。该功能通过异步和同步模式的灵活设置,大幅优化了数据导入的实时性和性能。

异步模式:在异步模式下,用户提交的数据立即落盘为 WAL(Write-Ahead Log),而请求会在数据写入前端返回,用户提交的数据将会在一定时间后完成导入并可查询。(例如,用户可执行单条“INSERT INTO”语句将一行数据写入,这种方式通常与大数据系统不兼容(因其数据合并和读写优化需求),而 SelectDB 提供了对该负载的兼容。在异步模式下,数据可见性延迟可达 10 秒左右,适合对数据可见性要求较低的用户。)

同步模式:同步模式适用于数据导入后立即可见的场景。用户在提交数据时,系统会在指定的延迟时间内完成数据写入并返回查询结果。用户可自行设定最长等待时间,当数据写入请求返回时,即可立即查询结果。这种模式兼顾了数据实时性的需求,但会带来一定的写入延迟。

非攒批模式:非攒批模式即为原始模式,不进行数据批次积累,数据直接导入。尽管可提供实时的可见性,但性能较差,适合对数据实时性和性能要求极高的特定场景。

自定义调优参数:SelectDB 允许用户根据实际需求自定义调节攒批参数,包括:数据可见性间隔(设定数据在异步模式下的可见时间)、积累批次最大值(控制每次积累的数据批次大小)。这种灵活的配置使得 SelectDB 可以应对不同场景的性能和可见性需求,用户可以根据实际业务场景进行最优配置。目前,攒批功能在 SelectDB 的两类 API 上均已实现,可涵盖绝大多数用户的使用场景。

攒批功能显著提高了小批量数据导入的效率,使得数据导入可以在更短的时间内完成并可查询,同时为不同的场景提供了灵活的可调参数。这种创新功能已被广泛应用,帮助用户在小批量、高频次数据导入中实现最佳的实时性与性能平衡。

查询速度方面,SelectDB 在多个大数据应用场景中表现出色,通过自研优化器和基于 Pipeline 的执行框架实现了极致的查询效率。以下为 SelectDB 在主要查询场景中的优势:

大宽表查询:SelectDB 在大宽表查询中性能领先,特别是在 Clickbench 这样的系统中表现卓越,甚至达到了榜首水平。这种优势得益于 SelectDB 在数据结构和执行优化上的创新,使得大宽表的查询速度大幅提升。

多表 JOIN 查询在多表 JOIN 场景中(如 TPCH、TPCHS 测试基准),SelectDB 同样具备数量级的性能领先。通过多项执行优化技术(例如基于物化视图、Runtime Filter 等),SelectDB 在复杂查询中的表现远超传统系统。

高性能点查:SelectDB 在高并发点查上具备独特的优化,能够实现数量级的吞吐和低延迟,达到了万亿级 QPS 的表现。多项技术的结合,包括对高并发的吞吐率和低延迟的深度优化,使得在点查场景中,SelectDB 展示出极强的性能。

为了提升在高频点查场景中的性能,SelectDB 针对 IO 和查询规划进行了创新优化。以下为关键的改进措施:

行列混合存储优化 IO:传统大数据系统基于列式存储,导致每次查询特定行时需要从多列读取数据,产生大量随机 IO。SelectDB 通过引入“行列混合存储”的方案,将每行数据以结构化的形式存入内部列,从而在查询时可以只读取该内部列,减少 IO 操作频次。该方案通过存储空间换取查询时间,将原先 1000 列的随机 IO 缩减为 1 个,大幅提升 IO 效率。

专用的点查规划与执行路径:在查询规划方面,SelectDB 针对点查操作设计了专门的规划器和执行路径。对于简单的点查请求,SelectDB 能够自动识别查询条件的明确性,并采用简化的短路执行路径,避免了传统优化器的复杂计算过程。这种路径能够快速锁定目标数据节点并执行查询,不需要进行数据 shuffle,从而提高查询速度。

预编译 SQL 语句:对于高频点查的场景,SelectDB 通过 Prepare Statement 优化,对用户的 SQL 语句进行预编译。这减少了重复的解析和语义分析,降低了高 QPS(每秒查询量)下的解析压力,实现更高的吞吐性能。

缓存与索引优化:SelectDB 在点查上还采用了基于磁盘和内存的缓存,并结合索引技术进一步加速查询响应。在典型三节点集群配置下,点查吞吐量可达 2 万-3 万 QPS,查询延迟维持在个位数毫秒级别,为用户提供了极高的查询性能和低延迟体验。

3. 融合统一

SelectDB 致力于通过一套系统支持多种工作负载,简化 ETL 和查询。其架构演进如下:

单库单仓库:传统模式,以单一库或仓库为核心,处理有限工作负载,ETL 依赖外部组件。

混合数据源:支持多源数据进入仓库,扩大工作负载能力,但 ETL 效率仍受限。

融合统一:SelectDB 通过集成 ETL 和查询能力,实现对内外表的统一查询,支持多工作流,简化数据处理流程,实现"all-in-one"的高效架构。

在融合统一方面,SelectDB 通过对多种数据源(如 HICE、Hive、Iceberg、MySQL 等)的支持,提升了查询效率,尤其是在湖数据查询和 ETL 性能上取得显著优化:

多源数据集成:SelectDB 支持通过 Catalog 方式集成多种外部数据源,优化外表查询的性能。

湖数据查询优化:针对湖数据查询,SelectDB 在规划层面进行了优化,通过统一统计信息和 workload 理解,比传统查询引擎如 Trino、Presto 表现更优。

实时与批处理的统一:SelectDB 支持数据实时导入和库内ETL,大幅提升性能,相较于 Hive、Spark 等有数量级性能优势。

SelectDB 通过支持复杂数据类型(如 map、array、variant)实现数据类型的多样化和简便性,尤其适用于海量日志数据场景。相比于传统结构,这些复杂类型能有效简化用户操作:

复杂数据类型支持:SelectDB 除传统 MySQL 数据类型外,支持 map、array 等复杂类型及自动类型推导。用户无需手动定义类型,系统会根据存储内容自动识别类型,简化操作。

日志场景优化:针对海量日志场景,SelectDB 提供更高的写入吞吐和更优的性价比,尤其在与 ES(Elasticsearch)系统对比中显示出显著的存储效率和性能优势,减少了存储开销并提升了查询性能。

4. 云原生架构

在 SelectDB Cloud 的原生架构设计中,系统将计算和存储彻底解耦,以实现高性价比和灵活的资源管理。架构主要由接入层、计算节点和存储层组成,关键特性包括:

统一接入层和云化服务:SelectDB Cloud 作为云化服务,通过统一接入层让用户访问系统的计算与存储资源,提供一致的访问体验。

计算与存储分离:存储层采用单副本共享的对象存储方案,既降低成本,又支持计算层的弹性扩展。对象存储虽然需要网络访问,但系统通过本地缓存来保持性能,主要缓存用户查询的热数据。通常情况下,为过去 7 天的数据配置缓存即可,降低整体热数据成本。

性能优化:为了缓解对象存储访问的延迟,SelectDB 实现了多层次的缓存,包括基于内存的缓存和预读优化,使得常用数据能够快速被检索。

弹性与自动扩缩容:系统支持根据业务高峰和低峰自动扩缩容,用户可以配置策略来自动调整计算资源,甚至在没有流量时实现计算节点的完全停机,仅保留仓库存储,降低不必要的成本。

多计算集群和细粒度隔离:支持多计算集群的隔离,用户可以将导入和查询分离,并且同一数据集可以供不同业务使用,以满足不同的查询需求,灵活性大大提升。

SelectDB Cloud 的原生架构设计,不仅在性能和弹性上有所保障,还能为用户在复杂业务负载下提供资源优化和成本控制。

5. 开放生态

在生态方面,SelectDB 基于 Apache Doris 构建,确保与 Apache Doris 的存储格式和接口兼容。这个设计使得 SelectDB 和 Doris 之间可以随时切换,用户在使用开源版本时如果感受到规模扩大后对稳定性和商业支持的需求,可以轻松迁移到 SelectDB 商用版本。而对于需要更高自运维能力的用户,也可以在 SelectDB 与 Doris 之间随时转换,保持灵活性。

此外,SelectDB、Doris 均基于 MySQL 协议,因此任何支持 MySQL 连接的工具(如 MySQL 客户端、JDBC 等)都可以无缝连接到这些系统。这种兼容性大大简化了系统的集成和使用,尤其对于已经熟悉 MySQL 的用户,能够迅速上手并集成进现有的技术栈。

04 SelectDB 应用场景与用户案例

1. 案例-统一分析平台

以某知名服装生产商为例,该公司的业务流程复杂,涉及多种工作负载,如实时报表、ETL 处理以及数据导出等。之前,企业使用了多个不同的系统,如 GTP、ADB 等,管理这些系统需要大量的人力和维护成本。为了保证系统的稳定性,公司需要至少四五名运维人员来管理这些复杂的系统架构。这个多系统的环境带来了较高的运维成本和管理难度。

在引入 SelectDB 之后,原有的多个系统被替换为 SelectDB,后者实现了系统的融合统一,能够处理不同的数据流,例如支持 Flink 以及数据湖查询等。这样一来,系统架构变得更加简化,不再需要多套系统之间的配合工作,整体性能得到了提升,同时运维的复杂性和成本也大大降低。SelectDB 不仅提升了性能,还能支持千亿级别的数据处理,提供了便捷的横向扩展能力,帮助该企业建立了一个统一的数据服务平台。这一案例展示了 SelectDB 在制造业中作为通用数据平台的应用效果,尤其是在减少系统复杂性、降低成本和提升性能方面的优势。

2. 案例-日志搜索分析

在日志场景中,SelectDB 替代了传统的 ES 和 Loki 等系统,带来了显著的成本下降。原本,ES 在性能上表现良好,但存储成本较高;而 Loki 虽然存储成本较低,但性能稍逊。通过使用 SelectDB,整体成本大幅下降,存储和性能都优于 ES。具体来说, SelectDB 在日志检索方面的性能优越,支持高效的查询,同时大大降低了存储开销。接入 SelectDB 后,用户的操作变得更加简便,并且可以直接使用该系统来替代原有的 ELK 生态。

这种转换带来的好处不仅限于成本节省,还使得用户的使用体验得到了提升,尤其是在需要处理大量日志数据的场景下。SelectDB 的优越性能和低成本使得它成为日志管理和分析的理想选择。这也说明了 SelectDB 在日志场景中的突出能力,能够为用户提供一个高效、低成本的解决方案。对于有兴趣深入了解的朋友,可以通过私下交流进一步探讨更多细节,或在展台进行面对面的交流。

以上就是本次分享的内容,谢谢大家。

INTRODUCTION

周飞

飞轮科技

云原生研发负责人

来源:一个数据人的自留地

相关推荐