シス、再び受託でDB屋さんと流浪する人のブログです。DATAコマンドとか、PostgreSQLのCOPYコマンドとか。HammerDBのドキュメントの中でも、そういったツールを使うことを推奨しています。いったツールに読み込ませるデータを吐き出すためのコマンドが、今回のテーマです。流れTPC-C/TPC-Hのbuildschemaまでの流れと似たようなものです。少なくて、「dgset」コマンドで見られる内容がすべてです。デフォルトではOracleのTPC-C用の設定になっています。[vu|scale_fact|warehouse|directory]scale_factはTPC-H用、warehouseはTPC-C用のデータサイズを決めるパラメータです。以下、Oracle用TPC-H用のデータを作る手順を例に進めていきますが、DB選択での指定以外、MySQLもPostgreSQLも同じです。いうか、テキストファイルのデータにファイルにOracle用もMySQL用もPostgreSQL用もないでしょ。え?Redis?(HammerDBの仕様上、TPC-Cのみサポートだけど)Redis用として指定しても何も変わりませんでしたよ。CSV対象DBMSとベンチマークの選択ここは、通常のベンチマーク実施のときと同じです。Oracleスケールファクタの指定スケールファクタを10にしてみます。10エラーが出なければOKです。仮想ユーザー(出力並列度)の指定ここは、2並列にしてみます。並列度を上げると、処理が並列になるだけでなく、それぞれのテーブルに対応したファイルがvu数に分割されます。取り込み処理の実行回数にも影響しますので、1テーブル1ファイルで作りたい場合、vuは1を使用してください。「ディレクトリ配下まるごと」、とか「パターンマッチングで取り込み対象を指定できる」とか、さらには並列取り込みが可能なファイルローダを使う想定では、並列度を上げると便利でしょう。generationこのコマンドは、ちゃんと応答がある。指定した値より小さくする必要があります。大きい値を指定するとエラーになります。)出力先ディレクトリの指定デフォルトは/tmpです。大きなサイズのファイルを作ることになるので、専用にマウントした大きなストレージに履きたい場合など、変更しておきましょう。ディレクトリを勝手に作ってくれるような優しさはないので、すでに存在していてアクセス可能なものを指定してください。してきた内容を確認します。「datagenrun」でスタートさせます。出力内容、長いので、省略します。Scriptなお、約50分かかりました。した場所に、ファイルが生成されていることを確認します。したので、各テーブルに対応するファイルは2つずつに分割して生成されていますとはいえ、小さいテーブル「nation(25行)」「region(5行)」は1ファイルですね。supplier_2.tblファイルの中身は、「"|"区切りテキスト」です。Valuesファイルって呼ぶのか?中身はこんなかんじです。s文字列に意味はないと思うwデータロードここでは細かく書きませんが、ご丁寧にHammerDBのドキュメントに各DBへのローディングについての手順が書いてありますので、そちらへのリンクで。loadえ?Redis?CSVとかからRedisにインポートする標準機能ってないよね。ことで、HammerDB公式のところでも華麗にスルーされてます。まとめdatagenでTPC-C/TPC-Hで任意のスケールファクタのデータをテキストファイルとして生成することが可能。ファイル生成処理は並列処理が可能だが、並列化した分、できあがるファイルも増える。各DBへのファイルローディングの方法はHammerDBの公式サイトに具体的なコマンドが書いてある。パワフルなマシンで並列度上げてゴリっと回してもよし、並列処理せずに、夜中にほそぼそと生成させてもよし。前回の「MySQLにTPC-H」とほぼ一緒です。読者になる@atsuizoをフォローRSSFeedlyへの登録はこちらからFeedly以外への登録は、お手数ですが以下URLを登録お願いします。PostgreSQL注目記事はてなブログをはじめよう!atsuizoさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。