近期在做实时指标平台,我们的实时指标数据是存储在aerospike上的。下面就介绍下它的特性

aerospike总体来说是一个基于内存的并且具有高度可靠性的分布式计算系统

架构

客户端层

这一层包括带有AerospikeAPI的开源客户端库和能够感知数据在Aerospike集群中位置的追踪节点。

集群和数据分布层

这一层监控集群通讯并提供一些自动化功能,比如故障转移、数据复制和跨数据中心同步。

数据存储层

这一层负责在DRAM(动态随机存取存储器)和Flash(闪存)中存储数据。

数据模型

Namespaces

类似于database

Sets

类似于RDBMS的table。

Records

key

  • 唯一标识. 根据key的hash查询Records
  • key的类型:Integers, String, and bytes
  • 内部会hash成一个 160-bit(20-bytes) 的digest

metadata

  • generation,类似version
  • time-to-live (TTL)
  • last-update-time (LUT)

bins

  • 类型于RDBMS的列
  • 数据类型
    • integer: 8 bytes
    • string: 128 KB;
    • bytes
    • double: 8 bytes
    • CDTs (Complex Data Types)
      • list
      • map
    • GeoJSON (3.7.0+)
    • native-languages serialized(blobs)

特点

  1. 数据存放
    数据可以放内存,也可以放SSD。
    数据放内存时速度肯定会很快,但这和memcache一样,相比memcache性能并没有优势
    数据也可以放SSD,并做了特定优化,相比mysql会更快,但数据操作模型过于简单,可使用场景很少。也比mongo性能更好,但其要求SSD存储,这样容量较小,费用也较高,这时mongo是好选择

  2. 数据操作模型
    支持 按主键及二级索引筛选数据
    支持 聚合 (强大,一个卖点)
    不支持排序(通过聚合功能的lua脚本也可能可以实现,但并不现实)
    虽然支持类SQL语法操作,但可进行的操作非常简单,好于memcache, 稍好于mongo,比redis差些,跟mysql完全没法比,但其聚合功能还比较强大。

  3. 集群管理
    相当强大,多个平等的结点,平摊存储所有数据,并且互相备份。集群结点的失效及添加完全自动化处理,不影响用户请求。
    相比memcache,这是它强大的地方,也不会弱于其它nosql的集群管理。

  4. 聚合功能
    这里聚合的概念等同于mysql中的聚合。可以通过编写lua脚本,实现对数据的聚合,此时aerospike可以看作一个分布式的基于内存的map-reduce计算平台,相比普通的hadoop map-reduce,速度是很快的,当然,可处理的数据量相对较少。

  5. 事务
    支持行事务

坑点

  • 只支持batch read,不支持batch writes
  • 记录大小有限制: <= 1M => 有点小,不过对于我们的场景基本没问题
  • bin name长度: <= 14 Chars => 一般来说单字段不会超过,嵌套属性如果拼接就很容易超长
  • 没有内建的聚合函数(Aggregations: count, max, min, sum, group by, etc.),通过UDFs可以支持(queryAggregate),但是使用方式不友好,效率也不高
  • namespace 下的sets限制1024,二级索引限制256,唯一binname限制32K,一个namespace下最多4 billion记录
  • 范围查询只支持BETWEEN语句,没有小于,大于查询,并且RANGE结果只支持包含
  • 范围查询只支持整数类型,不支持浮点数
  • Query不支持分页(no cursor or pagination..)
  • Query不支持排序(no order by..)
  • 不支持动态创建namespace,只能通过修改配置文件、重启服务器
  • 只有清空set数据接口,但是并没有真正drop掉sets(会留下empty set,然后一个namespace下只有有1024个sets..)

为什么选用aerospike

与redis相比

  • redis单线程处理
  • redis集群部署比较复杂
  • redis有严重的磁盘碎片问题
  • 节点扩展不方便

与memcache相比

  • memcache不支持持久化
  • memcache只支持string类型数据
  • 不支持事务
  • memcache集群管理差

适用场景

  1. 替换memcache做缓存
    这是由于它有强大的集群管理功能,对非常重要不能宕机的缓存服务可以采用它,但代价就是需要更多的硬件服务器。

  2. 性能要求很高的实时聚合计算
    aerospike是一个分布式的基于内存的map-reduce服务,速度快。一般来说,原始数据变化较频繁,而对聚合计算实时要求较高的情景可以用它。

安装管理

安装
配置
管理

Aerospike-介绍相关推荐

  1. Aerospike NoSQL 数据库介绍

    特点: 1. 键值存储, 内存 + 闪存(SSD) 存储数据,官方承诺查询 速度99% 达到1ms 低延迟和高吞吐量而闻名,已经用于许多大型的.要求堪称苛刻的实时平台 2. 数据结构相对简单(意思是说 ...

  2. Aerospike使用介绍

    关于 Aerospike Aerospike 服务器向外扩展,形成一个无共享的集群,透明地对数据进行分区,并跨节点并行处理数据.集群中的节点都是相同的:您可以从使用两个硬件开始,随后添加更多的硬件.集 ...

  3. Prometheus介绍

    一.Prometheus介绍 Prometheus是一个开源的系统监控和报警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF托管的项目,在kubernetes容器管理系统中,通常会 ...

  4. Aerospike - 安装以及入门知识

    Docker安装Aerospike Aerospike镜像下载,安装指定版本(4.0.0.5) docker pull aerospike:4.0.0.5 C:\Users\guoyu.huang&g ...

  5. 数据简化社区2018年全球数据库总结及18种主流数据库介绍(公号回复“数据库2018”下载典藏版PDF报告)

    数据简化社区2018年全球数据库总结及18种主流数据库介绍(公号回复"数据库2018"下载典藏版PDF报告) 秦陇纪 数据简化DataSimp 今天 数据简化DataSimp导读: ...

  6. AeroSpike基本原理及概念

    说明:分两篇介绍,第一篇为基本概念介绍,第二篇为Java客户端操作. 1.什么是AeroSpike?   Aerospike是一个分布式,可扩展的NoSQL数据库.T级别大数据高并发的结构化数据存储解 ...

  7. aerospike小白老手都爱的使用经验

    简单介绍 aerospike目前有开源版本和企业版本,aerospike主要分为三部分aerospike-server.aerospike-tools.aerospike-amc. aerospike ...

  8. Aerospike基础知识

    Aerospike基础知识 介绍 Aerospike是一个分布式,可扩展的NoSQL数据库.该架构有三个主要目标: 为Web级应用程序创建灵活,可扩展的平台. 提供传统数据库所期望的稳健性和可靠性(如 ...

  9. AeroSpike基本应用

    说明:分两篇介绍,第一篇为基本概念介绍,第二篇为实际应用:该篇为应用部分. 1.常用操作命令   Aerospike提供一套类SQL操作,和Mysql语法极其相似(命令解析参考注释),在安装aeros ...

  10. Guava Cache介绍

    1.缓存回顾: 使用场景:互联网,数据越来越多,用户越来越多,并发量.吞吐量越来越大 使用数据库存储,分库分表,也不能满足要求,使用缓存,减轻数据库的压力 临时存储的数据 其他的场景:Session分 ...

最新文章

  1. 从iOS证书申请到签名文件生成
  2. python播放音频及playsound模块解除占用的3种方法
  3. postgresql GUC 参数
  4. int a [] = {1,2,}; 允许使用怪异的逗号。 有什么特殊原因吗?
  5. SpringMVC 全局异常处理,返回json
  6. 电大法学本科计算机考试题,电大法学本科计算机形成性考核作业
  7. 数据结构练习 00-自测3. 数组元素循环右移问题 (20)
  8. python 速成学堂_Python 与数据科学入门
  9. 斯威夫特山地车_斯威夫特字典
  10. 2021十大运动蓝牙耳机品牌推荐,平价真无线蓝牙耳机运动无拘束
  11. Java 拦截器自定义(添加响应头)
  12. 监控易:智慧高校一体化综合运维解决方案
  13. Java 常见面试题
  14. Android使用LAME Mp3编码
  15. 全文检索四种技术解决方案
  16. 802.11 Tx Rate Control
  17. java ready()_Java BufferedReader ready()用法及代码示例
  18. 古墓丽影10linux,《古墓丽影11:暗影》Linux平台与Windows平台流畅度对比
  19. html怎么用img添加图片,img标签(html怎么用img添加图片)
  20. 金融分析与风险管理——资本资产定价模型

热门文章

  1. Unity3D实现地图编辑器的插件
  2. 武大计算机考研拟录取名单,2021武汉大学考研拟录取名单已公布
  3. 别人家都装了吸顶音响,你家还没装?OUT了
  4. 挡不住了,中国芯片制造产业链的重大突破,5nm设备即将发给台积电
  5. windows下安装rattle包所踩的坑
  6. 86-交换机与VLAN:办公室太复杂,我要回学校
  7. android特效集锦系列之八 仿快播搜索框悬浮文字搜索
  8. Android TextView 自定义字体设置(华文行楷TTF)
  9. MYSQL强化练习51题
  10. 实体映射工具-MapStruct使用详解