巨杉Tech | SequoiaDB数据域及存储规划

1 背景
近年来,企业的各项业务发展迅猛,客户数目不断增长,后台服务系统压力也愈来愈大,系统的各项硬件资源也变得很是紧张。所以,在技术风险可控的基础上,但愿引入大数据技术,利用大数据技术优化现有IT系统实现升级改造,搭建一个统一存储和管理历史、近线数据的服务平台,同时可以对外支持高并发、低延时的数据查询服务,以提升IT系统的计算能力,下降IT系统的建设成本,优化IT系统的服务体系,为各个业务部门提供更加优质的IT服务。
这类服务平台在整个IT系统架构中实质上是一个为核心业务系统减负的系统。SequoiaDB 巨杉数据库支持海量分布式数据存储,而且支持垂直分区和水平分区,利用这些特性能够将历史、近线数据存储到 SequoiaDB 中,并可以对外支持高并发、低延时的数据查询服务。本文主要讲解如何利用巨杉数据库域的特性在历史、近线数据应用场景下进行存储规划已知足业务系统对性能、存储、维护等方便的要求。数据库

2 相关概念
多维度数据分区
SequoiaDB 支持水平和垂直方式分区。采用散列(hash)或范围(range)水平分区是将数据分布至多个节点,加大数据吞吐量, 加速数据查询和写入;采用范围(range)垂直分区是在一个节点内将数据逻辑划分为多个区间,每一个区间做为独立的存储单元,减小查询时网络I/O, 进一步加速查询。
水平分区
散列水平分区,原理是将选择的分区键进行 hash 运算,根据 hash 值将数据分发至相应分区。范围水平分区则是直接匹配分区键和所对应的范围,存放到相应的分区。两种分区方式各有适用的场景,和运行的业务息息相关。通常不建议采用范围水平分区,除范围分区键(如月)能保证数据均衡(如每个月的数据量级一致)。如图2-1所示。服务器

巨杉Tech | SequoiaDB数据域及存储规划

图2-1. SequoiaDB 水平分区
垂直分区
垂直分区是指在一个节点内集合数据按某字段,分红成多个数据段。每一个范围表明一个垂直分区。数据查询、写入时自动分发至相应分区中。垂直分区极大减小硬盘数据访问,下降网络I/O,加速查询。垂直分区共享资源(同一台物理机),出发点在于将冷热数据隔离,如图2-2所示。网络

巨杉Tech | SequoiaDB数据域及存储规划

图2-2. SequoiaDB 垂直分区
复制组和域
分区组又被称为复制组,一个复制组内能够包含一个或多个数据节点(或编目节点),节点之间的数据使用异步日志复制机制,保持最终一致。
域(Domain)是由若干个复制组(ReplicaGroup)组成的逻辑单元。每一个域均可以根据定义好的策略自动管理所属数据,如数据切片和数据隔离等。
以3台服务器为例,每台服务器9块磁盘。复制组的物理部署和域的逻辑组成如图2-3所示:架构

巨杉Tech | SequoiaDB数据域及存储规划

采用3副本,按磁盘部署数据节点,每台机器部署9个数据节点,3台机器横向组成数据组,共9个数据组。如图域1包括数据组1-3,域2包括数据组5-9,域3包括数据组1-6,所以域在逻辑上由数据组组成,而且组成的数据组能够重叠。并发

3 业务场景
随着用户的增长、业务的发展,大型企业用户的业务系统的数据量愈来愈大,并且原有系统绝大部分基于关系型数据构建,表结构复杂,每一个查询都须要关联若干张大数据表,致使关联查询的性能很是低。
所以能够利用 SequoiaDB 存储海量历史、近线数据并开发数据查询统一入口,按照数据生命周期管理的规则对历史、近线数据进行统一在线存储。另外平台提供高并发、实时查询服务,解决了关系型数据库海量数据关联查询性能慢的问题。
根据业务系统历史、近线数据的需求,创建历史、近线数据存储区用于存储从源系统直接导入的原始数据,包括超出生产系统保存期限的数据以及须要按时点备份的数据。同时为提供在线、中高并发,小结果集的数据处理能力,可根据源系统不一样划分多个存储区域,集群内部使用划分数据域的方式进行分类管理。异步

4 数据域划分方式
在业务系统经过接入平台将结构化数据接入到巨杉数据库时,需根据数据调研信息对业务系统进行分类,以肯定业务系统的存储量、并发大小、数据生命周期等,为结构化数据在巨杉数据库中的存储规划提供信息支撑。业务系统结构化数据存储到巨杉数据库可利用数据域技术对业务系统的数据区域进行功能划分,具体划分方式以下:
海量数据或者高并发查询业务系统
这类业务系统的特色是业务查询并发较大,数据所占存储空间较大,对cpu、内存、网络要求较高,利用域对这类系统进行隔离,可使数据在写入、读取时充分利用集群中域所在机器的物理资源以提高性能。
数据量较小或者查询并发数较小的业务系统
这类业务系统通常对cpu、内存、网络要求较低,所占存储空间较小。所以这类系统能够和其余并发、所占存储较小的业务系统的数据域共享数据组以节省机器资源。分布式

5 利用数据域水平扩展集群
目前,企业的部分业务系统结构化数据年增加量较大而且数据愈来愈多。在业务系统投产后,随着业务量的增长集群可以使用容量逐渐变小,所以在业务系统接入集群前需考虑存储容量耗尽后整个集群的水平扩展。SequoiaDB 是分布式数据库,所以能够经过集群的扩容实现集群性能的近线性增加。而经过扩容后主要解决两个问题是数据存储的容量问题和整个集群的性能问题。由于数据量的不断增加及上线后的推广使用,因此须要进行扩容来提高集群性能及增长数据存储空间。
SequoiaDB 在集群的管理上定义了数据域概念,一个数据域能够将多个数据组包含进来。一个集群能够根据不一样的业务系统来划分不一样的数据域,不只实现将不一样业务系统数据在物理层面的隔离存储,同时也实现了不一样业务系统数据的统一调度管理,并且之后的集群扩容也能够根据域的使用需求而只针对此域进行集群扩容。
因此在进行扩容时,咱们须要结合 SequoiaDB 数据域和业务系统需求进行扩容规划及实施。结构化数据在扩容时,可针对结构化数据所在数据域增长数据组再进行数据均衡切分到新扩容的机器上;或者使子表分散在单独的集合空间中,并使子表对应的集合空间所属数据组在新扩容机器的数据组上。ide

6 具体案例
某大型金融用户的某系统历史数据量60T,天天有80G左右的增量数据。假设按照3年数据总量作存储规划,则三年数据占总存储约为(60+80G365/1024)3=266T。
假设如今客户提供的硬件配置信息以下:高并发

巨杉Tech | SequoiaDB数据域及存储规划

具体安装部署如图6-1所示:性能

巨杉Tech | SequoiaDB数据域及存储规划

图6-1

存储规则
根据上述业务系统的信息,可将这类系统划分为高并发海量存储业务场景。结合数据域划分方式以及将来扩容需求,该业务系统的结构化数据存储在接入时数据域划分规则以下:
一、 海量数据高并发查询业务系统使用独立的域进行存储;
二、 使用主子表按照时间切分,每一个子表按照ID散列分布到域所对应的全部机器上;
三、 海量数据高并发查询业务系统子表单独使用集合空间;
四、 数据量较小或者并发查询较小的业务系统能够共用域;
五、 结构化域扩容可以使用增长数据组再进行数据均衡切分到新扩容的机器上,或者使子表分散在单独的集合空间中,并使子表对应的集合空间所属数据组在新扩容机器的数据组上。

集合空间和集合设计
根据上述存储规则,该业务场景下的结构化数据和非结构化数据存储方式以下:
使用主子表按照时间切分,每一个子表按照ID或者业务字段散列分布,子表跨度按月进行切分,而且子表分散在单独的集合空间中。

7 总结

数据域在逻辑上由一个或多个数据组组成,在物理上对应具体的数据节点,而且不一样的域之间能够重叠数据组。所以,业务系统能够根据主子表特性以及域包含数据组的灵活性将集群划分为不一样的区域存储结构化数据,充分利用集群的计算、存储资源。巨杉数据库,支持海量数据存储,SequoiaDB 支持垂直分区和水平分区,提供高并发、低延时数据查询服务。

相关文章
相关标签/搜索