■ノード構成
n1・・・SPIDERノード
n2・・・SPIDERノード
n3・・・SPIDERノード
n4・・・SPIDERノード
n5・・・データノード
n6・・・データノード
n7・・・データノード
n8・・・データノード
■HASHパーティショニング
データノードにデータ格納用テーブル作成。
$ cd ~/sandboxes/multi_msb_5_1_44 $ ./n5 spider_test -e "CREATE TABLE salaries ( emp_no int(11) NOT NULL, salary int(11) NOT NULL, from_date date NOT NULL, to_date date NOT NULL, PRIMARY KEY (emp_no,from_date), KEY emp_no (emp_no) ) ENGINE=InnoDB DEFAULT CHARSET=utf8" ^5^6 ^6^7 ^7^8
SPIDERノードでリンクを張る。
$ ./n1 spider_test $ CREATE TABLE salaries ( emp_no int(11) NOT NULL, salary int(11) NOT NULL, from_date date NOT NULL, to_date date NOT NULL, PRIMARY KEY (emp_no,from_date), KEY emp_no (emp_no) ) ENGINE=SPIDER DEFAULT CHARSET=utf8 PARTITION BY HASH(emp_no) ( PARTITION p1 COMMENT 'server "n5", table "salaries"', PARTITION p2 COMMENT 'server "n6", table "salaries"', PARTITION p3 COMMENT 'server "n7", table "salaries"', PARTITION p4 COMMENT 'server "n8", table "salaries"' );
データのロード
localhost:3306にMySQL公式のemployeesデータベースを格納しておく。
n1 mysql> CREATE TABLE salaries_datasource ( emp_no int(11) NOT NULL, salary int(11) NOT NULL, from_date date NOT NULL, to_date date NOT NULL, PRIMARY KEY (emp_no,from_date), KEY emp_no (emp_no) ) ENGINE=SPIDER DEFAULT CHARSET=utf8 CONNECTION 'host "127.0.0.1", port "3306", user "user", password "password", database "employees", table "salaries"'; n1 mysql> insert into salaries select * from salaries_datasource;
動作確認
$ cd ~/sandboxes/multi_msb_5_1_44 $ ./n1 spider_test n1 mysql> select * from salaries; 省略 | 499999 | 67043 | 1998-11-30 | 1999-11-30 | | 499999 | 70745 | 1999-11-30 | 2000-11-29 | | 499999 | 74327 | 2000-11-29 | 2001-11-29 | | 499999 | 77303 | 2001-11-29 | 9999-01-01 | +--------+--------+------------+------------+ 2844047 rows in set (12.78 sec)
というようにSPIDERノードだけで操作が完結する。
コメントを残す