はじめに
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の歴史は以下の通りです。
- 2010年:キー・バリュー型のNoSQLデータベースソフトウェアとして、citrusleafの名前で提供開始。(バージョン2以前)
- 2012年:名称をAerospikeに変更。(バージョン3以降)
- 2014年:無償のオープンソース版のAerospike Server Community Editionの提供を開始。(有償版はAerospike Server Enterprise Edition)
- 2020年〜:NoSQLデータベースを核とし、以下の製品、ソリューション、サービスを提供。
- 2022年:バージョン6を提供中
要約すると、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のアーキテクチャ