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

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

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

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

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

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

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

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

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

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

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

图6-1

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

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

7 总结

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

原文地址:https://www.cnblogs.com/sequoiadbsql/p/11771693.html

时间: 2024-10-03 21:56:34

巨杉Tech | SequoiaDB数据域及存储规划的相关文章

巨杉Tech | SequoiaDB虚机镜像正式上线

数据库云化架构需求随着云架构的发展和流行,在业务和应用进行"云化"的过程中,云数据库因为在整体架构中的重要地位,在云化改造中的重要性不言而喻.云数据库需要满足这些技术要求,除了在功能上的具体提升,在整体架构上更需要进行升级和"进化". 云数据库架构是其能否承载应用架构"云化"的关键点,随着技术和业务的发展,云数据库的架构出现了几个主要的发展方向:? 在dbPaaS平台中,计算-存储层分离将会成为主流技术方向.通过将协议解析.计算等模块与底层存储解

巨杉Tech | SparkSQL+SequoiaDB 性能调优策略

当今时代,企业数据越发膨胀.数据是企业的价值,但数据处理也是一种技术挑战.在海量数据处理的场景,即使单机计算能力再强,也无法满足日益增长的数据处理需求.所以,分布式才是解决该类问题的根本解决方案.而在分布式领域,有两类典型产品,分别是分布式存储和分布式计算.用户只有将两者的特性充分利用,才可以真正发挥分布式架构的存储和计算能力. 本文介绍 SequoiaDB(分布式存储)和 Spark(分布式计算)两款产品的对接使用,以及在海量数据场景下如何提高统计分析性能. 01  SequoiaDB 与 S

【巨杉数据库SequoiaDB】巨杉?具系列之一 | ?对象存储?具sdblobtool

近期,巨杉数据库正式推出了完整的SequoiaDB 工具包,作为辅助工具,更好地帮助大家使用和运维管理分布式数据库.为此,巨杉技术社区还将持续推出工具系列文章,帮助大家了解巨杉数据库丰富的工具矩阵. 本文作为系列第一篇,将分享巨杉数据库大数据存储工具 sdblobtool 的基本介绍和应用实践.巨杉工具矩阵 一.对象存储与自建存储对比通俗地讲,自建存储就是自己购买服务器设备存储文件,通过运维人员手工进行文件的上传下载.而对象存储,则是使用不同的存储形态来存储文件.目前,对象存储独立的存储形态有三

【巨杉数据库SequoiaDB】巨杉Tech | 四步走,快速诊断数据库集群状态

1.背景 SequoiaDB 巨杉数据库是一款金融级分布式数据库,包括了分布式 NewSQL.分布式文件系统与对象存储.与高性能 NoSQL 三种存储模式,分别对应分布式在线交易.非结构化数据和内容管理.以及海量数据管理和高性能访问场景. 集群一般会使用三副本方式以确保数据安全.假若集群发生因硬件故障等原因导致的节点故障或集群异常,数据库管理员应进行系统的分析和诊断,以确保集群正常工作,不会影响用户的正常使用.本文将与大家分享一下基本的 SequoiaDB 数据库诊断方法. 数据库集群诊断 1)

【巨杉数据库SequoiaDB】限额开放!巨杉数据库中级工程师认证计划正式开启!

课程背景和规划介绍 巨杉大学的学习和认证包括SCDA(巨杉数据库认证技术专员),SCDP(巨杉数据库中级工程师认证),SCDE(巨杉数据库高级工程师认证),SCDD(巨杉数据库认证开发者)等计划,未来还将持续推出针对行业用户.数据库运维.开发者和开源社区爱好者更多学习计划,共同拓展行业广度和技术深度. 巨杉大学的 SCDP(巨杉数据库中级工程师认证)计划,直接上手操作使用,直观体验分布式数据库功能技术.在线交互学习测试,根据代码验证测试结果,帮助大家快速掌握分布式数据库运维管理. Talk is

【巨杉数据库SequoiaDB】巨杉数据库 v5.0 Beta版 正式发布

2020年疫情的出现对众多企业运营造成了严重的影响.面对突发状况,巨杉利用长期积累的远程研发协作体系,仍然坚持进行技术创新,按照已有规划--推进研发工作,正式推出了巨杉数据库(SequoiaDB) v5.0 Beta版. 我们也在这里向大家介绍一下,SequoiaDB v5.0 版本中将会包含哪些激动人心的功能和特性. ARM架构的官方支持 从 3.2 版本开始,SequoiaDB 已经在有限版本中支持 ARM 芯片服务器与国产操作系统.从 SequoiaDB v5.0 开始,我们正式官方支持飞

【巨杉数据库SequoiaDB】为“战疫” 保驾护航,巨杉在行动

2020年,我们经历了一个不平静的新春,在这场大的"战疫"中,巨杉数据库也积极响应号召,勇于承担新一代科技企业的社会担当,用自己的行动助力这场疫情防控阻击战! 赋能"战疫"快速响应 巨杉数据库目前服务许多政府部门应用平台,其中在广州市电子政务中心,就管理了全市近1500万人口的海量医保社保相关数据.医保.社保是抗击疫情工作的"弹药库",也是市民面对疫病的"定心丸". 目前,服务该业务的巨杉数据库集群,在2020年实现系统0错误

PVS的内存和存储规划设计

提示:这篇文章是本人在2012年12月11日有感而写的一篇电子邮件,因为其中的内容会在即将发表的一篇新博文被引用,故重新贴于此处.由于是近三年前的内容,技术也在不断进步,其中的部分内容已经不再适合于现在,仅作了解技术发展之用. 差不多是去年的时候,我写过关于一篇关于<PVS写缓存容量设计和部署位置的考虑>,谈到如何计算PVS服务所需要的内存.最近遇到一个项目,用户的应用是基于B/S方式,而且都是运行在IE6环境上,也不能迁移到更高的IT版本上,怎么办呢?从表面上看我只能使用Windows200

SequoiaDB数据水平分区简介

1. 数据水平分区简介 在SequoiaDB中,默认情况下,表(集合)的数据只会存储在一个复制组中.这样,对该表的CRUD操作只会落到一个复制组中. 随着对表的IO请求上升/数据量的增加,就会造成性能瓶颈,导致访问时延增加.为了解决这个问题,便引入了水平分区的功能. 水平分区可以将表(集合)切分成若干分区,并将分区指定到不同的复制组中.示意图如下: 上图中,将集合2切分成N个分区, 每个分区可以指定到不同的复制组.这样,当查询数据时,就会根据条件将请求发给不同的复制组,提升查询性能. 2. 如何