高木のブログ

【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,[email protected]
Juliann Waelchi,21,[email protected]
Hershel Pfannerstill,22,[email protected]
Carson Reynolds,32,[email protected]
Walter Koch,33,[email protected]
Rob Kuphal,48,[email protected]
Lawerence Dietrich,72,[email protected]
Hubert VonRueden,50,[email protected]
Harry Pacocha,56,[email protected]
$ 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時間半くらい掛かった
どうせなら高速化にチャレンジして記事にしたらよかったけどまあいいや


ytkg

Written by ytkg, Twitter, GitHub