VoltDB ストアドプロシージャと共に
VoltDBの特徴としてあげられるのは、
高速な処理や非同期に特化した機能もそうですが、
javaで実装されている点も、特徴の一つです。
NuoDBも同じ分類のNewSQLと呼ばれるものですが、
javaを普段から触っている方には比較的簡単に利用できると思います。
VoltDBはjava, C++, php, node.jsなど各言語で利用できる様に
クライアントが用意されているほか、
jsonでやり取りが出来るAPIを持っています。
そのAPIや各クライアントから簡単に利用するには、
ストアドプロシージャを理解する必要があります。
とは言ってもそこまで難しいものではありませんので、簡単に使ってみましょう。
もちろんjavaで実装できますが、今回は定義だけでやってみましょう
CREATE TABLE users (
user_id INTEGER UNIQUE NOT NULL,
user_name VARCHAR(40) NOT NULL,
created_at TIMESTAMP NOT NULL
);
テーブルをパーティション化
PARTITION TABLE users ON COLUMN user_id;
integer (TINYINT, SMALLINT, INTEGER, or BIGINT)
string (VARCHAR)
が利用可能です
CREATE PROCEDURE addUser AS
INSERT INTO users VALUES (?, ?, CURRENT_TIMESTAMP);
PARTITION PROCEDURE addUser ON TABLE users COLUMN user_id;
続いてinsertのストアドプロシージャです。
API、または各言語のクライアントから実行するときに、
PHPですあれば、PDOが対応していないため、
phpから実行する場合は、直接SQLを@AdHocで発行するか、
ストアドプロシージャを利用します。
APIで利用する場合は、下記の様になります。
http://localhost:8080/api/1.0/?Procedure=addUser&Parameters=["2", "hello"]
また全件SELECTも下記の様にすると、
CREATE PROCEDURE allUser AS SELECT * FROM users;
http://localhost:8080/api/1.0/?Procedure=allUser
となります。
デフォルトで用意されているAPIもいくつかあります。
例えばシステムの情報を取得する場合は下記の様にします。
http://localhost:8080/api/1.0/?Procedure=@SystemInformation
各クライアントから利用する場合もほぼ同様にして利用します。
クラスターなども簡単に出来ますので是非触ってみて下さい。
Author And Source
この問題について(VoltDB ストアドプロシージャと共に), 我々は、より多くの情報をここで見つけました https://qiita.com/ytake/items/eed58566cb809955215c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .