スマートスタイル TECH BLOG

MariaDB ColumnStore をDockerでカジュアルに使い始めよう!

MariaDB ColumnStore をDockerでカジュアルに使い始めよう!

MariaDB ColumnStore(MCS)については、弊社ブログでも記事が増えてきました。

https://www.s-style.co.jp/blog/2017/07/621/
https://www.s-style.co.jp/blog/2017/11/1248/
https://www.s-style.co.jp/blog/2018/12/2972/
https://www.s-style.co.jp/blog/2018/12/3006/

今回は、MariaDB ColumnStoreをDockerで簡単に構築してしまう方法をご紹介します。

ドキュメント

MCSとDockerの組み合わせによる構築方法については、以下のマニュアルで紹介されています。

https://mariadb.com/kb/en/library/ColumnStore-getting-started-mariadb-ColumnStore-docker-vagrant-and-windows-/

本手順は、事前にDocker、docker-composeがインストールされ、正常に動作することを前提としています。

https://www.docker.com/get-started

早速構築

MCSのDockerHub上のリポジトリは以下となります。

https://hub.docker.com/r/mariadb/ColumnStore

シングルノードのMCSの構築は、以下のコマンドを実行するのみです。

非常に簡単ですね!
ちゃんと利用できるか確認してみましょう。

接続することができました。

次にmcsadminツールで状態を確認してみます。
MCSでは、管理操作にmcsadminツールを使用します。

Performance Moduleが1つのみ起動した状態であることが確認できました。
ただし、シングルノード構成では、一見Performance Moduleのみ起動している状態に見えても、
本来User Moduleで起動するプロセスもすべて集約されているので、通常通り処理を行えます。

Dockerfile

MariaDB社のgithubリポジトリにdocker用の設定ファイルがありこれらを使って環境を構築することも可能です。

リポジトリには基本構成の他にjupyter_notebook、Apache zepperinを同時に起動するための設定、サンドボックス(初期データがロードされる)構成があります。
今回はマルチノード構成を試してみました。

ColumnStore

基本となるMCSのDockerですが、docker-composeによるマルチノード構成が可能となっています。
また、起動時に以下の環境変数が使用可能です。

  • CS_POSTCFG_INPUT

postConfigureの入力パラメータを変更することが可能です。
実際にpostConfigureを実行する部分は以下の様になっています。

単純に環境変数をechoして渡しているだけなので、CS_POSTCFG_INPUTの設定値は

と選択肢の分の改行と入力値を設定することになります。

  • CS_DATABASE

起動時に作成するデータベースを設定します。

また、上記の他にdocker-entrypoint-initdb.d以下に.sh、.sql、.sql.gzのファイルを配置しておくことで柔軟に初期データをロード可能です。

マルチノード構成の起動

早速マルチノード構成で起動してみましょう。

テストのために、環境変数の設定と、確認用のスクリプトを置いておきます。
最初にmydbというデータベースを作成してみます。

docker-compose.yml

./multi_node_um1がdocker-entrypoint-initdb.dにマウントされますので、その配下にテストスクリプトを配置します。

docker-composeでマルチノードを起動してみましょう。

接続して初期設定が行われているか確認します。

状態を確認します。

問題ないですね!

まとめ

とても簡単にマルチノード構成のMCS環境が手に入りました。

あくまで検証用途としての利用がメインになりますが、DWHをカジュアルに構築できるのは嬉しいですね。

ぜひ、導入を検討されているユーザ様は、カジュアルにMCSを構築してどんどん検証を行ってみてください!


MariaDB

 

Return Top