前回は「OSDL DBT-1」によるテスト環境の導入まで解説した。今回は引き続き、サンプルデータの作成について手順を説明していこう。

まず、テスト用のデータを作成する。OSDL DBT-1(以下、DBT-1)には、テストデータ生成を柔軟に行えるよう、専用の「datagen」というツールが付属している。datagenは、オプションとして商品アイテム数、顧客数を指定することで、さまざまなショップの規模を想定したもっともらしいデータを生成してくれるのだ。例えば、アイテム数が1000、顧客数が100人程度の規模を想定する場合、datagenを以下のように実行すればよい。


$ cd datagen
$ mkdir /home/xxxxx/datafiles
$ ./datagen -d PGSQL -i 1000 -u 100 -p /home/xxxxx/datafiles

-dオプションは、テストするデータベースシステムの識別名を指定する。PostgreSQLの場合は「PGSQL」だ。-pオプションは、生成したデータファイルを格納するディレクトリパスを、絶対パスで指定する。-i、-uオプションは、それぞれアイテム数、ユーザ数を表している。なお、規模の大きなデータベースを想定すればするほど、データの生成には時間がかかる。イライラせずに気長に待とう。

datagenの実行が完了したら、-pで指定したパスにデータファイルができていることを確認しよう。


$ ls datafiles
address.data cc_xacts.data item.data orders.data
author.data customer.data order_line.data

また、/tmpディレクトリには、これらのデータファイルへのシンボリックリンクが自動的に作成される。このシンボリックリンクは、後のデータベース作成処理で利用されるものだ。一応、シンボリックリンクが正しく作成されているかも確認しておこう。


$ ls -l /tmp/datafiles
lrwxrwxrwx 1 xxxxx xxxxx 55 6月 5 23:17 address.data -> /home/xxxxx/datafile/address.data
lrwxrwxrwx 1 xxxxx xxxxx 54 6月 5 23:17 author.data -> /home/xxxxx/datafile/author.data
lrwxrwxrwx 1 xxxxx xxxxx 56 6月 5 23:17 cc_xacts.data -> /home/xxxxx/datafile/cc_xacts.data
lrwxrwxrwx 1 xxxxx xxxxx 52 6月 5 23:17 country.data -> /home/xxxxx/country.data.pgsql
lrwxrwxrwx 1 xxxxx xxxxx 56 6月 5 23:17 customer.data -> /home/xxxxx/datafile/customer.data
lrwxrwxrwx 1 xxxxx xxxxx 52 6月 5 23:16 item.data -> /home/xxxxx/datafile/item.data
lrwxrwxrwx 1 xxxxx xxxxx 58 6月 5 23:17 order_line.data -> /home/xxxxx/datafile/order_line.data
lrwxrwxrwx 1 xxxxx xxxxx 54 6月 5 23:17 orders.data -> /home/xxxxx/datafile/orders.data

さて、データができたので、次はデータベースを作成してこのデータをロードする作業だ。これも、OSDL DBT-1に含まれるスクリプト「build_db.sh」を実行するだけで自動的に行える。


$ su -
$ cd ../scripts/pgsql
$ ./build_db.sh "-c tcpip_socket=on" 0 0

build_db.shのパラメータは、順番に以下のような役割となっている。

1 db_param データベースサーバの起動時に与えるパラメータ。この例では、PostgreSQLのpostmasterデーモンに対して、TCP/IPによる接続を有効にするよう指示している
2 redirect_tmp ソートなどの動作に使う一時ファイルの扱いを指定する。通常は0のままでよい
3 redirect_xlog PostgreSQLのWAL(Write Ahead Log)の扱いを指定する。通常は0のままでよい

build_db.shが正しく実行されれば、DBT1データベースが作成され、datagenで生成したデータがロードされる。これでデータベースの準備は完了だ。

できればテストの実行まで一気に進みたいところだが、今週はここまで。続きはまた次回にしよう。