Hibari/データ操作
の編集
http://eucalyptus.linux4u.jp/wiki/index.php?Hibari%2F%E3%83%87%E3%83%BC%E3%82%BF%E6%93%8D%E4%BD%9C
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
] [
リンク元
]
-- 雛形とするページ --
BracketName
Ceph/install
Ceph/memo
Ceph/mount
Ceph/概要
ChangeLog_v1.5.2
CloudStack
CloudStack/インストール方法
CloudStack/ネットワーク解説
CloudStack/ネットワーク設定
CloudStack/メモ
CloudStack/仮想マシン
CloudStack/初期設定
CloudStack/概要
Doc/EucalyptusImageManagement_v1.5.2
Documents
DynamicDNSGuide
Elasticfox
Euca2ools と EC2 Tools との違い
Euca2oolsCentosInstall
Euca2oolsGuide
Euca2oolsImageManagement
Euca2oolsInstallJaunty
Euca2oolsLennyInstall
Euca2oolsNetworking
Euca2oolsOpensuseInstall
Euca2oolsSourceInstall
Euca2oolsSqueezeInstall
Euca2oolsStorage
Euca2oolsUsing
Euca2oolsVmControl
Eucalyptus (OSS Elastic Computing) 日本語情報
Eucalyptus + Euca2ools + Elasticfox で作るプライベートクラウド環境
Eucalyptus - OSS Elastic Computing
Eucalyptus - Ubuntu 9.04 で作るプライベートクラウド環境
Eucalyptus 1.5.2
Eucalyptus 日本語情報 wiki - OSS Elastic Computing
Eucalyptus-Upgrade-1.6.1
Eucalyptus-Upgrade-1.6.2
EucalyptusAdministratorGuide_v1.5.2
EucalyptusAdministratorGuide_v1.6
EucalyptusAdvanced_v1.6
EucalyptusBlockStoreInteracting_v1.5.2
EucalyptusConfiguration_v1.5.2
EucalyptusFeatures_v1.5.2
EucalyptusGettingStarted_v1.5.2
EucalyptusImageManagement_v1.5.2
EucalyptusImageManagement_v1.6
EucalyptusInstall_v1.5.2
EucalyptusInstall_v1.6
EucalyptusInstallationCentos_v1.5.2
EucalyptusInstallationCentos_v1.6
EucalyptusInstallationDebianLenny_v1.5.2
EucalyptusInstallationDebianSqueeze_v1.5.2
EucalyptusInstallationDebianSqueeze_v1.6
EucalyptusInstallationOpensuse_v1.5.2
EucalyptusInstallationOpensuse_v1.6
EucalyptusInstallationUbuntuJaunty_v1.5.2
EucalyptusInstallationUbuntuJaunty_v1.6
EucalyptusKnownBugs_v1.5.2
EucalyptusKnownBugs_v1.5.2)
EucalyptusManagement_v1.5.2
EucalyptusManagement_v1.6
EucalyptusMonitoring_v1.6
EucalyptusNetworking_v1.5.2
EucalyptusNetworking_v1.6
EucalyptusOverview
EucalyptusPrerequisites_v1.5.2
EucalyptusRocksInstallation_v1.5.2
EucalyptusSourceCodeInstallation_v1.5.2
EucalyptusTroubleshooting_v1.5.2
EucalyptusTroubleshooting_v1.6
EucalyptusUpgrade_v1.5.2
EucalyptusUserGuide_v1.5.2
EucalyptusUserImageCreatorGuide_v1.5.2
EucalyptusWalrusInteracting_v1.5.2
FAQ
FormattingRules
FrontPage
Help
Hibari
Hibari/インストール
Hibari/データモデル
Hibari/データ操作
Hibari/特徴
InterWiki
InterWikiName
InterWikiSandBox
Links
MenuBar
OpenNebula/その他
OpenNebula/クラスタノードの構築
OpenNebula/ゲストOSのネットワークの設定
OpenNebula/ゲストOSの構築
OpenNebula/フロントエンドノードの構築
OpenNebula/仮想ネットワークの構築
OpenNebula/概要
OpenStack
PHP
Presentations
PressRelease/2010_Feb_9
PukiWiki
PukiWiki/1.4
PukiWiki/1.4/Manual
PukiWiki/1.4/Manual/Plugin
PukiWiki/1.4/Manual/Plugin/A-D
PukiWiki/1.4/Manual/Plugin/E-G
PukiWiki/1.4/Manual/Plugin/H-K
PukiWiki/1.4/Manual/Plugin/L-N
PukiWiki/1.4/Manual/Plugin/O-R
PukiWiki/1.4/Manual/Plugin/S-U
PukiWiki/1.4/Manual/Plugin/V-Z
RHEL5 にセットアップ(RPM)
RecentDeleted
RightScale
S3_Compatibility_1.5.2
SandBox
Scalaris/JSON APIの利用
Scalaris/Java-API用CLIツール
Scalaris/インストール方法
Scalaris/分散環境の設定
Scalaris/利用方法
Scalaris/概要
Sheepdog/インストール方法
Sheepdog/インストール方法(SL6)
Sheepdog/デザイン
Sheepdog/ユーザ会
Sheepdog/利用方法
Sheepdog/問題点
Sheepdog/概要
Swift/Rings
Swift/memo
Swift/インストール方法
Swift/サーバの起動とテスト
Swift/メッセージの流れ
Swift/使い方
Swift/概要
Swift/設定ファイルの作成
Swift/起動用スクリプトの作成
ToolsEcosystem
ToolsEcosystem_EC2Dream
ToolsEcosystem_Elasticfox
ToolsEcosystem_boto
ToolsEcosystem_cloud42
ToolsEcosystem_right_aws
ToolsEcosystem_s3cmd
ToolsEcosystem_s3fs
ToolsEcosystem_tAWS
ToolsEcosystem_typica
UEC/CDInstall
UEC/CreateYourImage
Ubuntu 9.04 Server Edition のダウンロード方法
Ubuntu Enterprise Cloud 入門
Ubuntu Enterprise Cloudで作るプライベートクラウド環境
Ubuntu/Eucalyptus
Ubuntu/Eucalyptus+bridge
Ubuntu/Eucalyptus+environment
Ubuntu/KVM
Ubuntu/libvirt
Ubuntu/ubuntu-vm-builder
UbuntuEnterpriseCloud
WikiEngines
WikiName
WikiWikiWeb
YukiWiki
backup-eucalyptus-16
configuration
first-time-setup-16
hypervisor-configuration
installation-distribution-specific-binary-packages
installing-eucalyptus-source-16
s3curl
sample-s3cmd-config
sample-s3cmd-config-s3
トラブル事例
*Hirabiのデータ操作 [#e0edaed3] HibariはKVSであり、キー(Key)と値(Value)から成るデータをいかに効率的に操作し、使用するかを求められます。 ここでは、そのデータ操作についてユーザが指示できるオペレーションコマンド等について示してみます。 **対応プロトコル [#g817cd6f] Hibariには、データ操作を行うための直接的なGUIインターフェイスが存在しません。~ このため、Hibariに対して何らかの操作を行うためには、以下のいずれかのプロトコルを使用してCUIベースの命令語を発行する必要があります。~ 以下、使用可能なプロトコルについて示しました。 |CENTER:プロトコル名|CENTER:概要| |Erlang API|Hibariにアクセスする事が可能なErlangモジュールを使用して命令語を発行します。&br;主にデータ操作を可能とする「brick:simple」モジュールと、複雑な命令やテーブルの管理・追加などをサポートする「brick_server」モジュールに分かれ、Hibariの操作体系を意識しやすい構成となっています。&br;但し、当然ではありますが開発言語としてはErlangのみのサポートとなります。| |UBF|Erlangの開発者でもある「Joe Armstrong」氏が提唱したバイナリスキーマであり、XMLやJSON等と同一の構成を持ってはいますがその構成はシンプルです。&br;また、バイナリベースのためネットワーク通信などにおいても帯域を圧迫しません。UBFのルールに従っていれば開発言語には特に依存せず、汎用的に使用する事ができます。| |JSON-RPC|JavaScript言語をベースに生まれた軽量のデータフォーマットです。UBFと同様に特定の開発言語には依存しない上、テキストベースで解りやすく、また多くの開発言語では専用のフォーマット整形ライブラリが用意されているため、非常に使いやすいプロトコルと言えます。&br;但しテキストベースであるため、バイナリベースのUBF等と比べると効率が悪いといった欠点も存在します。| |JSON(overTCP)|Hibariが用意しているJSON用のネットワークポート(デフォルト値はポート7582)にアクセスし、JSONプロトコルで命令語を発行する事によってデータを操作する事も出来ます。&br;telnet等でアクセスし、直接テキストベースで操作可能のため、動作試験用として非常に手頃に扱う事ができます。| ~ **データ操作のオペレーション(命令語) [#y68dd8b7] Hibariがサポートするデータ操作系のオペレーションについては、以下のようなものがあります。~ 使用するプロトコルによって命令語、またはデータ指定の方法に若干の違いがありますが、操作出来る内容等には違いはありません。以下の表にはその概要と、また一般的なRDBに置き換えて考えた場合の「対応する命令語」をまとめました。 |CENTER:データ&br;操作区分|CENTER:Hibari&br;命令語|CENTER:命令内容|CENTER:一般的なRDBに&br;おける対応した&br;PL/SQL命令語| |参照系|get|データの参照を行い、データが存在すれば取得を行います。|SELECT| |~|get_many|指定された条件に関してデータを絞り込み、条件に合うデータ全てを取得します。|~| |更新系|add|新規に新しいキー値を持つデータをテーブルに格納します。&br;すでにデータが存在している場合はエラーとなります。|INSERT| |~|set|既にキー値が存在するデータに対して、データの変更を行います。&br;該当するデータが存在していない場合はエラーとなります。|UPDATE| |~|replace|対象となるデータに対して、既にキー値がデータが存在していない場合にはadd命令を、データが存在している場合にはset命令をそれぞれ行います。|MERGEまたは&br;UPSERT| |~|delete|指定された条件に該当するデータを削除します。|DELETE| |トラン&br;ザクション|txn|一貫したデータ操作を行うためのトランザクション処理を行ないます。&br;指定された命令を全て行うまで、データに対しての反映を行いません。|TRANSACTION~&br;ROLLBACK&br;/COMMIT| |~|do|~|~| 各プロトコル毎のCUI操作例、および命令語の詳細については、以下の項目を参照してください。
タイムスタンプを変更しない
*Hirabiのデータ操作 [#e0edaed3] HibariはKVSであり、キー(Key)と値(Value)から成るデータをいかに効率的に操作し、使用するかを求められます。 ここでは、そのデータ操作についてユーザが指示できるオペレーションコマンド等について示してみます。 **対応プロトコル [#g817cd6f] Hibariには、データ操作を行うための直接的なGUIインターフェイスが存在しません。~ このため、Hibariに対して何らかの操作を行うためには、以下のいずれかのプロトコルを使用してCUIベースの命令語を発行する必要があります。~ 以下、使用可能なプロトコルについて示しました。 |CENTER:プロトコル名|CENTER:概要| |Erlang API|Hibariにアクセスする事が可能なErlangモジュールを使用して命令語を発行します。&br;主にデータ操作を可能とする「brick:simple」モジュールと、複雑な命令やテーブルの管理・追加などをサポートする「brick_server」モジュールに分かれ、Hibariの操作体系を意識しやすい構成となっています。&br;但し、当然ではありますが開発言語としてはErlangのみのサポートとなります。| |UBF|Erlangの開発者でもある「Joe Armstrong」氏が提唱したバイナリスキーマであり、XMLやJSON等と同一の構成を持ってはいますがその構成はシンプルです。&br;また、バイナリベースのためネットワーク通信などにおいても帯域を圧迫しません。UBFのルールに従っていれば開発言語には特に依存せず、汎用的に使用する事ができます。| |JSON-RPC|JavaScript言語をベースに生まれた軽量のデータフォーマットです。UBFと同様に特定の開発言語には依存しない上、テキストベースで解りやすく、また多くの開発言語では専用のフォーマット整形ライブラリが用意されているため、非常に使いやすいプロトコルと言えます。&br;但しテキストベースであるため、バイナリベースのUBF等と比べると効率が悪いといった欠点も存在します。| |JSON(overTCP)|Hibariが用意しているJSON用のネットワークポート(デフォルト値はポート7582)にアクセスし、JSONプロトコルで命令語を発行する事によってデータを操作する事も出来ます。&br;telnet等でアクセスし、直接テキストベースで操作可能のため、動作試験用として非常に手頃に扱う事ができます。| ~ **データ操作のオペレーション(命令語) [#y68dd8b7] Hibariがサポートするデータ操作系のオペレーションについては、以下のようなものがあります。~ 使用するプロトコルによって命令語、またはデータ指定の方法に若干の違いがありますが、操作出来る内容等には違いはありません。以下の表にはその概要と、また一般的なRDBに置き換えて考えた場合の「対応する命令語」をまとめました。 |CENTER:データ&br;操作区分|CENTER:Hibari&br;命令語|CENTER:命令内容|CENTER:一般的なRDBに&br;おける対応した&br;PL/SQL命令語| |参照系|get|データの参照を行い、データが存在すれば取得を行います。|SELECT| |~|get_many|指定された条件に関してデータを絞り込み、条件に合うデータ全てを取得します。|~| |更新系|add|新規に新しいキー値を持つデータをテーブルに格納します。&br;すでにデータが存在している場合はエラーとなります。|INSERT| |~|set|既にキー値が存在するデータに対して、データの変更を行います。&br;該当するデータが存在していない場合はエラーとなります。|UPDATE| |~|replace|対象となるデータに対して、既にキー値がデータが存在していない場合にはadd命令を、データが存在している場合にはset命令をそれぞれ行います。|MERGEまたは&br;UPSERT| |~|delete|指定された条件に該当するデータを削除します。|DELETE| |トラン&br;ザクション|txn|一貫したデータ操作を行うためのトランザクション処理を行ないます。&br;指定された命令を全て行うまで、データに対しての反映を行いません。|TRANSACTION~&br;ROLLBACK&br;/COMMIT| |~|do|~|~| 各プロトコル毎のCUI操作例、および命令語の詳細については、以下の項目を参照してください。
テキスト整形のルールを表示する