Cassandra架构、设计(集群&表)和性能报告

系统架构:

Cassandra No -SQL 数据库系统, 基于一致性哈希算法的 P2P 环形结构。 这种结构 各节点功能彻底相 同, 可灵活添加节点来完成系 统的扩充或删除节点, 且无需大规模转移数据, 时完全避免系 统因 单点故障算法

致使的不稳定性; 每一个节点经过 Gossip 机制进行消息同步; 数据 个节 点( 是经过参数配置的副本因 子), 统利 数据数据库

的复制机将存储在各节点上的数据复制到其余节点上, 实现了数据的高度可得到性与安全性。安全

 

 

数据模型

Cassandra 使用 型, 记录是以 Key Value 形式进行存储, 其中 Key为 惟一标识。 个Key- Value Value 为Column, 组, 服务器

Column Name Column Value timestamp CF 由一个 Key及其对应的若干个 Column 标识组成。一个网络

keyspace 包含若干 CF 相似关系 型数据库中一个架构

database 可有 个table 并发

 

个Column 型数据模型。运维

 

 

 

 

CPA理论:

NoSQL Eric Brewer 的CAP 理论   依据此理论, 在一个大规模的分布式数据系统中, 有三个需求是彼此循环依赖的, 一致性( consistency availability 耐受性( partition tolerance 分布式

一致性: 对全部数据库客户 使 据;性能

可用性:  据;

分区耐受性:  上, 即便发生 障, 务。

 

CAP 可简单描述

  以上三个 性, 个。

Cassandra 主要支持 性。 

Cassandra 数据 性,

可用 性。

 

 

存储机制

Cassandra 依赖本地的文件系统经过内存与磁盘的双重存储机制来保证数 据的持久性

Cassandra 有三 个重 构, 记录

Memtable Commit Log和

SSTable

Memtable 改, 而SSTable 记录着数据库 所承载的 绝大部分数据。一般 下, Cassandra

Memtable 和多 个SSTable

Cassandra 接收到 客户端发送来的数据, 首先将写操做记录到 位于磁

盘的 CommitLog 中; 上述操做成功 后, 更新位于内存中 Memtable 构。 数据, 使得 Memtable 逐渐增加, 其数据量到 达某个阈 值时, Cassandra 的数据迁移被触发, 方面将

Memtable 的SSTable 另外一方面将 CommitLog 入记录移除。 对于读操做,

Memtable 中的数据, 若没法获取所需信息, 检索本地磁盘。

Cassandra 会按期执行压紧compact 操做, 将同一条数据不一样的版本进行合并, 过期数据也会在此过程当中被删除; 分层数据压缩, 有效减小数据体积

及磁盘

 

系统设置(集群)

针对实时气象数据存储系统, 用户对该系统读取的性能需求远远高于写入数据 经过对副本数进行合理设置, 可分散读取压力 对于5 节点集群, 将副本数设置为

Row 分区 模式:

采用自动分区方式, 使不一样的 Row Key 均匀分布在各节点上, 有利于数据读取压力的分散。

 

 

Cassandra 表设计

做为典型的非结构化数据,气象数据能够由多维索引 来肯定一个惟一的数据。

业务用户常见的操做包括“最新数据”“左右翻页”“上下翻页”等。

 

数据表

根据不一样数据类型创建相应数据表, 用于存储数据内容, 包括:

ECMWFHR(高分辨率数值预报产品 )、

SATELLITE 资料)、

UPPERAIR (高空站点资料)、

SINGLERADAR (雷达资料) 等。

“ T639 ”为 例 说明 数据表结构(表 1 )。

建表 句: CREATE TABLE "T639 "

"dataPath " text , column1  text

value blob PRIMARY KEY " dataPath " ,

column1

 

层次表

用于存储全部模式或实况的层次信息, 表名为level 客户 端进行上下翻页操做, 从level 表中获取当前层次的上一层或下一层信息; 利用层次表与数据表, 可检索到不一样层次的数据(表2 )。

建表语 句: CREATE TABLE level

"dataPath " text , column1 int , value int , PRIMARY KEY " dataPath " , column1 )) ;

 

最新时刻表

用于存储各种数据的最新时刻信息, 表名 为latestdatatime 最新时刻表, 用户能经过客户端快速查找到最新数据文件名。 用户根据完整索引 (文件路径与最新数据文件名), 例: T639 WIND 500 17030108. 000 便可在“数据表”中获取到对应数据(表 3 )。

建表语句: CREATE TABLE latestdatatime

" dataPath " text column1  text value text ,PRIMARY KEY " dataPath " , column1 )) ;

 

 

 

 

存储系统性能测试

测试环境

选用5台相同配置的服务器用来搭建分布式存储系统。 操做 Red Hat Enter -prise Linux Server release 7. 处理器参数为Intel Xeon CPU E5 2620 v2 2. 10GHz 主频为2. GHz 存大小为 256 GB ;6 块4TB SATA 硬盘; 服务器间经过万兆光纤链接。Cassandra 数据库版本为2. 2.

 

高可用性测试

个节点所组成分布式存储系统, 其结构上具备以下特色。

)服务器双网卡绑定, 即将两个物理网卡虚拟成一个逻辑网卡; 提高服务器之间的传输带宽,实现网卡冗余。

)用于集群内部数据交换的两台万兆光纤交换机, 采起级联方式, 可互为备份。

块SATA 硬盘, 其中 块作 RAID1, 安装操做 件; 4TB 个RAID0 用于存储数据。

)服务器集群为环形结构, 没有 master 节点, 各节点功能彻底同样。

 

按照表4中内容, 对系统的基础设施层(包括网络设备、存储设备等)、 软件层(数据库) 进行测试, 来验证系统的高可用 性; 从表中结论可知, 系统中用于内部数据交换的光纤或网卡、交换机及任一 Cassandra 服务器故障, 均不影响 MICAPS4客户端调取数据。

 

 

 

读取性能测试

经过读取数据的脚本文件(可获取数据字节数信息, 表5中 ECMWF _ HR TMP 100 录下数 132642 SATELLITE

FY2E L1 IR3 EQUAL 下数据字节数为554944字节

T639 WIND 100 下数据字节数为1449052字节), 模拟单用户及50 100 客户 端对同一类型数据进行读取, 共分 组, 即对三种不一样类型的数据进行测试, 测试性能见表5 注意测试结果包含网络传输时间。

 

 

 

从数据读取的测试结果能够看出

)50 用户并发和100 并发 客户 型数据进行 。以 T639 WIND/100 例, 50 100用 并发与单用 读取相 关数据 均时间 均在20 ms 左右。

在100 并发状况下, 从数据库 取数据 所消 ms量级为 小于在samba

3) 数据读取时 比,即单个数 大, 费的时间 越长。

 

结语

利用 Cassandra 分布式数据库搭建的存储环境, 提升了实时气象数据存储效率与检索速度, 经过统一的数据平台, 实现了运维人员对该系统维护。 经过在实际业务环境中进行测试, 验证了该分布式数据环境的高可用性; 以毫秒级为单位的数据读取时间, 能很好地知足业务对数据时效性的需求。

相关文章
相关标签/搜索