0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AerospikeのFAQ(基本編)

Posted at

はじめに

AerospikeはNoSQLデータベースであり、キーバリュー、ドキュメント、グラフを扱える分散データベースです。
以下のページにも詳細を記載していますが、このページではよくある質問をまとめてみました。
Aerospikeの紹介
Aerospikeのアーキテクチャ
目次から知りたい情報を探して御覧ください。

Aerospikeとは

Aerospikeとはなんですか?

キーバリュー、ドキュメント(JSON)、グラフを扱える分散データベースです。
Aerospikeはソフトウェアですが、現在は様々なご利用環境を提供しています。

Aerospikeは有償ですか? 無償版はありますか?

Aerospikeは有償版であるEnterprise Edition(以降:EE)と無償版であるCommunity Edition(以降:CE)があります。
詳細は以下に記載していますが、大きな違いはデータ量、サーバ数、サポートの有無、一部機能の有無、オプション追加の可否です。
Enterprise EditionとCommunit Editionの違い
ご質問のある方は、こちらからお問い合わせください。

NoSQLデータベースについて

NoSQLデータベースとは?

NoSQLデータベースとは、Not Only SQLデータベースの略で、RDB(リレーショナル・データベース)とは異なる、データベースです。
データがリレーショナルではないため、複数サーバへの分散・複製が可能になります。

NoSQLデータベースのデータモデルは?

NoSQLといっても様々なデータモデルがあります。
キーバリュー、ドキュメント、グラフが特に多く利用されています。

キーバリューとはなんですか?

キーバリューとは

キーバリューとは、ユニークなキーに複数のバリューが設定されているデータベースのモデルです。
kv2.png

RDBとの違いは?

RDBと同じように見えますが、カラムの定義が不要であり、また、レコード毎にbinがすべて必要なわけではないなど、RDBより自由度が高いデータになります。
RDBのようにwhere文やjoinの利用などの使い方は得意ではなく、キーでのデータの取得が効率的に行える事を最優先に構成しています。

キーバリューのメリットは?

高速でのデータの読み込み・書き込み

キーでのデータの取得を効率的に行うことを優先して構成されているため、高速(低レイテンシ)でのデータの読み込み・書き込みが可能です。

複数サーバでのデータの分散・複製により、高可用性、高スループット、大量データ

レコード間の関係性を排除しているため、データを複数サーバに分散させ、また、一つのデータを複数レコードに複製することが可能になります。
複数サーバに分散・複製することにより、サーバが落ちても稼働しているサーバで稼働を続けることができます。また、サーバを増やすことで大量データを扱え、また、大量のアクセスにも対応できるようになります。
ただし、これにより一貫性が低いというデメリットが発生します。

キーバリューは何に使われますか?

そもそもキーバリューは、大量データの高速処理が必要なSNSのために開発されました。
SNS以外にもネット広告やゲームなど広く利用されています。
現在では、高速な処理のため金融系でも利用されています。

ドキュメントDBとはなんですか?

ドキュメントとは

JSONやXMLなど自由度の高い構成のデータを扱うデータベースです。
例えば製品や部品の情報など、画一化できない情報を扱うことができます。
特にJSONでは、ネストしたLIST、MAPの利用が可能であり、プログラムとの整合性もよく、JSONから各言語のデータ形式に変換が容易に行えます。
document.png

ドキュメント(JSON)DBのメリットは?

効率的なJSONデータの操作

JSONデータをテキストデータとしてデータベースに保存した場合には、JSONデータを操作するにはプログラムに読み込む必要があります。しかし、ドキュメントDBでは、JSONデータをプログラムに読み込むことなく操作が可能になるため、JSONデータが効率的に操作できます。

複数サーバでのデータの分散・複製により、高可用性、高スループット、大量データ

キーバリューと同様、複数サーバの分散・複製により、高可用性、高スループット、大量データに対応可能です。

ドキュメントDBは何に使われますか?

BOMなどの非構造・半構造なデータを扱うシステムで利用されています。

グラフDBとはなんですか?

グラフDBとは

データ同士のつながりを表現するグラフ構造に基づいてデータを格納するデータベースです。
RDBが苦手なデータ間の関係性をたどる操作を高速に処理することができます。
graph.png

グラフDBのメリットは?

データの関係だけであればRDBでも表現できますが、RDBではデータの関係性を深くたどる操作は苦手なため、グラフDBが有用になります。

グラフDBは何に使われますか?

データの関係性を深くたどる操作が得意なため、不正検知やレコメンデータションなどで利用されています。

Aerospikeについて

Aerospikeの構成は?

サーバとクライアントの構成

Aerospikeは複数サーバで構成されます。
他のNoSQLデータベースでは複数種類で構成される場合がありますが、Aerospikeのサーバは1種類しかありません。
マスターサーバもなくシェアードナッシングであるため、サーバの台数は自由に構成することができます。
この複数サーバをあわせてクラスターと呼びます。
as1.png

クライアントは、各種言語のAerospike Client Libraryを使用してAerospikeサーバにアクセスします。

Aerospikeクラスターの構成

Aerospikeのクラスターには、RDBのdatabaseにあたるnamespaceが複数あり、その中にtableにあたるset、rowにあたるRecord、columnにあたるbinがあります。
as2.png

Aerospikeのデータの構成

キーバリュー、ドキュメント

Aerospikeのデータはキーバリューで保存されます。
kvs.png

ドキュメントDBはキーバリューのバリュー(bin)に入っており、他のドキュメントDBと違い、キーバリューとドキュメントを組み合わせて利用することができます。

グラフ(EEのみ)

グラフDBとして利用る場合は、Aerospikeクラスターをデータ保存用に利用し、Dockerで動作するAerospike Graph Serviceを起動し、クライアントアプリケーションからは、グラフ言語であるGremlinを使用してアクセスできます。
as_graph.png

Aerospikeのメリットは?

高性能

Aerospike社が特許を持つ各種技術やC言語による開発などにより、低レイテンシ、高スループットをばらつきなく提供します。

低TCO

AerospikeはSSDを効率的に利用が可能で、データをメモリではなくSSDに保持していてもインメモリのNoSQLデータベース並みの性能を提供できます。
そのため、メモリ量を少なくでき、サーバ台数を減らす事ができます。
またAerosikeはサーバがシェアードナッシングであるため、サーバの増減と性能がリニアな関係であり無駄なくサーバを増加することができます。
以上によりサーバ台数を減らすことでTCOを低減できます。

管理工数の低減

Aerospikeはサーバの種類は1つしかなく、また、データの分散や複製についてもAerospikeが自動で行いますので、インストールや運用など、少ない工数で行えます。

高可用性

データの複製や再分散が自動で行われますので、複製数未満のサーバが停止してもデータが欠損せず、動作を続けることができます。
また、バージョンアップも1台ずつバージョンアップすることができますので、クラスターを停止する必要がありません。

強一貫性モード

金融系など一貫性が重要なサービスに対して、一貫性を高めたモードも提供しています。
複数レコードにわたるトランザクションもこのモードでは可能になります。

Aerospikeの利用

クラスターの利用方法は?

以下のご利用方法があります。(グラフについては後述します。ここではキーバリュー、ドキュメントの利用方法について説明します。)

Linuxのオンプレのサーバにインストールして利用する(EE,CE)

Linux環境にインストールしてご利用いただけます。
詳細はこちらを参照してください。

クラウドのインスタンスにインストールして利用する(EE,CE)

AWSAzureGoogle Cloudのインスタンスにインストールしてご利用いただけます。
Linux環境であれば、プライベートクラウドやその他のクラウドでもご利用いただけます。

Dockerで利用する(EE,CE)

Dockerを使って、macOS、Windowsでもご利用いただけます。
詳細はこちらを参照してください。

Kubernetesで利用する(EEのみ)

Kunernetesを使ってご利用いただけます。
詳細はこちらを参照してください。

DBaaS(Aerospike Cloud)で利用する(EEのみ)

Aerospikeが提供するDB as a ServiceであるAerospike Cloudでご利用いただけます。
詳細はこちらを参照してください。
ご質問のある方は、こちらからお問い合わせください。

Management Serviceで利用する(EEのみ)

利用する方のクラウドの環境でのAerospikeの運用をAerospike社にて代行するサービスです。
詳細はこちらを参照してください。
ご質問のある方は、こちらからお問い合わせください。

入手方法は?

オンプレやクラウドのインスタンスにインストールする場合は、以下よりダウンロードできます。
Community Editionのダウンロード
Enterprise Editionのダウンロード
インストール方法については、上記の利用方法は?をご確認ください。

クライアントの利用方法は?

Aerospikeの利用には、各種言語(CJavaGoC#PythonNode.jsRubyRustPHP)に対応したClient Libraryを使用してアクセスします。
基本的な使用方法は、最初にAerospikeへのコネクションをオープンし、その後はそのコネクションに対して、put()、get()、delete()を行います。
さらに詳細な使用方法がありますが、基本この操作になります。

情報はどこにありますか?

こちらに日本語サイトがあり、お問い合わせも受け付けています。
こちらは本社の英語サイトです。ワールドワイドな情報を提供しています。
実際にインストールや開発を行う時に必要な情報はこちらにAerospikeのドキュメントがあります。(英語)

Aerospike社に問い合わせ、質問したい

こちらからお問い合わせください。日本語で対応いたしますので、お気軽にご連絡ください。
また、公開して良い質問であれば、この記事にコメントしてください。

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?