embulk-input-random
kumagi さんによる Embulk のプラグインです。いわゆるダミーデータの作成に役立ちます。
使い方(YAML ファイルの準備)
使い方はとてもとても簡単です。以下のような YAML をまず書きましょう。ファイル名はrandom_data.yml
とします。
in: type: random rows: 10 schema: # 型はこの5つしかない id: primary_key name: string score: integer rate: float created_at: date out: type: stdout
使い方(preview して確認)
YAML が作られれば、あとは embulk
コマンドをかましてやるだけです。まずはpreview
オプションで実行しましょう。以下のような出力結果になります。
$ embulk preview random_data.yml 2017-11-01 16:53:50.076 +0900: Embulk v0.8.31 2017-11-01 16:53:52.245 +0900 [INFO] (0001:preview): Loaded plugin embulk-input-random (0.0.2) Random generation started. Random generator input thread 0... +---------+---------------------------------------------+------------+--------------------+-----------------------------------+ | id:long | name:string | score:long | rate:double | created_at:timestamp | +---------+---------------------------------------------+------------+--------------------+-----------------------------------+ | 0 | OwclBluPfkAvdmXJxROEobXmzPMqB5HLJERRCTX04m8 | 408 | 9681.222172700585 | 1970-04-02 08:01:42.173363634 UTC | | 1 | EeeC4e3tCteuvwCYEl3__Hd1HAwKGvqEFagej5e7JWc | 349 | 7471.798180024201 | 1995-12-03 18:35:20.345740675 UTC | | 2 | 6PKe5GTflGkNd7j33UkEQC_Qx1wd6hpPLjJB1K-aBAI | 1,627 | 1548.2911461463157 | 1977-09-04 06:59:52.403109163 UTC | | 3 | AUpfuTu31jwExE8vjv-B1kHX3DstzpDYFNPojewqUHA | 3,991 | 4555.393417382074 | 2001-06-01 19:45:25.258410692 UTC | | 4 | 1BUPw0bkWxXdNVeQyOV6nCVGmp_7LdhOV33arxc5-Us | 2,966 | 5929.493970725354 | 1993-09-23 08:34:58.201186418 UTC | | 5 | OFD2kCVqeiASLcDmPtowgrTU4bo1tZK9zkeZ3fwGRnE | 3,684 | 5251.8119211079875 | 1984-12-15 21:55:44.520372331 UTC | | 6 | EBQxCVJjb1yQLcbz1_ISByg-i5umajFlubOFkWypppw | 1,259 | 6916.227923039116 | 1973-09-02 14:15:03.875774949 UTC | | 7 | TwBnRaD4nLyQT99EL5RnknRl5h31gR8oRWz0-e-gZZ8 | 2,022 | 9909.176099689157 | 2001-06-16 00:30:16.452547192 UTC | | 8 | PaDOItkZ_S8rTEo10RwHGvdQ0jXuSOS6lgrhzJlRn0g | 5,439 | 9267.186037826135 | 1977-12-02 23:37:36.335263341 UTC | | 9 | ErEH3SRUU_ozGvfZNbePCoaO1EQbbeS1cPxZ8R7evjU | 110 | 4409.92973928387 | 2010-04-21 04:48:03.777826300 UTC | +---------+---------------------------------------------+------------+--------------------+-----------------------------------+
使い方(CSV に吐き出し)
preview
でいい感じになりましたので、run
で本番実行を行います。その際、CSVファイルに出力しましょう。random_data.yml
のout
におけるtype
を、stdout
からfile
に変更します。以下のような感じになるでしょうか。
(省略) out: type: file path_prefix: random_data file_ext: csv formatter: type: csv header_line: true charset: UTF-8 newline: LF
あとはembulk run
すればよいだけです。
$ embulk run random_data.yml
これでCSVファイルが生成されました*1。random_data000.00.csv
を開いてみると以下のようになっており、CSVファイルとして出力されていることが分かります。
id,name,score,rate,created_at 0,6Dbs9K_UBQv4nQgXDYINzpG5THjbt_1HmQOPhBtNncc,2842,6862.609333245801,2003-12-25 14:38:17.519466 +0000 1,APq3z0cYcStu3dLnXl3jbhoIq2eyvo1Q4376KVtaSA4,2307,8905.81423668965,2000-11-25 05:32:48.572000 +0000 2,VPjGTwS88AAeykYQUcTekbiH6gJrwGJWwCfogT2J5As,9152,5281.37771506349,1974-07-25 02:52:04.670621 +0000 3,9sugggn0GAI5pZtN8BrwTZUkPis2y-8qd5_mx7e1XzA,6010,792.0590166868346,2014-02-18 07:35:18.137263 +0000 4,LkG8HR2-Nq7E-g4L7bcY1-54Bs5Sb3tAGXDjMnAYw4w,6201,1817.755597167694,1981-01-04 06:15:24.577443 +0000 5,X3P-glznz8yOaiO_xSOdnzCxyLkMYGo_f0JRKVRuNI4,9356,4091.8050228363677,1979-10-30 00:14:14.166580 +0000 6,1KuvB4jE2dxm1Q8m7TgCwnQLYE27dxTW0eoEjEocLX0,8597,1661.1748123363402,2015-09-26 14:28:20.433475 +0000 7,PFD6XHBVYYsFVQPFO6PKNZV0jmo3c4T_CpB51dREzQk,9846,1276.6595828142513,1994-10-17 02:23:37.230688 +0000 8,kewuobunpFufUnufAhcq8I8rxKRkYiMi9--rvXJWNiE,5991,5500.596087211661,1974-02-06 13:05:05.944546 +0000 9,_9mb-IhAwoVPl9x6yvzKBfughcbcW0ndiqX5VDt7hoM,6355,973.8925230727369,1973-01-04 01:53:54.936389 +0000
補足
大量のデータを扱うとき(embulk-input-random
においてrows
の数が大きいとき)はthreads: 8
などとスレッド数をそれなりの値にしないと落ちるときがあるので注意です*2。