导读 本次分享重点介绍了数据分析的痛点与机遇,SelectDB 的架构演进与优化,涵盖了多数据源集成、ETL 处理、实时查询及性能提升。通过支持复杂数据类型、日志查询优化及存储优势,SelectDB 为用户提供了高效的数据平台,简化系统架构,降低运维成本。
1. 数据分析的痛点与机遇
2. SelectDB 产品简介
3. SelectDB 的设计探索与创新
4. SelectDB 应用场景与用户案例
分享嘉宾|周飞 飞轮科技 云原生研发负责人
编辑整理|Neil
内容校对|李瑶
出品社区|DataFun
数据分析的痛点与机遇
数据服务的实时性:随着客户需求的提升,数据产品和服务的实时响应能力变得至关重要。尤其在金融、零售等行业,业务系统需要随时提供最新数据来支撑运营与决策。
数据处理的实时性:在数据进入数据仓库的速度上,企业要求越来越短的延迟。传统的批处理模式已经不能满足高频数据更新的需求,实时处理数据的能力成了一个重要考量。
查询与分析的实时性:数据仓库不仅需要快速存入数据,更需要高效的查询与分析。用户希望数据一旦进入仓库,即刻能够进行高效分析,从而缩短从数据生成到分析产出的时间差。
云原生技术:在传统的 IT 架构中,企业往往需要为峰值和低谷同样的资源配置,但云原生技术允许按需扩展,支持企业只为所用资源付费,实现了更高的性价比。企业无需再维护本地的机房、服务器等硬件基础设施,降低了大量的固定成本。
统一化的架构整合:传统大数据技术栈中包含多个分散的组件,每个组件需要独立运维和优化。相比之下,云原生的数据平台可统一管理存储、计算和查询等服务,实现数据湖与数据仓库一体化、批处理与流处理一体化。比如,数据湖在一体化数据分析中能灵活处理结构化和非结构化数据,而统一架构有助于简化维护,减少开发和运维成本。
SelectDB 产品简介
实时数据处理:Doris 的设计支持毫秒级的数据加载和查询,满足了企业对实时数据分析的高要求。
高扩展性的 MPP 架构:Doris 利用 MPP 架构,实现大规模并行计算,确保在面对大数据集时仍能高效处理和快速分析。
简化的运维与管理:Doris 采用统一架构,减少了对复杂组件的依赖,降低了传统数据仓库的运维成本,使企业能够更高效地管理数据平台。
2. SelectDB
SelectDB Cloud:一种全托管的云端产品,由 SelectDB 自营。用户可以在阿里云、腾讯云等公有云平台上使用 SelectDB Cloud,无需自行管理基础设施。
阿里云数据库 SelectDB:由阿里云直接提供并集成在阿里云平台上的 SelectDB 服务,用户可以像使用其他云数据库一样便捷地获取。
SelectDB Enterprise:一种支持私有化部署的产品,适用于需要在企业自有 IDC、私有云中部署的场景。该版本满足了数据安全与合规的需求,适合无法将数据外泄的敏感应用场景。
SelectDB 的设计探索与创新
实时极速:SelectDB 重点提升数据导入和查询的实时性,以满足用户对数据分析速度的高要求,实现毫秒级数据处理和查询响应。
融合统一:通过兼容多种数据源,SelectDB 能够在单一系统中处理不同数据来源的查询和存储需求,提供一致的数据服务,适应多样化的数据处理场景。
云原生架构:充分利用云技术的弹性与资源优势,SelectDB 基于云原生架构设计,以降低用户的基础设施成本,并实现高效的资源利用。
开放生态:SelectDB 保持开放态度,鼓励用户参与开源社区,不仅能够反馈需求,还可以直接参与开发,从而确保产品在实际应用中持续优化和创新。
数据导入速度:数据从源系统导入 SelectDB 的速度是否足够快,确保不会因长时间等待而降低数据价值。
数据查询响应:数据的查询响应时间是否足够短,以便支持秒级甚至亚秒级别的快速查询。特别是在需要即时数据分析的场景下,传统的大数据查询延迟已经无法满足需求,SelectDB 通过设计优化在极短时间内实现查询响应。
更新模型支持:SelectDB 提供了原地更新的组件模型,允许数据在导入时直接更新到已有数据行上。这在传统大数据架构中是较为复杂的,因为小批量高频更新通常会牺牲查询性能,而 SelectDB 通过优化设计有效解决了这一难题。
Group Commit 优化:SelectDB 实现了“攒批”机制(Group Commit),在实时性与查询效率之间进行平衡,用户可按需选择导入和查询模式,从而实现最佳性能。
异步模式:在异步模式下,用户提交的数据立即落盘为 WAL(Write-Ahead Log),而请求会在数据写入前端返回,用户提交的数据将会在一定时间后完成导入并可查询。(例如,用户可执行单条“INSERT INTO”语句将一行数据写入,这种方式通常与大数据系统不兼容(因其数据合并和读写优化需求),而 SelectDB 提供了对该负载的兼容。在异步模式下,数据可见性延迟可达 10 秒左右,适合对数据可见性要求较低的用户。)
同步模式:同步模式适用于数据导入后立即可见的场景。用户在提交数据时,系统会在指定的延迟时间内完成数据写入并返回查询结果。用户可自行设定最长等待时间,当数据写入请求返回时,即可立即查询结果。这种模式兼顾了数据实时性的需求,但会带来一定的写入延迟。
非攒批模式:非攒批模式即为原始模式,不进行数据批次积累,数据直接导入。尽管可提供实时的可见性,但性能较差,适合对数据实时性和性能要求极高的特定场景。
自定义调优参数:SelectDB 允许用户根据实际需求自定义调节攒批参数,包括:数据可见性间隔(设定数据在异步模式下的可见时间)、积累批次最大值(控制每次积累的数据批次大小)。这种灵活的配置使得 SelectDB 可以应对不同场景的性能和可见性需求,用户可以根据实际业务场景进行最优配置。目前,攒批功能在 SelectDB 的两类 API 上均已实现,可涵盖绝大多数用户的使用场景。
大宽表查询:SelectDB 在大宽表查询中性能领先,特别是在 Clickbench 这样的系统中表现卓越,甚至达到了榜首水平。这种优势得益于 SelectDB 在数据结构和执行优化上的创新,使得大宽表的查询速度大幅提升。
多表 JOIN 查询在多表 JOIN 场景中(如 TPCH、TPCHS 测试基准),SelectDB 同样具备数量级的性能领先。通过多项执行优化技术(例如基于物化视图、Runtime Filter 等),SelectDB 在复杂查询中的表现远超传统系统。
高性能点查:SelectDB 在高并发点查上具备独特的优化,能够实现数量级的吞吐和低延迟,达到了万亿级 QPS 的表现。多项技术的结合,包括对高并发的吞吐率和低延迟的深度优化,使得在点查场景中,SelectDB 展示出极强的性能。
行列混合存储优化 IO:传统大数据系统基于列式存储,导致每次查询特定行时需要从多列读取数据,产生大量随机 IO。SelectDB 通过引入“行列混合存储”的方案,将每行数据以结构化的形式存入内部列,从而在查询时可以只读取该内部列,减少 IO 操作频次。该方案通过存储空间换取查询时间,将原先 1000 列的随机 IO 缩减为 1 个,大幅提升 IO 效率。
专用的点查规划与执行路径:在查询规划方面,SelectDB 针对点查操作设计了专门的规划器和执行路径。对于简单的点查请求,SelectDB 能够自动识别查询条件的明确性,并采用简化的短路执行路径,避免了传统优化器的复杂计算过程。这种路径能够快速锁定目标数据节点并执行查询,不需要进行数据 shuffle,从而提高查询速度。
预编译 SQL 语句:对于高频点查的场景,SelectDB 通过 Prepare Statement 优化,对用户的 SQL 语句进行预编译。这减少了重复的解析和语义分析,降低了高 QPS(每秒查询量)下的解析压力,实现更高的吞吐性能。
缓存与索引优化:SelectDB 在点查上还采用了基于磁盘和内存的缓存,并结合索引技术进一步加速查询响应。在典型三节点集群配置下,点查吞吐量可达 2 万-3 万 QPS,查询延迟维持在个位数毫秒级别,为用户提供了极高的查询性能和低延迟体验。
单库单仓库:传统模式,以单一库或仓库为核心,处理有限工作负载,ETL 依赖外部组件。
混合数据源:支持多源数据进入仓库,扩大工作负载能力,但 ETL 效率仍受限。
融合统一:SelectDB 通过集成 ETL 和查询能力,实现对内外表的统一查询,支持多工作流,简化数据处理流程,实现"all-in-one"的高效架构。
多源数据集成:SelectDB 支持通过 Catalog 方式集成多种外部数据源,优化外表查询的性能。
湖数据查询优化:针对湖数据查询,SelectDB 在规划层面进行了优化,通过统一统计信息和 workload 理解,比传统查询引擎如 Trino、Presto 表现更优。
实时与批处理的统一:SelectDB 支持数据实时导入和库内ETL,大幅提升性能,相较于 Hive、Spark 等有数量级性能优势。
复杂数据类型支持:SelectDB 除传统 MySQL 数据类型外,支持 map、array 等复杂类型及自动类型推导。用户无需手动定义类型,系统会根据存储内容自动识别类型,简化操作。
日志场景优化:针对海量日志场景,SelectDB 提供更高的写入吞吐和更优的性价比,尤其在与 ES(Elasticsearch)系统对比中显示出显著的存储效率和性能优势,减少了存储开销并提升了查询性能。
统一接入层和云化服务:SelectDB Cloud 作为云化服务,通过统一接入层让用户访问系统的计算与存储资源,提供一致的访问体验。
计算与存储分离:存储层采用单副本共享的对象存储方案,既降低成本,又支持计算层的弹性扩展。对象存储虽然需要网络访问,但系统通过本地缓存来保持性能,主要缓存用户查询的热数据。通常情况下,为过去 7 天的数据配置缓存即可,降低整体热数据成本。
性能优化:为了缓解对象存储访问的延迟,SelectDB 实现了多层次的缓存,包括基于内存的缓存和预读优化,使得常用数据能够快速被检索。
弹性与自动扩缩容:系统支持根据业务高峰和低峰自动扩缩容,用户可以配置策略来自动调整计算资源,甚至在没有流量时实现计算节点的完全停机,仅保留仓库存储,降低不必要的成本。
多计算集群和细粒度隔离:支持多计算集群的隔离,用户可以将导入和查询分离,并且同一数据集可以供不同业务使用,以满足不同的查询需求,灵活性大大提升。
SelectDB 应用场景与用户案例
分享嘉宾
INTRODUCTION
周飞
飞轮科技
云原生研发负责人
活动推荐
往期推荐
某大型制造集团的Power BI国产化替换实践
Agent规划能力提升:结构化的思考记忆、类似OpenAI o1的“慢思考”
李继刚:Prompt的道与术
数据治理的自动化与智能化探索
小红书为何让歪果仁上头?推荐算法超牛,2篇核心论文揭秘
知乎直答:AI 搜索产品从 0 到 1 实践探索
「TikTok 难民」大批涌入,小红书会面临什么技术挑战?
阿里数据治理进化论:基于瓴羊Dataphin的多引擎兼容与统一资产消费实践
RAG+Agent:大模型在金融领域的应用探索
Ray 在 Bilibili 的场景探索与落地实践
点个在看你最好看
SPRING HAS ARRIVED