Rubyでバルクインサート
18
Rubyで バルクインサート 1
-
Upload
fujimura-munehiko -
Category
Technology
-
view
562 -
download
0
Transcript of Rubyでバルクインサート
Rubyでバルクインサート
1
バルクインサート
2
要約すると・・・
• 1回のコンテキストスイッチで大量のレコードを処理すること
3
Rubyでやるには
4
大体どっちか。。。
• Ruby上からSQLコマンドを実行
• Gem(Ruby用のライブラリ)を使う
• そもそもRubyを使う選択肢が(ry
5
楽にやりたいのでGemを使おう!!
6
ORM用Gem
• ActiveRecord
• Datamapper
• Sequel
• og
7
バルクインサート出来そうな他に無いのか!?
8
あった!!
• activerecord-import
• https://github.com/zdennis/activerecord-import
9
使ってみる!!
10
モデル• モデル定義
11
実装してみる• これだけで使えた!!
• importメソッドにモデルの配列を指定
12
他の引数は?
• :validate
• trueにするとinsert前に値の検証を実施する(デフォルトはtrue)
• :on_duplicate_key_update
• 主キー、一意制約違反があるカラムを指定することで、指定カラムを更新できるようにする
13
パフォーマンスは?
14
こっちじゃないよw
15
10万件処理した!!
1. 42.946298931 (sec)
2. 50.506361978 (sec)
3. 52.728926818 (sec)
4. 51.085752657 (sec)
5. 50.447273085 (sec)
16
50sec程度結構、使える!!
17
ぜひ使ってみてください!!
18