LoginSignup
1

More than 1 year has passed since last update.

Aerospikeの紹介

Last updated at Posted at 2022-11-08

はじめに

Aerospikeは、キー・バリュー型のNoSQLデータベースとして、提供が開始されました。
そして現在、このNoSQLデータベースを核に、リアルタイムデータプラットフォームとして拡張を続けています。
これにより、Aerospikeは高性能はNoSQLデータベースとしての利用から、高い一貫性を求める金融システムでの利用まで、幅広く使われています。
拡張を続けるAerospikeとは何なのか、詳しく知っていただき、触れていただくきっかけになれば幸いです。

無償のエディションや、有償版の評価ライセンス(制限あり)もありますので、気軽にご利用いただけます。

Aerospikeとは

Aerospikeは、アメリカのマウンテンビューにあるAerospike社が提供する製品、ソリューションおよびサービスを表す名称です。
このAerospikeの核となるのは、リアルタイム・マルチモデルNoSQLデータベースであるAerospike Database 6です。
ここでは、Aerospike Database 6を中心に、Aerospikeを紹介します。

Aerospike社サイト
https://aerospike.com/
Aerosike日本語サイト
https://aerospike.com/jp/home/

リアルタイム・マルチモデルNoSQLデータベースって?
簡単に書くと 『超高速で、様々なデータモデルが、様々な構成(メモリ、SSD等)で使えるNoSQLデータベース』 です。

Aerospikeの歴史

Aerospikeの歴史は以下の通りです。

要約すると、Aerospikeはキー・バリュー型のNoSQLデータベース・ソフトウェアとして提供開始し、その後、機能や関連製品を増やし、ソリューションとクラウド上のサービスの提供を始めています。

Aerospike Database 6 の特徴

ここでは、Aerospikeの核であるAerospike Database 6 の特徴を説明します。

NoSQLデータベースとは

まず、NoSQLデータベース(以下、NoSQL)とは、リレーショナル・データベース(以下、RDB)以外のデータベースを指すもので、スキーマレスなデータベースと表すこともできます。
参考:
Wikipedia https://ja.wikipedia.org/wiki/NoSQL
AWS https://aws.amazon.com/jp/nosql/

主要なNoSQLのモデルには、以下のようなものがあります。

  • キー・バリュー型
  • ソート済みカラム指向
  • ドキュメント指向
  • グラフ指向

Aerospikeは、キー・バリュー型であり、バリューとして文字列、数値、MAP、List等を扱うカラムを持ちます。また、現在ではドキュメント(JSON)も扱えます。グラフへの対応も進行中です。

NoSQLとRDBの比較

一般的なNoSQLとRDBを比較して、NoSQLの特徴を示します。

比較項目 NoSQL RDB
レイテンシ ◎ 低(高速) △ 高(低速)
スループット ◎ 多
分散 ◎ 分散が前提
大量データ ◎ 大量データが前提
スケーラビリティ ◎ スケールアウト ○ スケールアップ
アベイラビリティ ◎ 重視 △ ハードウェアで対応
一貫性 × or △ ◎ 一貫性を保証
トランザクション × or △
複数テーブルの連携 × or △
検索(クエリー)

NoSQLは、大量データおよびデータ増加が見込まれ、高速、大量アクセスの対応が必要なシステムに向いていますが、一貫性やトランザクションが必須の場合には向いていません。

それぞれ傾向であり、個々のソフトウェアでは当てはまらない場合があります。

したがって、それぞれの対象となるシステムは、以下のようになります。

  • リレーショナルデータベース
    • 一貫性を要求されるシステム
      • 金融処理
    • 検索性能が要求されるシステム
      • ECサイト
  • NoSQLデータベース
    • 高速性能が要求されるシステム
      • ネット広告
      • 不正検知システム
    • 大量データの処理が必要なシステム
      • IoT
      • データ分析
      • AI

Aerospikeと一般的なNoSQLの比較

以下がNoSQLデータベースの代表的なものです。

  • Apache Cassandra
  • Couchbase
  • MongoDB
  • Redis
  • DynamoDB

Aerospikeは、開発当初より他のNoSQLデータベースの問題点を踏まえて開発されています。
そのため、他のNoSQLデータベースより性能に勝っている場合が多くあります。
次に、Aerospikeと他のNoSQLとを比較して、Aerospikeの特徴をあげます。

比較項目 Aerospikeの特徴
レイテンシ/スループット クライアントからのアクセス方法、サーバでのFlashの使用方法など、各種の技術により他のNoSQLより性能向上します。Cassandraからの移行でサーバ数を大幅に減少させた実績が多くあります。
スケーラビリティ サーバの増加によるオーバーヘッドが少ないため、スケールアウトによりスループットおよびデータ量がリニアに増加します。Petaバイトを想定して設計しています。他のNoSQLではスケールアウトを行った場合にリニアに性能向上しない場合があります。
性能の安定 C言語で開発されており、性能の偏差が小さく、サービスレベルの目安をつけることが可能です。(レイテンシの目安は数ミリ秒以内で、多くが1ミリ秒未満)
データ分散 データは、キーにより自動的に分散されるため、サーバ追加・停止時であっても利用者はデータの分散を意識する必要はありません。データの複製数は設定にて指定できます。
一貫性 一貫性を強化した、Strong Consistencyモードを提供します。他のNoSQLでは提供されていないものが多いです。
アーキテクチャ インデックスとデータを、メモリ、Persistenceメモリ、Flash(SSD)にデータの特性に合わせて保存することができます。Flashにデータを保存できるため、メモリに比べて安価に大量データを保存することができます。
クライアント 各種言語のクライアントを提供します。提供するのは、Java、C#、C、Go、Python等です。
(https://developer.aerospike.com/client/client_matrix)
データモデル 各種データモデルの使用が可能です。使用できるのは、カラム(文字列、数値等、List、Map、ListとMapのネスト、GEOJSON等)、ドキュメント(JSON) です。

他のNoSQLもアップデートしており、また、ソフトウェアによる特色もありますので、必ずしも、Aerospikeの方がすべてで性能に勝るとは限りません。ぜひ、他のNoSQLとベンチマークをしていただき、適切なソフトウェアをご利用ください。

Aerospikeのエディション

現在、Aerospikeは、3つのエディションがあります。 https://aerospike.com/products/features-and-editions/

  • Community Edition
  • Standard Edition
  • Enterprise Edition

Enterprise Editionを評価したい場合は、Aerospikeのホームページの右上の「Try now」をクリックしていただくと、AWS上または自身のPC上での評価版の利用方法が表示されますので、ぜひご利用ください。ただし、これはシングルノード(一つのサーバ)での評価となりますので、マルチノードでご利用になりたい場合は、お問い合わせいただくか、Community Editionをご利用ください。

また、クライアントからどのようにAerospikeが利用できるかは、同じページの「Start coding immediately」からご確認いただけます。

Community Editionのご利用につきましては、以下よりご確認ください。
https://aerospike.com/download/#aerospike-server-community-edition

最後に

今後、Aerospikeのアーキテクチャ、評価版やCommunity Editionのご利用方法などの記事を掲載しますので、ご期待ください。

関連記事:
Aerospikeのアーキテクチャ

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1