阿里云数据库 SelectDB 新一代实时数仓 版

阿里云数据库 SelectDB 版是 100% 兼容 Apache Doris 的云原生数仓产品,具有存算分别和实时弹性的外围长处。同时提供离线及实时流式数据同步链路;实时降级和万级 QPS 高并发点查特性。提供基于倒排的文本检索和日志剖析才干,同时支持基于 Multi-Catalog 的湖仓一体方案和放开的生态产品协同才干。本文将引见 SelectDB 产品才干及其所支持的场景,为数仓选型提供参考和自创。

一、阿里云 SelectDB 产品发生背景

1.Apache Doris是世界盛行的开源实时数仓产品

SelectDB 是基于 Apache Doris 提供的一个商业化的云原消费品。Apache Doris 是一款国产的开源数据库,专一于实时数仓畛域。该名目始于 2013 年,并于 2022 年在 Apache 基金会的支持下成为顶级名目。经过将近 10 年的演进,Apache Doris 的内核曾经十分稳固和成熟。如今,该名目在社区中的关注度和生动度都十分高。

2.Apache Doris被 0+ 国际外企业消费系统经常使用

目前,在国际外经常使用 Apache Doris 的企业范围十分宽泛,普及各个行业,包括一些行业的头部企业。其成熟度无须置疑,曾经在客户业务中失掉了宽泛验证。

SelectDB 是在 Doris 基础上孵化进去的一个商业化的实时数仓,在 Doris 上做了云原生变革,并在阿里云上提供托管服务。接上去将从用户经常使用实时数仓的整个链路,展现 SelectDB 在各个环节上的产品才干的婚配。

1.片面数据导入及同步链路

首先来看数据导入层面。关于数仓产品来说,客户最先面临的疑问就是如何将数据同步到数仓中,以便向下层业务提供数据服务,包括实时剖析等业务构建。在这一层面,SelectDB 是基于 Apache Doris 的,因此具有良好的放开性和生态兼容性。它支持各种数据源,包括流式和批量的大数据链路减速导入。

SelectDB 支持的数据类型和数据源十分丰盛,如 CSV、MySQL、SQLServer、Oracle 等数据源,能够启动数据类型的转换和导入。关于流式数据,SelectDB 与 Flink、Kafka 等经常出现链路有完善的对接形式;关于大数据体系如 hive,Hadoop,MC 等,SelectDB 支持经过> 此外,关于数据湖的数据,为了启动数据湖的联邦查问和湖仓一致控制,SelectDB 与 Iceberg、Hudi 有良好的兼容性。这使得在数据湖层面可以启动很好的数据剖析,在业务层面可以经过一致的 SelectDB 访问层向下层业务提供数据湖和数仓的一致服务接口。

总而言之,SelectDB 在流式数据、离线数据和数据湖数据方面,提供了片面的技术对接,可以协助咱们方便地将数据导入数仓,处置了数据入仓这一首要疑问。

2.高吞吐数据写入及实时降级

在数据入仓,咱们面临的第二个疑问是数据或许会须要启动降级。数据进入数据仓库,例如订单、物流等实时业务的数据须要启动实时形态降级。SelectDB 针对不同场景提供了不同的数据实时降级才干:

接上去将探讨权衡 OLAP 实时数仓的一个外围目的,即实时查问才干,这里看关键剖析场景来启动说明。

首先是宽表剖析场景,通常触及到人群画像和 BI 等场景,数据在 ETL 荡涤和处置之后构成一张大宽表,对外提供服务。这里关键关注的是单表剖析的功能,业界罕用的权衡规范之一是 ClickBench 测试。在最新的 ClickBench 测试中,SelectDB 荣登榜首。这充沛证实了 SelectDB 在宽表剖析场景下的数据剖析功能处于在业界上游位置。

另外一种场景是数据概略的查问。比如 Trace 的场景,日志进到数仓,查问某个用户详细的行为轨迹,这就须要依据 QueryID 或许 UID 启动精准婚配查问。又如用户画像的数据,经过 ETL 荡涤后,可以在数仓中提供一些人群画像的查问剖析,但假设要失掉某个详细用户的标签,就须要依据用户 ID 去查问对应的标签列,这些状况就是一个点查的概略查问。数据在 OLAP 中自动是列存排序,基于排序结果启动数据块存储。当启动团圆的精准 ID 婚配查问时,每次查问命中的数据结果须要在多个数据块中启动少量的 IO 检索,惹起 IO 加大,会清楚影响查问功能,因此在自动列存形式下,效率是比拟低的。

SelectDB 的处置方案是提供行存和列存混合存储的形式,在详细业务场景中只有开启行存形式,经过冗余形式行列同时存储并创立索引,优化点查功能。这样在> 5.高性价比日志剖析方案

日志剖析是 OLAP 中的一个通用情形。传统用户日志剖析经常使用 Elasticsearch 这种日志检索引擎的较多。但因为 ES 的写入环节索引构建老本高,以及少量依赖内存来支持恳求减速,大数据规模下资源用量高且容易出现 OOM,且紧缩率较低,形成存储老本高,全体性价比不是很高。

SelectDB 提供了倒排索引的才干,准许对文本列启动分词,并在其上创立倒排索引,从而支持关键字的含糊婚配和全文检索。同时关于非文本列,如 Decimal 或 Int 类型的数据,雷同可以减速查问,特意是针对非排序列的 Ad-Hoc 查问场景。经过这种形式,SelectDB 在日志剖析中能够清楚优化写入和查问效率,同时降落资源消耗,有效处置了以往 Elasticsearch 在功能上的瓶颈疑问,全体性价比是 ES 的 10 倍以上。

6.多租户控制和资源隔离

除了完整的数据导入和点查服务,包括聚合剖析、日志剖析和全文检索等才干,针对具有高合规性要求的金融客户,为满足其数据安保和权限控制方面的不凡需求,SelectDB 提供了兼容 MySQL 协定账号和数据访问安保认证体系,确保可以成功细粒度的资源权限控制,支持库级、行级和列级角色授权及数据权限控制。

在数据传输层面,支持 SSL/TLS 安保加密传输,片面保证数据存储和访问安保。在内核层面,成功了基于用户角色的资源隔离和权限限度,有效防止了繁多用户或角色在多用户经常使用集群中对资源的适度经常使用,从而确保了整个集群的稳固性和实例的资源限度,为合规性和数据安保性提供了全方位保证。

另外,Lakehouse 成为大数据处置的一种盛行形式之一。基于 Lakehouse 的方案可以缩小数据冗余老本,同时提供一体化的处置处置才干。SelectDB 提供了基于 Multi-Catalog 的湖仓一体才干,可认为各种数据湖和对象存储的数据提供一致控制,成功了实时的元数据结构同步,从而在整个 SelectDB 平台上成功了一致的逻辑层面的数据控制。在引擎层面,成功了数据湖查问的减速处置和数据缓存,应用引擎自身的减速才干优化数据湖的查问。同时,经过联邦查问的才干,可以将数据湖的数据导入到 SelectDB 本地存储引擎上,以减速实时数据剖析。这样,经过 SelectDB 一致的 API 接口,业务可以轻松访问数据湖和实时数仓,整个技术栈愈加一致,业务开发难度大大降落。

SelectDB 的云原生特性关键体如今四个方面:

接上去将详细剖析 SelectDB 在这四个方面的详细成功。

SelectDB 全体架构划分为三个档次。首先,咱们将计算层拆分为两局部:第一局部是纯正的计算引擎,另一局部则是在计算引擎层面引入了本地盘,这局部曾在 MPP 架构下用于全量数据存储,如今则退步为缓存作用,应用云盘等启动数据缓存。这两局部构成了计算层的资源,即辨别了纯计算才干与缓存才干。而原先在 MPP 架构下全量数据存储层的数据,如今则搁置于基于阿里云 OSS 对象存储构建的共享数据存储层。经过这种架构成功了存储和计算的分别。两边的 Cache 用于减速读写操作。

这种架构相比于 MPP 架构带来了清楚的长处,特意是关于 Doris、StarRocks 相关技术体系,在以前的架构中,数据高可用性关键经过正本成功,每份数据须要在多个节点上存储多个正本以保证服务的延续性和牢靠性。而如今,在云原生活算分别架构下,数据的全量存储转移到了基于阿里云的 OSS 对象存储的共享存储上,而阿里云 OSS 对象存储自身就具有容灾备份的才干,所以在数据库引擎层面,数据只有存储一份正本即可,其牢靠性齐全依赖于存储介质自身。这样对存储资源的经常使用量就缩小到了之前的三分之一。

思考到缓存也会占用一局部存储资源,所以咱们依据业务需求设置了缓存命中率,倡导从 10% 起步逐渐调整缓存调配比例。假设数据散布比拟团圆,齐全可以最大水平地利用整个 Cache 的容量,使其与共享存储所占比例持平。这样做的好处是,一方面可以经过共享存储保证数据的耐久牢靠性,同时还可以经过 Cache 减速读写才干。即使在这种状况下,咱们全体数据的正本数量最多只有做到两正本,相比之前的三正本存储形式可以缩小三分之一的存储用量,同时 OSS 的单位存储老本也更具长处。

经过云原生的形式处置了存算分别的疑问,使得计算层和存储层能够独立裁减。当须要裁减计算层时,不再须要启动数据的 Reshard 或 Rebalance 操作。相比于传统的 MPP 架构,SelectDB 水平裁减仅启动元数据刷新和被动缓存加载即可成功扩容,不须要复杂的数据迁徙环节。因此全体的扩容效率不依赖数据量,可以实时成功扩容。存储层驳回 serverless 形式,依据需求灵敏经常使用,业务齐全不感知其扩容和缩容的环节。

单正本写&读写 Cache 减速功能

在数据存储和查问环节中,缓存起着至关关键的作用。SelectDB 经过在计算层增加缓存来减速读写操作。详细而言,数据写入环节中,首先缓存至存储介质,同时也写入到 OSS 上,确保在缓存和耐久化层都有最新写入的热数据,以便查问时能够迅速失掉最新结果,保证查问功能。

在缓存数据淘汰战略上,SelectDB 驳回两级缓存淘汰战略:

第一级基于 TTL 战略,定义数据生命周期以防止数据在缓存时期被肃清;

第二级战略则依据访问热度经常使用 LRU 算法,优先保管高频访问热数据,从而在保证数据存储效率的同时,有效优化系统查问功能。

在功能消耗方面,相较于传统的 MPP 架构,云原生形式下单正本的形式,写入数据处置量缩小了 2/3,清楚缩小了 CPU 资源的消耗。数据的批量写入和 CPU 计算才干的高效应用,使得全体写入效率清楚优化,同时坚持了数据存储的牢靠性和查问的实时性,从而在大数据处置场景下体现杰出。

3.单实例多计算组资源隔离

另外,SelectDB 提供了单实例多计算资源隔离的才干,关键是为了满足多业务隔离需求。经过业务访问隔离和读写分别的设置,确保了高业务负载状况下数据资源的齐全隔离,从而保证了数据导入和查问环节中不会出现业务相互搅扰的状况。

详细做法是在计算层面成功逻辑计算资源的隔离,逻辑资源对应的物理资源也是齐全独立的。这样从用户角度来看是不同的计算集群,还基于容器化技术成功了集群的极速部署和监禁,有效地保证了强隔离。再联合 Doris 内核在用户级别提供的软负载的隔离,可以满足不同级别的隔离需求。

四、SelectDB放开生态和产品协同

在数仓选型环节中,还须要思考产品的生态放开性。SelectDB 作为一个基于 Apache Doris 的云原生商业化变革产品,自身就是基于 Apache Doris 内核构建的,因此协定上齐全兼容 Apache Doris,防止了技术绑定带来的困扰。SelectDB 提供的是放开的生态系统,准许客户从 Doris 或 StarRocks 技术栈无缝切换到 SelectDB,简直没有切换老本。

SelectDB 兼容 MySQL 协定,这也象征着开发老本较低。它驳回规范的 MySQL 语法,准许经常使用 MySQL 客户端工具(如 Navicat、DBeaver)间接对接,开发者可以依照规范的 MySQL 开发形式启动 SelectDB 开发上班。

SelectDB 作为一个放开的生态系统,与 MySQL 以及 Flink、Kafka 等大数据技术栈的兼容性良好,涵盖了离线批处置和实时数据流的接入。并且在云端成功了与整个云生态系统的严密连贯,经过云控制台启动操作,可以清楚缩小生态链路构建及运维的老本。

此外,SelectDB 支持从 RDS 和 PolarDB、MySQL 等技术栈实时导入数据,并方案在未来推出 Zero-ETL 服务,同时支持与阿里云高低游其余数据库产品的无缝流转,进一步优化数据流动,成功价值加大。关于大数据工具,在云上也提供了良好的对接和支持。

以上就是 SelectDB 在数据引入、降级、剖析才干、老本和弹性扩容等各方面所提供的外围才干。

目前,咱们提供了一个蕴含 8 核集群和相应存储资源的活动套餐,感兴味可以扫描上图中的二维码启动体验。

您可能还会对下面的文章感兴趣: