【Ruby】Fakerを使ってダミーデータを作成する
2021/10/03
ちょっとした検証で大規模なダミーデータのCSVファイルが欲しかった
よくあるダミーデータ生成サービスだと1万行くらいまでしか対応してなかったりするので、RubyでFakerというGemを使ってスクリプトを書いてダミーデータを作った
ダミーデータの中身は名前、年齢、メールアドレスの3項目で1000万行
require 'bundler/inline'
require 'csv'
gemfile do
source 'https://rubygems.org'
gem 'faker'
end
CSV.open('./dummy.csv', 'w') do |csv|
csv << ['name', 'age', 'email']
10000000.times do
csv << ["#{Faker::Name.first_name} #{Faker::Name.last_name}", rand(18..80), Faker::Internet.email]
end
end$ head dummy.csv
name,age,email
Kimberely Grimes,25,silvia@braun.info
Juliann Waelchi,21,norberto@casper.name
Hershel Pfannerstill,22,eliseo@doyle.name
Carson Reynolds,32,danuta@hand-armstrong.biz
Walter Koch,33,eunice@durgan-kuhn.io
Rob Kuphal,48,gigi_lubowitz@boyle.org
Lawerence Dietrich,72,cassidy.vonrueden@emmerich-pfannerstill.org
Hubert VonRueden,50,ned.reichert@oconnell.org
Harry Pacocha,56,emilia.abbott@turner.biz$ wc -l dummy.csv
10000001 dummy.csvヘッダーの1行を除いて1000万行出来ている
$ time ruby app.rb
ruby app.rb 5707.99s user 25.91s system 63% cpu 2:29:51.79 totalちなみに1時間半くらい掛かった
どうせなら高速化にチャレンジして記事にしたらよかったけどまあいいや
