はじめに
CockroachDBをDocker環境上で動かしてみるの続きです。
CockroachDBは、スケーラビリティーとACID特性があって、SQL言語で操作できるデータベースです。今回、製品で提供されているサンプルデータベースを動かしてみます。ぎょっとします。若干、開発者のセンスを疑います。
環境
- Windows7
- Vagrant V1.8.6
- VirtualBox V4.3.10
- Coreos-alpha V1465.0.0
- CockroachDB V1.05
#1. Cockroachサンプルデータベースの作成
CockroachDBをDocker環境上で動かしてみるの [4. CockroachDBクラスターにDockerコンテナーノードを追加] までが実行されている前提です。
コンテナー名:roach1から、cockroach gemコマンドとcockroach sqlコマンドを実行し、製品で用意されているサンプルのデータベースを作成します。
どんなコマンド(create database、create table、insert into)が動いているかを確認したい場合は、cockroach gen example-data introコマンドだけを実行して下さい。
core-01 core # docker exec -it roach1 bash
root@roach1:/cockroach# ./cockroach gen example-data intro | ./cockroach sql --insecure
CREATE DATABASE
SET
DROP TABLE
CREATE TABLE
INSERT 1
INSERT 1
(省略)
root@roach1:/cockroach# exit
#2. Cockroachサンプルデータベースの確認
コンテナー名:roach1から、サンプルのデータベースの中身を確認します。ぎょっとします。
core-01 core # docker exec -it roach1 ./cockroach sql --insecure
# Welcome to the cockroach SQL interface.
# All statements must be terminated by a semicolon.
# To exit: CTRL + D.
root@:26257/> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| crdb_internal |
| information_schema |
| intro |
| pg_catalog |
| system |
+--------------------+
(5 rows)
root@:26257/> SHOW TABLES FROM intro;
+---------+
| Table |
+---------+
| mytable |
+---------+
(1 row)
root@:26257/> SELECT * FROM intro.mytable WHERE (l % 2) = 0;
+----+------------------------------------------------------+
| l | v |
+----+------------------------------------------------------+
| 0 | !__aaawwmqmqmwwwaas,,_ .__aaawwwmqmqmwwaaa,, |
| 2 | !"VT?!"""^~~^"""??T$Wmqaa,_auqmWBT?!"""^~~^^""??YV^ |
| 4 | ! "?##mW##?"- |
| 6 | ! C O N G R A T S _am#Z??A#ma, Y |
| 8 | ! _ummY" "9#ma, A |
| 10 | ! vm#Z( )Xmms Y |
| 12 | ! .j####mmm#####mm#m##6. |
| 14 | ! W O W ! jmm###mm######m#mmm##6 |
| 16 | ! ]#me*Xm#m#mm##m#m##SX##c |
| 18 | ! dm#||+*$##m#mm#m#Svvn##m |
| 20 | ! :mmE=|+||S##m##m#1nvnnX##; A |
| 22 | ! :m#h+|+++=Xmm#m#1nvnnvdmm; M |
| 24 | ! Y $#m>+|+|||##m#1nvnnnnmm# A |
| 26 | ! O ]##z+|+|+|3#mEnnnnvnd##f Z |
| 28 | ! U D 4##c|+|+|]m#kvnvnno##P E |
| 30 | ! I 4#ma+|++]mmhvnnvq##P` ! |
| 32 | ! D I ?$#q%+|dmmmvnnm##! |
| 34 | ! T -4##wu#mm#pw##7' |
| 36 | ! -?$##m####Y' |
| 38 | ! !! "Y##Y"- |
| 40 | ! |
+----+------------------------------------------------------+
(21 rows)
root@:26257/> \q
コンテナー名:roach2から、サンプルのデータベースの中身を確認します。もういいって感じです。
core-01 core # docker exec -it roach2 ./cockroach sql --insecure
# Welcome to the cockroach SQL interface.
# All statements must be terminated by a semicolon.
# To exit: CTRL + D.
root@:26257/> SELECT * FROM intro.mytable WHERE (l % 2) = 0;
+----+------------------------------------------------------+
| l | v |
+----+------------------------------------------------------+
| 0 | !__aaawwmqmqmwwwaas,,_ .__aaawwwmqmqmwwaaa,, |
| 2 | !"VT?!"""^~~^"""??T$Wmqaa,_auqmWBT?!"""^~~^^""??YV^ |
| 4 | ! "?##mW##?"- |
| 6 | ! C O N G R A T S _am#Z??A#ma, Y |
| 8 | ! _ummY" "9#ma, A |
| 10 | ! vm#Z( )Xmms Y |
| 12 | ! .j####mmm#####mm#m##6. |
| 14 | ! W O W ! jmm###mm######m#mmm##6 |
| 16 | ! ]#me*Xm#m#mm##m#m##SX##c |
| 18 | ! dm#||+*$##m#mm#m#Svvn##m |
| 20 | ! :mmE=|+||S##m##m#1nvnnX##; A |
| 22 | ! :m#h+|+++=Xmm#m#1nvnnvdmm; M |
| 24 | ! Y $#m>+|+|||##m#1nvnnnnmm# A |
| 26 | ! O ]##z+|+|+|3#mEnnnnvnd##f Z |
| 28 | ! U D 4##c|+|+|]m#kvnvnno##P E |
| 30 | ! I 4#ma+|++]mmhvnnvq##P` ! |
| 32 | ! D I ?$#q%+|dmmmvnnm##! |
| 34 | ! T -4##wu#mm#pw##7' |
| 36 | ! -?$##m####Y' |
| 38 | ! !! "Y##Y"- |
| 40 | ! |
+----+------------------------------------------------------+
(21 rows)
root@:26257/> \q
#まとめ
今回は、みなさんにぎょっとしてもらいたいだけでした。次回こそは、Docker SwarmやKubernetes等のContainer Orchestration Tool上でCockroachDBを稼働させてみます。
参考
CockroachDB
Qiita:Cockroach関連記事 1.CockroachDBをDocker環境上で動かしてみる
Qiita:Cockroach関連記事 3.CockroachDBをDocker Swarm環境上で動かし、高可用性と拡張性を試してみた
Qiita:Cockroach関連記事 4.CockroachDBをDocker環境上で動かし、クラスター内のサービス数を増やし、データをレプリカしてみる