Hirabiのデータ操作

HibariはKVSであり、キー(Key)と値(Value)から成るデータをいかに効率的に操作し、使用するかを求められます。 ここでは、そのデータ操作についてユーザが指示できるオペレーションコマンド等について示してみます。

対応プロトコル

Hibariには、データ操作を行うための直接的なGUIインターフェイスが存在しません。 このため、Hibariに対して何らかの操作を行うためには、以下のいずれかのプロトコルを使用してCUIベースの命令語を発行する必要があります。 以下、使用可能なプロトコルについて以下に示しました。

プロトコル名概要
Erlang APIHibariにアクセスする事が可能なErlangモジュールを使用して命令語を発行します。
主にデータ操作を可能とする「brick:simple」モジュールと、複雑な命令やテーブルの管理・追加などをサポートする「brick_server」モジュールに分かれ、Hibariの操作体系を意識しやすい構成となっています。
但し、当然ではありますが開発言語としてはErlangのみのサポートとなります。
UBFErlangの開発者でもある「Joe Armstrong」氏が提唱したバイナリスキーマであり、XMLやJSON等と同一の構成を持ってはいますがその構成はシンプルです。
また、バイナリベースのためネットワーク通信などにおいても帯域を圧迫しません。UBFのルールに従っていれば開発言語には特に依存せず、汎用的に使用する事ができます。
JSON-RPCJavaScript?言語をベースに生まれた軽量のデータフォーマットです。UBFと同様に特定の開発言語には依存しない上、テキストベースで解りやすく、また多くの開発言語では専用のフォーマット整形ライブラリが用意されているため、非常に使いやすいプロトコルと言えます。
但しテキストベースであるため、バイナリベースのUBF等と比べると効率が悪いといった欠点も存在します。
JSON(overTCP)Hibariが用意しているJSON用のネットワークポート(デフォルト値はポート7582)にアクセスし、JSONプロトコルで命令語を発行する事によってデータを操作する事も出来ます。
telnet等でアクセスし、直接テキストベースで操作可能のため、動作試験用として非常に手頃に扱う事ができます。


データ操作のオペレーション(命令語)

Hibariがサポートするデータ操作系のオペレーションについては、以下のようなものがあります。 使用するプロトコルによって命令語、またはデータ指定の方法に若干の違いがありますが、操作出来る内容等には違いはありません。以下の表にはその概要と、また一般的なRDBに置き換えて考えた場合の「対応する命令語」をまとめました。

データ
操作区分
Hibari
命令語
命令内容一般的なRDBに
おける対応した
PL/SQL命令語
参照系getデータの参照を行い、データが存在すれば取得を行います。SELECT
get_many指定された条件に関してデータを絞り込み、条件に合うデータ全てを取得します。
更新系add新規に新しいキー値を持つデータをテーブルに格納します。
すでにデータが存在している場合はエラーとなります。
INSERT
set既にキー値が存在するデータに対して、データの変更を行います。
該当するデータが存在していない場合はエラーとなります。
UPDATE
replace対象となるデータに対して、既にキー値がデータが存在していない場合にはadd命令を、データが存在している場合にはset命令をそれぞれ行います。MERGEまたは
UPSERT
delete指定された条件に該当するデータを削除します。DELETE
トラン
ザクション
txn一貫したデータ操作を行うためのトランザクション処理を行ないます。
指定された命令を全て行うまで、データに対しての反映を行いません。
TRANSACTION
~COMMIT
do

各プロトコル毎のCUI操作例、および命令語の詳細については、以下の項目を参照してください。


get(データの取得)

執筆中

get_many(データの複数取得)

執筆中

add(データの追加)

執筆中

set(データの更新)

執筆中

replace(データの追加/更新)

執筆中

delete(データの削除)

執筆中

txn/do(トランザクション処理)

執筆中


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS