基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
方案概述
分库分表是传统大型分布式系统中一种常用的数据存储策略,用于满足传统数据库在面临数据和业务扩展时,对于数据规模和并发处理的需求。然而,传统分库分表方案面临着架构复杂度高、运维难度高、性能存在瓶颈等问题,增加了企业运维和业务负担。原生分布式数据库 OceanBase 的分区表解决方案,实现了在分布式架构下的水平扩展和数据管理,不仅解决了分库分表所带来的架构复杂度、运维难度和性能瓶颈等问题,还为客户提供了一个统一、透明且高度可扩展的分布式数据库平台,帮助企业更好地应对大数据和高并发场景下的业务需求。
业务挑战
集中式数据库难适配分布式架构
分库分表使用中间件在集中式数据库的基础上构建分布式架构,数据库性能强依赖于分区策略的设计,不仅会导致架构复杂性增加,同时跨库跨表的事务处理难度高,难以保障数据的完整性和一致性。
业务难维护、难扩展
分库分表方案要求业务代码需要直接或者间接感知到分库分表的逻辑,增加了业务代码与数据库之间的耦合度,后期维护和扩展困难。
容量规划、扩展与迁移困难
随着业务的增长,分库分表策略要求按需调整,一方面要求精确计算和规划容量以免资源浪费;另一方面大量的数据迁移对系统稳定性和数据完整性带来巨大考验。
运维保障难
分库分表后,不仅需要独立维护每一个数据库实例,还需要确保跨库的操作正确稳定进行。为了保障 SLA,高可用集群还要考虑跨机房、跨地域的部署和容灾策略,运维的工作量大大增加。
性能挑战大
分库分表架构复杂,如果没有合理的设计、某些表集中了大量的读写操作,则会引发严重影响性能的热点问题。同时跨库跨表查询、数据聚合和报表生成等操作复杂度高,性能受制于多种因素,往往需要额外的优化技术和中间件支持。
方案架构
- OceanBase 采用分区表(Partition Table)的设计思想,实现了在原生分布式架构下的水平扩展和数据管理,从根源上解决了传统分库分表带来的复杂问题。
- OceanBase 是一个分布式的关系型数据库,其底层架构支持数据在多个计算节点(OBServer)之间进行水平扩展。每个分区可以分布在一个或多个Zone(数据中心/服务器节点集合)中,形成多副本结构,确保数据的高可用性和一致性。同时OceanBase通过内置的分区功能,允许用户按照预先设定的策略对大表进行分区,常见的分区策略包括范围分区、列表分区和哈希分区。这样可以将一张大表划分成多个小的分区表,每个分区都可以视为逻辑上独立的数据单元,分别存储在不同的物理节点上。
- 当客户端发起 SQL 查询时,OceanBase 的接入层(如ODP或Proxy)会根据分区键的值确定数据所在的分区,并将请求路由到正确的 OBServer 上执行。这种透明路由机制使得应用程序无需关心具体的分库分表细节。
方案优势
一体化分布式设计
OceanBase 提供了一体化分布式数据库解决方案,无需用户自行设计和维护复杂的分库分表策略,直接通过数据库内部的分区机制进行水平扩展和灵活调整,减轻了分布式数据库设计和运维的复杂度。
强一致性和高可用性
OceanBase 使用 Paxos 协议实现跨节点的强一致性,确保分布式事务的 ACID 特性,同时支持多副本和跨数据中心容灾,提供金融级别的高可用保障。
透明化运维与无缝扩展
OceanBase 内置的分布式特性对上层应用透明,应用程序无需关注数据具体分布在哪一台服务器上,能够像操作单体数据库一样处理分布式数据。支持在线扩容、缩容和迁移。
高性能与低延迟
OceanBase 的分布式查询优化器在分布式环境下智能调度执行计划,减少跨节点数据传输和处理,保障高查询性能。同时通过分区表和本地索引等功能有效地处理分布式查询,降低操作延迟。
低成本与高性价比
基于无共享架构,使用普通 PC 服务器构建集群,对比传统分库分表所需的高端存储设备和 License 费用,大幅降低了硬件和软件成本,提高资源利用率。
应用场景
大型电商交易系统
传统数据库面临性能、在淘宝、天猫等大型电商平台中,交易、订单、用户行为等数据量庞大且增长迅速,OceanBase 可以通过创建分区表,根据订单时间、买家 ID 等维度划分数据,实现数据的水平扩展,从而无需额外的分库分表中间件就能支持高并发交易和海量数据存储。高可用、可扩展等多种问题时,使用 OceanBase 原生分布式数据库完成一站式数据库升级,满足数据库自研、高性能、高稳定性的建设需求。
金融服务场景
对于支付宝、网商银行等金融服务商的核心业务,如账户、交易流水、支付记录等,OceanBase 利用分区表能够根据账户 ID、时间区间等方式进行数据拆分,确保在处理高并发支付请求时,系统的稳定性和扩展性得以保持。
社交和内容分享平台
社交媒体平台中的用户动态、评论、点赞记录等数据可以通过 OceanBase 的分区功能进行组织,从而可以方便地进行大规模并发写入和读取操作,同时简化数据管理和维护工作。
网络游戏场景
在大型多人在线角色扮演游戏(MMORPG)中,OceanBase 的分区表可以用来存储玩家账户信息、游戏内资产和活动记录,根据服务器或玩家 ID 进行分区,支持游戏运营的各种复杂场景,比如高峰时段的大量并发登录和交易。
物联网(IoT)数据处理
对于物联网设备产生的海量数据,OceanBase 可以通过分区方式快速处理和存储各类设备上报的数据,避免传统分库分表带来的复杂管理和运维问题。
企业级信息系统
对于企业内部的 ERP、CRM、HRM 等系统,在面临海量数据增长时,OceanBase 的分区表设计可以帮助系统轻松处理大量数据,且易于实施和管理,降低分库分表所带来的数据迁移和一致性难题。