云数据库SelectDB 产品解析及最佳实践

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 2023年10月31日-11月2日,云栖大会在杭州举办,阿里云正式对外发布了云原生全托管产品——“阿里云数据库 SelectDB 版”,SelectDB 是基于 Apache Doris 内核打造的聚焦于企业大数据实时分析需求的企业级产品,通过深度融合云随需而用的特性,构建起云原生存算分离的全新架构,面向企业海量数据的实时分析需求提供极速实时、融合统一、简单易用的云上数仓服务。

Apache Doris 是全球流行的开源 OLAP 分析引擎,在全球范围内拥有广泛的用户群体。目前,全球中大型企业用户已突破 2000 家 ,覆盖金融、互联网、能源、制造、通信、物流等数十个行业, 赢得了数万名用户的喜爱。在社区活跃度方面,目前项目已在 GitHub 获得近 10000 Star,汇集国内外近 600 名社区开发者,月度活跃贡献者数量连续数月位居全球大数据开源项目榜首,已成长为全球大数据领域最活跃的开源项目之一。

云数据库 SelectDB 版的核心优势

01 极致的查询性能

2022年10月,SelectDB凭借优异的技术表现登顶全球分析型数据库榜单 ClickBench,多项指标世界第一,并在业界最为通用的 c6a.4xlarge、500gb gp2 机型下排行全球第一。除此之外,SelectDB 在宽表聚合、多表关联和高并发点查场景下也表现出优异的性能。

▶︎宽表聚合场景下,使用 SSB-FLAT 测试,SelectDB 是 ClickHouse 的 3.4 倍,是 Presto 的 92 倍,是业界标杆产品 Snowflake 的 6 倍。

▶︎多表关联场景下,使用 TPC-H SF100 测试,SelectDB 的性能可达到 Redshift 的 1.5 倍,ClickHouse 的 49 倍,同时是业界标杆产品 Snowflake 的 2.5 倍。

▶︎高并发点查场景下,使用 YCSB 测试集,SelectDB 在 10 列测试中,主键高并发点查能力提升 20 倍;在 100 列测试中,主键高并发点查吞吐是某云产品 H 的 2.5 倍,非主键高并发点查吞吐是某云产品 H 的 11 倍。

SelectDB如此卓越的性能主要得益于以下“黑科技”的支持:

▶︎更智能的全新查询优化器:SelectDB 采取更先进的 Cascades 框架、基于丰富的统计信息,实现了更智能化的自适应调优,在绝大多数场景无需任何调优和 SQL 改写即可实现极致的查询性能,同时对复杂 SQL 支持得更加完备,可完整支持 TPC-DS 全部 99 个 SQL。

▶︎MPP执行模型和自适应的并行执行引擎:SelectDB 采取 MPP 并行执行模型,可以充分利用节点间和节点内的并行计算能力,同时引入了自适应的 Pipeline 执行模型,由数据驱动控制流变化、减少了线程频繁创建和销毁带来的开销,实现了阻塞操作的异步化和资源池化以及更加系统资源的灵活分配,提升了 SelectDB 对于 CPU 多机多核的资源利用率,在混合负载场景下获得更高效的执行效率。

▶︎向量化执行引擎和执行算子优化:SelectDB 实现了全面向量化,包括查询、导入、Schema Change、Compaction、数据导出、UDF等,通过向量化减少虚函数调用与Cache Miss、进一步利用 SIMD 指令,充分发挥现代 CPU 的计算能力。同时通过对执行算子的优化,在宽表聚合和多表关联场景都获得了更高的查询性能。

▶︎丰富的索引结构和高效的存储引擎: SelectDB 支持前缀索引、ZoneMap、Bitmap、Bloom Filter、倒排索引等多种索引结构进行查询时数据剪枝优化。还引入行列混合存储以及行级 Cache,结合点查询短路径优化,最终实现点查询并发能力提升 20 倍。同时 SelectDB 还支持多种存储模型,可以针对使用场景进一步提升性能。

02 存算分离全新架构

基于阿里云成熟的云基础设施,云数据库 SelectDB 版采用云原生存算分离的架构,全量数据存储于价格低廉的对象存储 OSS 中,大幅降低了存储和计算的成本,经测算,使用云数据库 SelectDB 版所需成本仅是企业自建部署成本的1/5 - 1/2

存储与计算的分离,带来的最大优势是存储和计算可以独立扩缩容、按需扩缩容。其次,为满足用户对同一份数据上的分析负载隔离的需求(例如,导入的工作负载与查询的负载进行隔离,Adhoc 的大查询负载和在线点查询的负载间相互隔离),避免不同负载间相互抢占资源,云数据库 SelectDB 版提供了同一个实例多个物理计算集群(Multi-Cluster)的特性,用户可按需创建多个计算集群但共享同一份数据,同时多集群之间的资源是物理隔离的,这样更好的保证了隔离性

03 融合统一的分析体验

云数据库 SelectDB 版可以提供融合统一的解决方案,可满足用户在多种典型的数据处理与分析场景的需求,在一套系统中即可完成点查询、报表分析、即席查询、ETL/ELT 等多种查询负载。同时,SelectDB在 ETL/ELT 场景性能表现优异,在相同资源下,其速度是 Hive 的 54 倍、Spark 的 12 倍。

与此同时,融合统一的特性离不开联邦查询能力和对半结构化数据的支持:

1. 联邦查询:Multi-Catalog 功能支持多种异构数据源的元数据自动映射与同步,目前已经支持 Hive、Hudi、Iceberg、DLF、MaxCompute、Elasticsearch、Trino、ClickHouse、Oceanbase 等数十种数据源,兼容世面上主流的开放湖仓格式和 Metastore,实现了便捷的元数据管理和数据打通,在此基础上可实现联邦查询。该能力的推出,不仅简化了系统搭建和运维过程,而且为用户提供更加统一的使用体验。

2. 半结构化数据类型的支持:支持 Array、JSON、Map 等复合数据类型和动态 Schema 特性,简化了结构化数据写入流程,降低了写入难度。此外还提供倒排索引、NGram BloomFilter 、BKD 索引等丰富的索引结构,可实现对结构化/半结构化数据的高效分析和处理。该能力使 SelectDB 在日志存储分析场景下比 Elasticsearch 更具优势,性价比较 Elasticsearch 提升 10 倍

云数据库 SelectDB 版可以提供融合统一的解决方案,可满足用户在多种典型的数据处理与分析场景的需求,在一套系统中即可完成点查询、报表分析、即席查询、ETL/ELT 等多种查询负载。同时,SelectDB在 ETL/ELT 场景性能表现优异,在相同资源下,其速度是 Hive 的 54 倍、Spark 的 12 倍。

与此同时,融合统一的特性离不开联邦查询能力和对半结构化数据的支持:

1. 联邦查询:Multi-Catalog 功能支持多种异构数据源的元数据自动映射与同步,目前已经支持 Hive、Hudi、Iceberg、DLF、MaxCompute、Elasticsearch、Trino、ClickHouse、Oceanbase 等数十种数据源,兼容世面上主流的开放湖仓格式和 Metastore,实现了便捷的元数据管理和数据打通,在此基础上可实现联邦查询。该能力的推出,不仅简化了系统搭建和运维过程,而且为用户提供更加统一的使用体验。

2. 半结构化数据类型的支持:支持 Array、JSON、Map 等复合数据类型和动态 Schema 特性,简化了结构化数据写入流程,降低了写入难度。此外还提供倒排索引、NGram BloomFilter 、BKD 索引等丰富的索引结构,可实现对结构化/半结构化数据的高效分析和处理。该能力使 SelectDB 在日志存储分析场景下比 Elasticsearch 更具优势,性价比较 Elasticsearch 提升 10 倍

04 极简易用的使用体验

阿里云云数据库 SelectDB 版为用户提供了极简易用的使用体验,具体表现在以下几个方面:

1. 提供丰富的导入方式:云数据库 SelectDB 版提供了丰富易用的数据导入方式,包括Stream Load、OSS Load 以及为打通周边大数据生态进行连接导入的 Connector插件等,可以满足用户实时小批量数据导入和批量数据导入和集成的需求。

2. 高效的数据更新能力:支持主键表(Unique Key)进行高效的数据更新,并对 Upsert、条件更新/条件删除、部分列更新、分区覆盖等各类更新提供了完备的支持,不仅满足高效灵活的数据更新需求,还可以对海量可变的数据更新提供支持。

3. 支持MySQL连接协议:云数据库 SelectDB 版支持MySQL连接协议。用户可以使用MySQL Client、JDBC 和 DBeaver来连接使用阿里云数据库SelectDB版,对于用户来说节省了很多学习成本,简单易用。

4. 可视化控制台:云数据库 SelectDB 版提供了可视化控制台,方便管理者及开发者对大量任务进行管理。

云数据库 SelectDB 版四大解决方案

01 在线高并发报表与分析

典型场景:

主要服务在线业务、大量用户实时访问的在线高并发报表与分析,典型场景包括广告营销报表、保险客户分析、物流实时看板、交易明细查询等。

现状分析:

传统解决方案面临的挑战包括数据从产生到可见的延时高(小时级),查询响应速度慢并发低(仅支持数十并发),同时易发生数据丢失或重复,服务可用性差等问题。

如何解决:

▶︎支持通过 HTTP / JDBC 实时导入、内置数据库 CDC 同步、数据流式导入等方式导入数据,可有效缩短数据延时。

▶︎利用行列混存、向量化执行引擎、预聚合模型等技术,结合分区分桶裁剪、索引裁剪、执行计划短路等手段,可大幅提升查询速度及并发度。

▶︎支持事务性两阶段导入,基于云的对象存储进行数据持久化,可实现数据不丢不重。

▶︎支持在线扩容、升级自动副本均衡,支持多集群互备容灾,可实现服务高可用。

方案收益:

▶︎可达到 100 万行/秒的实时写入,数据可见性最快可以做到秒级别。

▶︎可支撑单机 3 万 QPS 的高并发,查询延时 99 分位 200ms 以内。

02 用户画像与行为分析

典型场景:

通过用户画像分析,可以洞察用户的行为、兴趣、需求等信息,更好地把握用户的生命周期,为企业提供精细化的营销和服务;通过用户行为分析,可以实现个性化、精细化的运营,以更加灵活的方式触达用户,提升用户的体验。

现状分析:

传统解决方案面临的挑战包括计算分析过程复杂,难以实时响应查询;表结构不灵活,不适应灵活的业务变化(如添加或删除列);同时,当用户数据发生变化时,原有数据无法实时更新。

如何解决:

▶︎支持丰富高效的行为分析、画像分析函数,可简化开发流程、提升开发效率。

▶︎支持高表正交位图技术,可实现画像场景的秒级圈人。

▶︎通过轻量级加减列以及动态表等技术,可支持行为分析业务属性频繁变动。

▶︎通过写时合并技术(MOW),可支持画像场景的宽表列实时更新。

方案收益:

▶︎在3000亿行为数据分析场景下,可实现平均延迟小于10s,P95延迟小于20s。

▶︎在千亿数据的用户画像分析场景下,可实现秒级人群预估、秒级10标签圈人和秒级100标签人群圈选。

03 日志存储与分析

典型场景:

日志对于保障系统、业务稳定性至关重要,常用于故障排查、监控告警等,企业需要构建统一的日志存储与分析平台。常见的日志种类有服务器日志、业务日志、网络设备日志、物联网日志等。

现状分析:

面对庞大的日志数量,日志场景需要同时实现高吞吐写入和实时可见性。且随着时间的推移,日志的规模不断增长,因此降低存储成本成为一个挑战。此外,日志场景往往还需要快速的文本检索能力,以便按关键字进行匹配查询,以满足故障排查等场景的快速响应需求。

如何解决:

▶︎采用客户端实时小批量写入、服务端内存攒批写入、时序 Compaction 机制等,可以优化写入吞度及实时性。

▶︎利用存储计算分离、列式存储、高压缩比算法等能力,可节约海量数据的存储成本。

▶︎利用倒排索引快速精准定位匹配的数据,结合时序存储模型特点和 TopN 查询的动态剪枝算法,显著提升日志检索与分析性能。

方案收益:

云数据库 SelectDB 版相较于传统方案,能够实现 4.2 倍的写入性能提升和 2.3 倍的查询性能提升,同时磁盘资源占用显著下降,空间占用仅是传统方案 1/5。

04 统一数据分析平台

典型场景:

大数据分析平台可以帮助企业有效地收集内部各种数据,为企业的各个领域(销售、营销、客户服务、运营、财务等)提供数据支持,促进企业决策的科学化和精细化。

现状分析:

传统的大数据平台解决方案包含多种组件,以及多个数据湖查询引擎和数据仓库系统。这些组件的组合可以满足客户的复杂大数据分析需求,包括 ETL、在线报表、即席分析和日志分析等。然而,这种解决方案存在复杂性高、性价比低、实时性差和开放性弱等问题。

如何解决:

▶︎可以通过 SQL 请求实现增量式导入数据湖中的数据,同时通过一套数据仓库系统即可满足 ETL、在线报表、日志分析等多种场景需求。

▶︎通过云数据库 SelectDB 版的联邦查询能力,实现统一的数据湖查询加速方案,可跨多个数据源进行数据查询,满足用户更高效、更灵活的数据处理需求。

▶︎兼容开源 Apache Doris,保证开放性,用户可以继续使用 Apache Doris,并且无缝衔接到云数据库 SelectDB 版。

方案收益:

▶︎可大幅降低计算存储冗余和架构复杂性,同时运维成本非常低、几乎不需要运维投入,不仅如此,使用成本也大幅降低,仅是原方案的 1/5。

▶︎在查询性能方面,相比 Presto 有 3~5 倍的速度提升;在数据 ETL 方面,性能相比 Spark 有 8+ 倍的速度提升。

快来关注

了解更多SelectDB:

https://www.aliyun.com/product/selectdb

加入钉钉群:

相关文章
|
29天前
|
SQL 数据挖掘 测试技术
南大通用GBase8s数据库:LISTAGG函数的解析
南大通用GBase8s数据库:LISTAGG函数的解析
|
1月前
|
数据库 索引
深入探索数据库索引技术:回表与索引下推解析
【10月更文挑战第15天】在数据库查询优化的领域中,回表和索引下推是两个核心概念,它们对于提高查询性能至关重要。本文将详细解释这两个术语,并探讨它们在数据库操作中的作用和影响。
56 3
|
2月前
|
存储 NoSQL 关系型数据库
数据库技术深度解析:从基础到进阶
【10月更文挑战第17天】数据库技术深度解析:从基础到进阶
103 0
|
2月前
|
SQL 关系型数据库 MySQL
数据库导入SQL文件:全面解析与操作指南
在数据库管理中,将SQL文件导入数据库是一个常见且重要的操作。无论是迁移数据、恢复备份,还是测试和开发环境搭建,掌握如何正确导入SQL文件都至关重要。本文将详细介绍数据库导入SQL文件的全过程,包括准备工作、操作步骤以及常见问题解决方案,旨在为数据库管理员和开发者提供全面的操作指南。一、准备工作在导
503 0
|
1月前
|
存储 负载均衡 监控
数据库多实例的深入解析
【10月更文挑战第24天】数据库多实例是一种重要的数据库架构方式,它为数据库的高效运行和灵活管理提供了多种优势。在实际应用中,需要根据具体的业务需求和技术环境,合理选择和配置多实例,以充分发挥其优势,提高数据库系统的性能和可靠性。随着技术的不断发展和进步,数据库多实例技术也将不断完善和创新,为数据库管理带来更多的可能性和便利。
111 57
|
11天前
|
存储 关系型数据库 MySQL
double ,FLOAT还是double(m,n)--深入解析MySQL数据库中双精度浮点数的使用
本文探讨了在MySQL中使用`float`和`double`时指定精度和刻度的影响。对于`float`,指定精度会影响存储大小:0-23位使用4字节单精度存储,24-53位使用8字节双精度存储。而对于`double`,指定精度和刻度对存储空间没有影响,但可以限制数值的输入范围,提高数据的规范性和业务意义。从性能角度看,`float`和`double`的区别不大,但在存储空间和数据输入方面,指定精度和刻度有助于优化和约束。
|
29天前
|
SQL 存储 Oracle
南大通用GBase 8s数据库游标变量解析:提升数据库操作效率
南大通用GBase 8s 数据库游标变量解析:提升数据库操作效率
|
1月前
|
SQL Java 数据库连接
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
|
2月前
|
Web App开发 SQL 数据库
使用 Python 解析火狐浏览器的 SQLite3 数据库
本文介绍如何使用 Python 解析火狐浏览器的 SQLite3 数据库,包括书签、历史记录和下载记录等。通过安装 Python 和 SQLite3,定位火狐数据库文件路径,编写 Python 脚本连接数据库并执行 SQL 查询,最终输出最近访问的网站历史记录。
44 4
|
2月前
|
关系型数据库 数据挖掘 数据库
解析数据库联结:应用与实践中的 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN 与 CROSS JOIN
解析数据库联结:应用与实践中的 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN 与 CROSS JOIN
74 1