大数据平台架构-巨衫

1. 技术实现框架

1.1 大数据平台架构

1.1.1 大数据库是未来提升业务能力的关键要素

以“大数据”为主导的新一波信息化浪潮正席卷全球,成为全球范围内加速企业技术创新、推动政府职能转变、引领社会管理变革的利器。目前,大数据技术已经从技术研究步入落地实施阶段,数据资源成为未来业务的关键因素。通过采集和分析数据,我们可以获知事物背后的原因,优化生产/生活方式,预知未来的发展动态。

经过多年的信息化建设,省地税已经积累了丰富的数据资源,为下一步的优化业务、提升管理水平,奠定了坚实的基础。

未来的数据和业务应用趋势,大数据才能解决这些问题。

《1. 巨杉软件SequoiaDB 产品和案例介绍 v2》P12 “银行的大数据资产和应用“,说明税务数据和业务分析,需要用大数据解决。

《1. 巨杉软件SequoiaDB 产品和案例介绍 v2》P14 “大数据与传统数据处理”,说明处理模式的差异。

1.1.2 大数据平台总体框架

大数据平台总体技术框架分为数据源层、数据接口层、平台架构层、分析工具层和业务应用层。如下图所示:

(此图要修改,北明)

数据源层:包括各业务系统、服务系统以及社会其它单位的结构化数据和非结构化数据;

数据接口层:是原始数据进入大数据库的入口,针对不同类型的数据,需要有针对性地开发接口,进行数据的缓冲、预处理等操作;

平台架构层:基于大数据系统存储各类数据,进行 处理?;

分析工具层:提供各种数据分析工具,例如:建模工具、报表开发、数据分析、数据挖掘、可视化展现等工具;

业务应用层:根据应用领域和业务需求,建立分析模型,使用分析工具,发现获知事物背后的原因,预知未来的发展趋势,提出优化业务的方法。例如,寻找服务资源的最佳配置方案、发现业务流程中的短板进行优化等。

1.1.3 大数据平台产品选型

针对业务需求,我们选择巨杉数据库作为大数据基础平台。

1.1.3.1 传统数据库与大数据库的差异(丰富一下内容,说明应该选

择大数据平台)

传统的关系型数据库,只能存储结构化数据,在当前互联网快速发展的时代,僵硬的数据模型已经无法适应快速开发、快速迭代的互联网思维。同时,越来越广阔的移动无线网络覆盖,不断提升的上网体验,人们的生活已经与网络连接起来,现在人们在互联网产生的数据,比较过去正在以几何倍数增长。

1.1.3.2 巨杉的产品框架()

巨杉的简要介绍。

产品框架下的组件的简要介绍,说明由哪些东西组成,实现哪些功能。

1.1.3.3 产品比较?(与类似产品的竞争优势?)

SequoiaDB 作为一款拥有完全自主知识产权的文档型分布式数据库,天生具备高性能、高可用的特性。SequoiaDB 采用分片技术为数据库提供横向扩展机制,这个分片过程对应用程序来说是透明的。分片分配数据跨越多个物理分区,

每个

分区也即分片。分片是为了替SequoiaDB 部署解决单台服务器硬件资源受限问题,如内存或者磁盘 I/O 瓶颈,不会增加应用程序复杂性。

SequoiaDB 相比其他数据库的独有功能如下:

1.1.3.4 巨杉的特点?()

SequoiaDB 不仅在性能上领先业界其他的非关系型数据库,对比其他数据库,SequoiaDB 提供了非常多的独有功能:

1) 灵活的数据类型

SequoiaDB 采用文档类型数据模型(对象存储),将程序中的对象以原生的方式保存在数据库中,并且可以对其中而已属性或子对象进行检索匹配,可以大幅度弱化复杂的关系模型,加快应用的开发速度,并减少系统的运维成本。

灵活的数据类型

2) 统一管理结构化数据和海量小文件

在过去,企业构建一个内容管理系统,基本是一个关系型数据库+存储这样的组合。这种构建方法,在过去数据量不大,并发数不高的情况下,系统还能运行得比较平稳。但是随着时间的推移,需要接入该系统的业务会越来越多,需要管理的文件和信息量都开始开始激增,并且随着查询的并发量增加,这时候,按照传统方法构建的系统,性能、扩容能力都无法满足需求。

SequoiaDB 是一款以BSON 数据类型作为底层存储格式的文档型数据库。 BSON 格式本身是一种弱Schema 的数据类型,一条BSON 记录里面,可以包含各种类型的数据,如整型、字符型、浮点型和二进制类型的数据。用户可以利用BSON 这种特性,将像图片,音频这种小文件以二进制类型放到一个BSON 记录里面,同时将对文件的描述信息也存储在同一个BSON 记录上,形成一条完整的信息存储在SequoiaDB 中。

结构化数据与非结构化数据存储在同一条记录上

这种利用BSON 特性的存储方法,可以有效避免由于数据需要存储在两个地方(数据库+存储),中间需要处理复杂的事务逻辑,并且从根本上避免了信息孤岛产生的可能。非结构化数据与结构化数据整合在一起,形成一条完整的记录存储。

3) 双存储引擎,简化系统架构

SequoiaDB 数据库支持BSON 结构存储和块数据存储。

当用户需要存储一些结构化数据时,可以选择使用BSON 结构将数据存储在SequoiaDB 中。当用户需要将大文件(超过16M )存储在SequoiaDB 中时,可以选择块存储模式,将文件存储在数据库中。

如果用户需要构建一个既需要存储结构化信息,有需要管理大量大文件的系统时,SequoiaDB 双存储引擎这个特性,能帮助用户快速搭建一个高性能、高可用的系统,并且整个系统组件简单—只有SequoiaDB 数据库,不再需要额外购买昂贵的存储设备,节省企业的开发和运维成本。

图8:SequoiaDB 双存储引擎

4) 统一数据视图,实现冷、热数据物理分离

在大数据应用系统中,虽然存储了大量的历史数据,但是用户在使用数据的规律上,总会有一些数据是使用得比较频繁的(例如在银行中,近期三个月的数据位热数据),有一部分数据有价值,但是查询的频率不高,对于查询的性能也没有热数据那么严格(通常检索热数据,需要在50毫秒内返回结果,检索冷数据,允许在10秒内),这种数据我们就称为冷数据。

SequoiaDB 专门为历史数据归档、检索提供一种全新的存储机制,使得热数据与冷数据实现物理分离(例如热数据使用较好的存储硬件SSD ,冷数据存储在廉价的磁盘上),但是冷、热数据均统一在一个数据视图上,用户只要像操作一个普通的数据表那样,进行数据检索、分析。

冷、热数据分离

5) SequoiaDB 支持读写分离,用户可以针对一份数据完成更多的

业务处理

SequoiaDB 通过多副本数据备份,实现数据安全,同时,利用数据的多副本,用户可以在指定多个业务同时访问不同的数据节点,实现一份数据,多种用途的目的,大大提升了数据的使用率。

图10:SequoiaDB 读写分离

6) 深度整合大数据体系的各个组件

SequoiaDB 不仅通过了全球最大的Hadoop 发行商Cloudera 的官方认证(全球只有四家NoSQL 数据库获得),还获得了DataBricks 的官方认证,同时,SequoiaDB 也是国内三家经过DataBricks 授权,拥有发行Spark 权利的厂商之一。

SequoiaDB 的企业版本,除了为客户提供一个高性能的分布式文档型数据库外,还集成了Hadoop 的HDFS 、MapReduce ,基于内存计算的分布式计算框架Spark , SequoiaDB 还向客户提供完善的SQL 解决方案,像Hive 、SQL Engine 和Spark SQL,用户可以根据不同的场景,选择不同的组件快速构建属于自己的大数据平台。

从下图可以看到,用户可以基于SequoiaDB 作为底层数据库,在应用开发上,根据不同的场景,例如海量数据分析,用户可以选择MapReduce 、Hive 、Spark RDD或者Spark SQL来完成;如果是做数据实时检索类型的业务,用户可以选择使用SQL Engine或者SequoiaDB 提供的API 来进行实时数据检索。

SequoiaDB 深度整合大数据体系各个组件

SequoiaDB 企业版架构图

7) 完善的运维、监控工具

SequoiaDB 作为一家企业级数据库厂商,除了为用户提供高性能的数据库服务外,还为用户提供完善的运维工具。例如在命令行工具上,SequoiaDB 为用户提供sdbtop 工具,方便用户实时追踪集群运行状况,还有sdb 日志追踪工具,多级别日志选择等都为企业后续的运维减轻压力。

另外,SequoiaDB 还为用户提供一套WEB 管理工具,用户可以通过页面部署、管理SequoiaDB 集群,并且WEB 控制台还将实时监控的数据用形象的图表展示给用户。企业后续对SequoiaDB 集群的运维工作量大大减少。

SequoiaDB WEB管理界面

8) SequoiaDB 支持在线扩容,系统扩容升级快速简单

SequoiaDB 支持在线扩容,系统扩容升级快速简单

SequoiaDB

作为一款分布式文档型数据库,在数据库架构设计之初就已经将

方便快捷扩容作为设计标准,用户在系统性能不足时,通过快速扩展集群,提升系统整体性能。

SequoiaDB 在线扩容图

1.1.3.5 本地化服务?(国产;本地企业;服务和维护能力)

1.1.4 数据接口(这里的内容,与“数据采集”是啥关系?)

(下面的内容,是数据采集的工具吗?)

SequoiaDB 作为分布式数据库,能采集的大量数据进行分布式存储,并与众多数据处理工具进行对接。以下为推荐的数据处理工具。()

kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像Hadoop 的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。kafka 的目的是通过Hadoop 的并行加载机制来统一线上和离线的消息处理,也是为了通过集群机来提供实时的消费。

Flume 最早是Cloudera 提供的日志收集系统,目前是Apache 下的一个孵化项目,Flume 支持在日志系统中定制各类数据发送方,用于收集数据。Flume 提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力 Flume 提供了从console (控制台)、RPC (Thrift-RPC )、text (文件)、tail (UNIX tail)、syslog (syslog 日志系统,支持TCP 和UDP 等2种模式),exec (命令执行)等数据源上收集数据的能力。

Kestrel 是twitter 的开发团队用scala 语言写的开源消息中间件,可以将消息持久存储到磁盘上,也可以将消息存储于内存中,但是不论保存磁盘还是内存中都可以设置消息存储的超期时间长短。其具备了以下特点:快速、小巧、持久性、可靠性。除此之外kestrel 还具备了很多让人眼前一亮的特性:支持多请求协议、FanoutQueues( 队列分发 ) 、集群支持、灵活的配置。

Kettle 是Pentaho 的一个组件,主要用于数据库间的数据迁移, 数据抽取高效稳定。Kettle 中文名称叫水壶,该项目希望把各种数据放到一个壶里,然后以一种指定的格式流出。Kettle 这个ETL 工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。Kettle 中有两种脚本文件,transformation 和job ,transformation 完成针对数据的基础转换,job 则完成整个工作流的控制。作为Pentaho 的一个重要组成部分,现在在国内项目应用上逐渐增多。

1.1.5 数据采集(迁移?)

在项目中,面对旧系统升级改造、数据需要从原有系统的Oracle 数据库中迁移到新系统的SequoiaDB 上。

SequoiaDB 的基本安装包中,已经为用户提供了功能完善的数据迁移工具—sdbimprt ,用户可以将数据从Oracle 数据库中,导出到一个CSV 格式的文件上,再使用sdbimprt 将CSV 文件导入到SequoiaDB 中。

有一些系统,由于历史遗留的原因,整个系统的架构,并能单独使用一款数据库产品,而是要多个数据库产品同时共存,并且要求各个数据库都能互相交换数据。针对这种场景,用户可以自己按照业务需求,使用SequoiaDB 提供的API 接口,开发一套数据交换的工具。SequoiaDB 除了提供API 接口外,还能通过扩展PostgreSQL 和Spark SQL ,为用户直接提供JDBC 服务,用户也可以选择使用SQL 语句,将数据写入到数据库中。

另外,SequoiaDB 也为用户提供一种基于JDBC 服务的数据交换工具,用户可以在此工具上,编写不同的SQL 语句,从一个数据库中抽取数据导入到SequoiaDB 中。

在项目中,除了需要处理、存储结构话数据,还需要对例如影像、语音等类型的文件进行存储管理。

SequoiaDB 除了可以存储结构化数据外,还为用户提供了双存储引擎的功能,用户可以直接使用SequoiaDB 存储海量的非结构化数据。使用这种双存储引擎的方法,可以让应用系统整体架构更加简单,减少后期的运维成本,同时由于节省了高端存储的硬件成本,对于降低整个系统的建设成本也有非常大的帮助。

1.1.6 数据存储

1) SequoiaDB 与云平台

现在,越来越多的企业改变以往思路,不再为各个部门、下级机构统一准备机房、购买硬件、部署运行环境来提供服务,而是将系统运行的环境部署在云端,随着业务逐渐增多,数据慢慢增长,在需要性能提升、存储容量扩容情况下,直接在云端添加新的硬件资源,并且,SequoiaEnterprise 企业版本操作性强,扩容步骤简单,管理人员可以通过图形化界面直接进行集群的水平扩容。

企业使用云数据库,可以像最原始的部署方式,由用户直接向云服务提供商申请资源,然后用户自行在租赁的环境里部署云数据库服务。

这种传统的的云数据库搭建模式,由于需要用户自行在云端部署数据库,维护数据库整个集群环境,对于运维人员来说,当云数据库集群规模增长到某个级别,运维的成本就会大大增加。

目前,SequoiaDB 数据库目前已经与亚马逊云、阿里云、腾讯云有深度的合作。SequoiaDB 也向企业用户提供一站式的云数据库服务,用户无需自己在云提供商处申请资源,自行部署云数据库,而是直接面向云数据库提供商SequoiaDB 申请资源。这种新型的云数据库服务,能够大大降低政府电子政务公共平台未来的运维成本,而且未来对于资源的调度,可以做到随需扩容。

2) 数据分布式存储

SequoiaDB 作为分布式数据库,天生就能对海量数据分散到整个集群中。

SequoiaDB 在管理海量数据时,为用户提供多种数据切分方式–数据范围切分、Hash

切分、数据百分比切分,用户可以根据自己的使用场景,选择不同的

切分方式,达到充分利用整个集群的计算性能。

同时,SequoiaDB 除了提供水平切分方式外,还专门为历史数据的使用场景做了“时间序”的功能,用户可以按照不同的时间段,对海量的数据切分成小段小段,并且每个时间段的数据均可以指定存储位置。用户通过“时间序”功能,可以很好的规划数据存储方式,将热点数据存储在性能较好的硬件上,将查询比较少的冷数据放在低端的磁盘上。

并且“时间序”功能除了方便用户按照时间段区分数据存储位置,还能方便的管理数据的生命周期,对于已经不需要的数据,支持快速删除指定时间段数据分区。

3) 结构化与非结构化数据存储

SequoiaDB 有着录活的数据类型,支持结构化与非结构化数据的存储。SequoiaDB 采用文档类型数据模型(对象存储),将程序中的对象以原生的方式保存在数据库中,并且可以对其中而已属性或子对象进行检索匹配,可以大幅度弱化复杂的关系模型,加快应用的开发速度,并减少系统的运维成本。

灵活的数据类型

过去,企业构建一个内容管理系统,基本是一个关系型数据库+存储这样的

组合。这种构建方法,在过去数据量不大,并发数不高的情况下,系统还能运行

得比较平稳。但是随着时间的推移,需要接入该系统的业务会越来越多,需要管理的文件和信息量都开始开始激增,并且随着查询的并发量增加,这时候,按照传统方法构建的系统,性能、扩容能力都无法满足需求。

SequoiaDB 是一款以BSON 数据类型作为底层存储格式的文档型数据库。 BSON 格式本身是一种弱Schema 的数据类型,一条BSON 记录里面,可以包含各种类型的数据,如整型、字符型、浮点型和二进制类型的数据。用户可以利用BSON 这种特性,将像图片,音频这种小文件以二进制类型放到一个BSON 记录里面,同时将对文件的描述信息也存储在同一个BSON 记录上,形成一条完整的信息存储在SequoiaDB 中。

结构化数据与非结构化数据存储在同一条记录上

这种利用BSON 特性的存储方法,可以有效避免由于数据需要存储在两个地方(数据库+存储),中间需要处理复杂的事务逻辑,并且从根本上避免了信息孤岛产生的可能。

1.1.7 数据处理

1) 分布式计算框架MapReduce

MapReduce 作为一种编程模型,用于大规模数据集(大于1TB )的并行运算。概念"Map (映射)" 和"Reduce (归约)"

,和它们的主要思想,都是从函数式编

程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。当前的软件实现是指定一个Map (映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce (归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。

MapReduce 通过把对数据集的大规模操作分发给网络上的每个节点实现可靠性;每个节点会周期性的返回它所完成的工作和最新的状态。如果一个节点保持沉默超过一个预设的时间间隔,主节点(类同Google File System 中的主服务器)记录下这个节点状态为死亡,并把分配给这个节点的数据发到别的节点。每个操作使用命名文件的原子操作以确保不会发生并行线程间的冲突;当文件被改名的时候,系统可能会把他们复制到任务名以外的另一个名字上去。

落入分布式数据库之后,可以使用MapRedue 并行计算框架,从SequoiaDB 分布式数据库中进行数据的清洗、去重、整合等数据操作。如此可以快速提高数据的处理性能。

2) 采用分布式计算框架对数据处理

SequoiaDB 不仅支持分布式存储,也支持与分布式计算框架Hadoop(MapReduce)和Spark 的集成。当用户需要对存储在SequoiaDB 中的数据进行数据整合、清洗或者去重等工作时,可以利用分布式计算框架的大规模并发处理的优势对数据进行相应的处理。由于SequoiaDB 与Hadoop 、Hive 、Spark 和Spark SQL 都有深度的技术整合,程序可以直接将SequoiaDB 中的数据提交到分布式计算框架上直接进行数据整合、去重,提高程序对数据处理的性能。

像Hive 和Spark SQL这些控件,支持标准的SQL 语言,用户可以直接使用SQL 语句进行数据整合和清洗任务,对于初次使用大数据技术的开发人员,能够快速学习、掌握开发技巧。

在过去,由于数据库都是在一台机器上存储、计算的,导致当数据量变大后,真个数据库的检索性能都跟着下降。

SequoiaDB 在处理海量数据时,解决思路就不同于以往的关系型数据库,海量数据不再是存储在一台机器上,而是分布在整个机器集群中,当用户需要从海量数据中按照某些条件检索数据时,能直接将查询命令发到每台机器的各个节点

上,查询性能从一台机器变成了整个集群。

SequoiaDB 在海量数据检索上,除了有效利用分布式存储、分布式计算的特性外,还为支持给数据添加索引。

数据库对全量数据建立索引后,等于给全量数据做了一个数据目录,当用户根据某些条件来查询数据时,可以直接从索引文件中将对应的查找出来,大大提高了数据的检索性能。

1.1.8 数据分析(有没有一些通用的总结,什么情况下,用什

么数据分析工具、什么分析方法?)

数据分析平台,提供数据分析的支撑环境

针对典型的几种业务分析需求,说明使用什么数据分析工具解决问题。 ●

● 服务窗口的资源合理配置方案和比较 分析业务流程中的时间耗费,提出优化的方案 用户的行为规律 面向用户的精准服务

SequoiaDB 作为新一代的分布式数据库,其支持与当今比较流行的两种开源分布式计算框架Hadoop 和Spark 进行集成。通过与Hadoop 和Spark 的对接,用户可以便捷、快速、高效的对存入SequoiaDB 数据库的数据进行数据分析等操作。与Hadoop 的对接中,SequoiaDB 允许Hadoop 的数据仓库工具Hive 使用HiverSQL 这种类SQL 语言对SDB 中的数据进行查询。对Hive 的支持极大的扩展了SDB 数据库的使用范围,以前使用SQL 的数据库管理员可以平滑的切换到SDB

数据库

上进行数据的操作,从而降低运维成本。

1.1.9 数据可视化展现(能否补充一些典型的展示方式的图)

Jaspersoft 是一款开源的BI 工具,很多企业正在使用JasperReport 和JasperServer 开发和定制自己的业务分析报表。使用Jaspersoft ,企业可以轻易地针对自身数据构建可视化的BI 视图。SequoiaDB 虽然不是传统的关系型数据库,但是通过在关系型数据库的BI 工具与SDB 数据库中间做了一个“连接器”来处理BI 工具的SQL 查询。通过使用这种方式,SequoiaDB 能够对接多种支持关系型数据库的BI 系统。

Jaspersoft 通过Hive 与PostgreSQL 访问SDB 数据流程图

Jaspersoft 输出展示图

SequoiaDB 也提供自身数据库WEB 端的数据操作及数据展示的功能。通过WEB 页面,我们可以实现数据的可视化展现以及可视化操作,在此页面上,可以完成数据的增删改查操作。通过此页面也可以直观的了解SDB 集群及其相关的服务器的一些状态信息,如CPU 使用情况等。

1.1.10 数据管理(完善一下运维工作)

1) 命令行的数据库统一管理

SequoiaDB 数据库作为NoSQL 数据库,提供了Javascrip Shell 来对数据库进行各种操作,既命令行操作模式。通过Javascrip Shell ,DBA 可以对SDB 数据库进行各类操作,如基本操作CURD ,数据备份及数据库快照snapshot 等数据库操作。Javascrip Shell支持Javascript 的语法,可以进入SDB Shell进行单条语句执行,也可以执行Javascript 脚本。Javascript 语言语法简单、灵活,支持JSON 格式的数据,而JSON 格式比较容易转化成为BSON 格式,利于SDB 数据库数据的存储。在Javascript Shell 中,用户可以使用db.help()方法查看SequoiaDB 数据库支持的数据库方法。

Javascript Shell

2) 性能监控

SequoiaDB 作为一家企业级数据库厂商,除了为用户提供高性能的数据库服务外,还为用户提供完善的运维工具。例如在命令行工具上,SequoiaDB 为用户提供sdbtop 工具,方便用户实时追踪集群运行状况,还有sdb 日志追踪工具,多级别日志选择等都为企业后续的运维减轻压力。

sdbtop 工具展示图

3) WEB 管理工具

另外,SequoiaDB 还为用户提供一套WEB 管理工具,用户可以通过页面部署、管理SequoiaDB 集群,并且WEB

控制台还将实时监控的数据用形象的图表展示

给用户。企业后续对SequoiaDB 集群的运维工作量大大减少。

(有哪些管理功能?下面的每个功能图,能否每个都写一段,说明怎样帮助用户做好运维工作)

1.1.11 数据安全

SequoiaDB 提供了对SSL 的支持。SequoiaDB 客户端和SequoiaDB 实例直接可以使用SSL 加密连接。SSL ,(Secure Sockets Layer)安全套接层是为网络通信提供安全及数据完整性的一种安全协议。SSL 作为一种安全协议,它提供使用TCP/IP的通信应用程序间的隐私与完整性。在客户端与服务器间传输的数据是通过使用对称算法(如DES 或RC4)进行加密的。公用密钥算法(通常为 RSA )是用来获得加密密钥交换和数字签名的,此算法使用服务器的SSL 数字证书中的公用密钥。有了服务器的SSL 数字证书,客户端也可以验证服务器的身份。

SequoiaDB 数据库支持备份操作,用户可以根据自身情况选择相应的时间点对数据进行定期的备份操作。对数据库进行备份操作可以极大量的保证数据的安全性,如由于数据库机房电路的问题导致整个机房停电,最终导致数据的损坏或者丢失。此时就可以通过数据备份将整个数据库的数据还原回来,从而比较好的确保了数据的安全。

从SequoiaDB 数据库的架构而言,其采用的是分布式、多冗余多副本的架构模式。此架构的好处是可以比较好的保证数据的安全可用,

其可以根据客户在布

署时的选择来提升数据的安全性,比如选择3副本。在一个三副本的SDB 集群中,当数据库集群中的某一个节点发生故障导致数据损坏时,SequoiaDB 数据库仍然能够保证数据安全,并且还可以提供数据服务。不仅保证了数据的安全,也保证了数据的高可用性。

下图展示了一个数据组中有三个数据节点,当数据组的主节点挂掉时,其它的两个数据节点会从新选主。数据组继续向应用程序提供服务,此时不仅保证了数据的安全性,也保证了数据的高可用性。当故障节点恢复后,故障节点再次加入数据组,并开始做数据的同步,恢复数据。

1.1.12 系统部署方案

SequoiaDB 数据库支持布署在X86架构、x64(64位 AMD64 和 Intel EM64T 处理器)、PowerPC7或者PowerPC7+架构的服务器上。建议采用 X64(64 位 AMD64 和 Intel EM64T 处理器)或者 PowerPC 处理器。

SequoiaDB 数据库支持的Linux 系统类型:

Red Hat Enterprise Linux (RHEL) 6

SUSE Linux Enterprise Server (SLES) 11 Service Pack 1

SUSE Linux Enterprise Server (SLES) 11 Service Pack 2

Ubuntu 12

CentOS 6

SequoiaDB 数据库支持的Power PC Linux系统类型:

Red Hat Enterprise Linux (RHEL) 6

SUSE Linux Enterprise Server (SLES)11 Service Pack 1

SUSE Linux Enterprise Server (SLES)11 Service Pack 2

对于上生产的SequoiaDB 集群而言,我们建议至少是6台服务器,每台服务器至少四核以上,物理内存至少16G ,网卡建议至少配置1GE 网卡。对于这一块的配置,可以结合实际的生产环境进行确定。

磁盘空间则需要根据具体的数据量、应用场景来进行估算。比如,按照未来需要处理的全量数据500G 来计算,考虑sdb 记录的自描述特性,裸文件进入sdb 后,会有一定的数据空间膨胀,约为2倍。如果考虑sdb 的3倍冗余,起码需要准备 500G*2*3 = 2500G=2.44T空间。

SequoiaDB 数据库集群的布署建议部署一组三副本,部署多个数据组。一组三副本能够比较好的保证数据的安全以及数据的高可用性。而多数据组,可以为后续数据的切分存储做好基础,保证数据能够均匀的落到每一台服务器上。每三台服务器可以分别建立数据节点,然后将三个数据节点组成一个数据集群。每台服务器上均需要创建一个协调节点,确保外部程序可以通过连接任意一台服务器上的协调节点对SequoiaDB 数据库进行访问。编目节点建3个即可,确保3个编目节点能覆盖到所有布署的数据组。服务器布署的架构如图所示。

服务器上布署相应的协调节点、编目节点以及数据节点等相关节点如下图所示。

其中用蓝色圈框起来的三个数据结点表示一个数据组,此示例集群中有四个组。

而用红色圈框起来的三个编目结点表示一个编目组,编目组上的节点与数据组中的任意节点处在同一台机器。

企业布署中一般将应用服务与基础的数据服务分开,应用服务一般布署在应用服务器上,而基础的数据服务则在数据库服务器上。出于安全考虑,一般会选择做备份服务器,用于对数据库的数据以及应用服务相关资料进行备份。整体的布署架构图如下图所示:

备份

服务器1

备份

服务器2

数据库

服务器1数据库服务器2数据库服务器3数据库服务器4数据库服务器5数据库服务器6


相关文章

  • 在DevOps产品的设计和研发中,我曾犯过的6个错误
  • 这10年来我一直从事中间件产品研发,从以前的UI设计器.开发工具到现在的大数据.云计算等,遇到的挫折其实并不多.但去年的DevOps产品研发,最终成果很难令人满意,到底是什么问题导致?凡事都讲天时地利人和,产品研发亦然,而作为DevOps产品架构设计者,我到底犯了哪些错误?在此,我会从架构.技术.团 ...

  • 基于cs结构的空间机械臂控制系统软件架构设计
  • Journal of Computer Applications 计算机应用,2014,34(10) :3059-3064文章编号:1001-9081(2014)10-3059-06 ISSN 1001-9081CODEN JYIIDU 2014-10-10 http://www.joca.cn d ...

  • 金税三期架构需求--网络发票管理系统
  • <金税三期架构需求-网络发票管理系统> V1.0 金税三期工程架构管控项目组 2011年4月 修订记录 目录 第1章 金税三期总体概述 ............................................................................ ...

  • 智能电网信息化体系架构研究
  • 智能电网信息化体系架构研究 1 刘国民,宋 12雨,周庆捷 (1.华北电力大学,河北保定071003:2.北京中恒博瑞数字电力科技有限公司,北京100096) 摘要:智能电网是当今世界电力系统发展变革新动向,被认为是21世纪电力系统重大科技创新和发展趋势.为全面提高电网安全运行水平及供电保障能力,实 ...

  • 工业互联网和工业大数据
  • 李海花:很高兴有机会跟大家分享中国信通院在工业大数据.工业互联网方面研究的初步的成果. 从三个方面进行介绍,一是工业互联网的理解和最新的进展.二是工业互联网产业联盟.2月1号工业互联网产业联盟成立,4月7号召开开工作组会议,想把情况跟大家分享.三是对工业大数据的认识. 首先分享对工业互联网的理解.美 ...

  • 第三方支付风控系统架构设计
  • 第三方支付风控系统是如何运作的?如何搭建?系统架构如何? 第三方电子支付是一个高风险的行业,这就意味着第三方电子支付公司必然要与各种不确定性相伴.从风险受益的角度来看,第三方电子支付公司存在的价值不在于其能消灭不确定性,消灭风险,而在于其能在对风险有较深入认识的基础上控制和管理风险,将风险配置到愿意 ...

  • 项目需求说明
  • 1.1 项目需求说明 1. 项目背景 云计算是继1980年代大型计算机到客户端-服务器的大转变之后的信息产业领域又一次重大变革.济南市公安局一直以来高度重视科技强警,信息化建设更是走在全国的先进行列.随着信息化建设规模的不断扩大,旧模式下的建设方式对空间.承重.电力等机房环境成本要求巨大,对备份.安 ...

  • 政务信息资源共享交换平台建设方案
  • 政务信息资源共享 交换平台建设方案 2012年XX 月 目 录 一.建设背景 ............................................................................................................... ...

  • 产品与解决方案
  • 产品与解决方案 一.软件产品: ❑ (OBIS eBusiness) ⏹ 协同办公管理系统(OA ) ⏹ (HR ) ⏹ 业务流程管理系统(BPM ) ⏹ 客户关系管理系统(CRM ) ⏹ 供应链管理系统(SCM ) ⏹ 企业决策支持系统(DSS ) ❑ 电子政务软件 ⏹ 报表分析系统 ⏹ 通用数据 ...

© 2024 范文中心 | 联系我们 webmaster# onjobs.com.cn