fake2dbとは
これでも一応職種はエンジニアなものでして・・・。一度くらいはまじめに技術的なことを書こうと思います。
私自身アーリーアダプタでもなんでもないので、個人的に気になったことか、
彡(゚)(゚)「こいつぁ素晴らしい」
と思ったことを気ままに綴っていきたいと思います。
さて、今回ご紹介するのはfake2dbというライブラリになります。
これはPythonで作られているダミーデータジェネレータになります。
ワンライナーでさくっとデータを作ることができるのが魅力です。
元々使おうと思ったきっかけは、PHPでサーバサイドのプログラムを作っていた時に、とりあえずなんでもいいのでデータがほしいという状況があり、ググったら一発目に出てきたので使ってみました。
ちなみに私は簡単なユーティリティのようなものは基本Pythonで探す傾向が多いです。
インストール
では早速インストールから。
動作環境にはまずPythonが必要になります。
CentOSだと2系が最初から入っているのですが、今回はあえて3を入れます。
Python3のインストール
まずはリポジトリの追加からです。
sudo rpm -ivh http://mirror.yandex.ru/fedora/russianfedora/russianfedora/free/el/releases/6/Everything/x86_64/os/puias-release-6-2.R.noarch.rpm
そしてインストール
sudo yum install -y python3 python3-tools
インストールが済んだらちゃんとはいっているかを確認しましょう。
python3 -V
Pythonのライブラリのインストール
続いてPythonのライブラリをインストールしていきます。
sudo yum install python3-devel # もしかしたら入っているかもしれませんが、念の為に sudo yum install MySQL-python
pipのインストール
つづいてPythonのパッケージ管理ツールであるpipをインストールします。
curl -kL https://bootstrap.pypa.io/get-pip.py | python3
Virtualenvのインストール
前述のとおり、CentOSにはPython2系が入っています。
今回はPython3を使いますのでVirtualenvもインストールします。
VirtualenvはPythonの実行環境を複数構築するためのライブラリです。
sudo pip3 install virtualenv
Virtualenvを使ってPython3実行環境を作成して活性化
作業フォルダを作成し活性化します。
mkdir /work cd /work python3 -m venv venv source /work/venv/bin/activate
fake2dbのインストール
さて、ここでやっとfake2dbのインストールです。
sudo pip install fake2db
mysqlconnectorのインストール
MySQLに接続するためのライブラリも入れます
sudo pip install mysql-connector
ダミーデータの作成
まずはオプション一覧を表示してみます。
ふむふむ。色々ありますが、そんなに数は多くないですし、意味も何となく分かりますね。
--rows argument is pretty clear :) integer --db argument takes 6 possible options : sqlite, mysql, postgresql, mongodb, redis, couchdb --name argument is OPTIONAL. When it is absent fake2db will name db's randomly. --host argument is OPTIONAL. Hostname to use for database connection. Not used for sqlite. --port argument is OPTIONAL. Port to use for database connection. Not used for sqlite. --username argument is OPTIONAL. Username for the database user. --password argument is OPTIONAL. Password for database user. Only supported for mysql & postgresql.
では実行です。
今回はMySQLに対してとりあえずレコードを200件ほど作ってみようかなぁと思います。
fake2db --rows 200 --db mysql --host localhost -- username root --password *** --name my_db
今回はMySQLに対して行ったので mysql_handler.py
というファイルに留意しましょう。
このファイルの中にテーブルの構造やデータを作成するロジックがベタ書きされています(^^;
ということは、そんなに難しくないので例えば現場のプロジェクトにあったテーブル構造に書き換えることも出来ます。
fake2dbには一般的によく使われるであろうテーブル構造が設定されています。
companyテーブルやcustomerテーブルなどです。
作成するレコードの件数も指定できるので私はこれでボリュームテストなんぞもやっておりました。
そんなこんなでfake2dbのご紹介でした。