Apache Gora Aerospike数据存储

Apache Gora是一种内存数据模型,可促进对象到数据存储的映射,从而为大数据提供数据表示和持久性框架。 由于它当前支持将对象持久化到各种数据库模型,例如Apache Hbase,Apache Cassandra等列存储和键值存储,因此在我的GSoC项目中,我能够扩展其功能以提供对Aerospike数据库的支持。

在继续使用gora-aerospike模块之前,最好先了解一下Aerospike的基本概念。 Aerospike是具有分布式NoSQL数据库的键值存储。 键值存储操作与记录(RDBMS行),名称空间(RDBMS数据库),集合(RDBMS表)和容器(RDBMS列)关联。

Aerospike数据模型

Aerospike数据模型中的一个重要因素是它是无模式的。 以下关键字提供对Aerospike数据模型的基本了解。

  • 命名空间

与RDBMS相比,名称空间可以定义为一个数据库或一组数据库的一部分。 根据他们的文档,“数据库可以指定多个名称空间,每个名称空间具有适合您的应用程序的不同策略。 考虑将数据绑定到存储设备(RAM段,磁盘或文件,或无)的名称空间物理容器。

  • 套装

集合可以定义为记录的逻辑分组,并与RDBMS中的表组合。 但是这里的集合是可选的,因为可以有不属于任何集合的记录。

  • 垃圾箱

Bin会组装到RDBMS中的列,但是它们不指定数据类型。 数据类型由bin中的值定义。 Bin值是强类型的,但是bin本身是没有类型的。

  • 记录

记录组装到RDBMS行。 记录包括密钥,元数据和容器。

有关Aerospike的工作原理的更多信息,您可以访问其官方网站,这是了解Aerospike的全部内容的最佳位置。

Gora — Aerospike模块

从下一个Gora版本开始,我们可以使用Gora Aerospike模块执行基于数据存储的操作。 我们将快速了解如何在本地设置Aerospike并使用Gora执行基本操作。

设置Aerospike服务器

作为第一步,请遵循Aerospike入门指南以设置Aerospike服务器。 设置Aerospike服务器后,如果使用的是Ubuntu平台,则可以通过执行以下命令来验证其是否正在运行。

为了在Aerospike服务器上运行,我们需要创建一个名称空间。 默认情况下,它具有名为“ test”的名称空间,我们将在本指南中使用它,但是如果您需要配置其他名称空间,则可以对其进行配置。

在Aerospike服务器中,以aql的名称在本地安装了一个工具,我们可以使用该工具与Aerospike服务器进行交互。 要验证可用的名称空间,您可以使用aql命令行界面,如下所示:

通过Apache Gora使用Aerospike

为了通过Apache Gora试用Aerospike的功能,当前,您需要获取源代码并构建母版。 下一个版本发布后,我将更新该帖子。

我们将跟踪gora教程,以使用Aerospike服务器的基本功能。

Gora支持使用不同的数据存储,在本教程示例中,我们需要配置要使用的数据存储。 通过类路径名为gora.properties的文件进行配置。 我们将使用以下文件gora-tutorial / conf / gora.properties将数据存储设置为Aerospike。

gora.datastore.default = org.apache.gora.aerospike.store.AerospikeStore

默认情况下,aerospike服务器的ip和port设置为启动服务器时使用的默认port和ip值。 本地主机的IP值和端口值3000。如果需要更改默认值,则可以通过属性文件进行如下设置:

gora.aerospikestore.server.ip =本地主机
gora.aerospikestore.server.port = 3000

如果您尝试访问的服务器受凭据限制,则可以按以下方式提供凭据;

gora.aerospikestore.server.username =用户名
gora.aerospikestore.server.password =密码

设置属性后,您需要通过gora-aerospike文件定义映射。 就日志分析示例而言,以下映射文件计数。

   





















有关这些属性的作用的进一步参考,请参阅gora文档。

现在所有的设置都已经设置好了,我们很高兴通过Gora在Aerospike周围玩耍。

基本的PUT,GET,DELETE功能

按照日志管理器示例,我们可以使用其提供的解析功能[9]来测试是否向Aerospike服务器添加了记录。

$ bin / gora logmanager -parse gora-tutorial / src / main / resources / access.log

成功解析后,我们可以通过aql检查它是否已成功添加,如下所示;

通过查看可用的集合,我们可以看到已创建与“ Accesslog”相对应的集合。

另外,如果我们需要查看添加的记录,可以通过以下方式完成:

aql>从测试中选择*

可以使用日志管理器示例按以下方法检索Aerospike服务器中存储的数据。

$ bin / gora logmanager-获取42

INFO log.LogManager — {“ URL”:“ / index.php?i = 0&a = 1__rntjt9z0q9w&k = 398179”,“时间戳”:1236710649000,“ ip”:“ 88.240.129.183”,“ httpMethod”:“ GET”,“ httpStatusCode”:200,“ responseSize”:43,“ referrer”:“ http://www.buldinle.com/index.php?i=0&a=1__RnTjT9z0Q9w&k=398179”,“ userAgent”:“ Mozilla / 4.0(兼容; MSIE 6.0; Windows NT 5.1)”}

另外,删除存储在Aerospike服务器中的数据的方法如下:

$ bin / gora logmanager-删除12

INFO log.LogManager —包含键的网页浏览:已删除12

查询功能

Gora教程提供了更好的文档,介绍了如何查询gora支持的数据存储中存储的数据。 gora中的普通查询功能结合了以下功能:

  1. 查询以检索整个数据集而不进行过滤
  2. 查询单个键
  3. 查询键范围

目前,还不支持通过gora-Aerospike模块查询键范围,因为Aerospike本身不提供使用二级索引的查询键范围的支持。

我们可以查询单个键,如下所示;

$ bin / gora logmanager-查询10

它将返回与键值10相关的条目。

到此为止,基本介绍了如何使用Apache Gora模块与Aerospike服务器进行交互。 在以后的文章中,我将提供对该模块的更多见解。 希望这有助于上手🙂

谢谢阅读..!!!