OSS探訪GitHubでログイン

ActiveRecordの大量INSERTを少数SQLへまとめ、batch・validation・upsertを制御する

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
4,155
主要言語
Ruby
ライセンス
MIT
リポジトリ最終更新
2026/08/28
ページ内ナビ

概要

activerecord-importはActiveRecordへbulk import APIを追加するRuby libraryです。model配列、hash、column/value配列をまとめてINSERTし、batching、validation、duplicate key handling、PostgreSQLのrecursive association importなどを選べます。現在のversionは2.3.0です。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

大量recordを1回または少数回のINSERTへまとめる

Model.importで複数recordを一括投入し、通常の1件ずつのsaveで発生する大量のINSERTを減らせます。batch_sizeでstatement単位の件数を調整でき、進捗callbackも利用できます。

出典:[2]

validation・upsert・PostgreSQL recursive importを用途に合わせて選ぶ

validationの有無、失敗record追跡、ON CONFLICT/ON DUPLICATE KEY UPDATE相当のupsertを設定できます。PostgreSQLではassociationを辿るrecursive importも利用できます。

出典:[2]

向いている用途

大量seed・ETL・batch同期・bulk upsertをActiveRecord内で完結させたい場合に向く

Rails batchやdata migrationで大量recordを投入しつつ、SQLを完全手書きせずActiveRecord modelを再利用したい用途に適します。

出典:[2]

導入前の確認

callbackとuniqueness validationの差を理解して通常saveと使い分ける

create/update/destroy系ActiveRecord callbackは通常のsaveと同じようには実行されません。uniqueness validationも既定では省略され、明示的に有効化するとrecordごとのqueryでN+1になり得ます。2.3.0はRuby 2.4+・ActiveRecord 4.2+を宣言し、Rails main互換修正やmulti-database接続改善も含みます。

出典:[2][3][4]

参考にした公式資料

  1. [1]zdennis/activerecord-import — GitHub repository(2026-10-06)
  2. [2]activerecord-import — README(2026-10-06)
  3. [3]activerecord-import — gemspec(2026-10-06)
  4. [4]activerecord-import — CHANGELOG(2026-10-06)
編集部からの補足

大量投入をActiveRecordのまま高速化できますが、通常saveとcallback/uniqueness validationの挙動が異なります。性能だけでなく副作用の差を確認して使い分けてください。

3ステップで試す

  1. 1

    ソースを取得

    git clone --depth 1 https://github.com/zdennis/activerecord-import.git
  2. 2

    リポジトリへ移動

    cd activerecord-import
  3. 3

    公式手順を確認

    READMEのInstallation / Quick Start / Getting Startedにある公式コマンドを続けて実行してください。

    find . -maxdepth 1 -iname 'README*' -exec sed -n '1,220p' {} \; -quit
公式READMEで確認

成長

成長の推移 · 直近30日

4,155 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
0
Open PR
13

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る
Stars
4,155
Forks
620
Watchers
37
Open Issues
41
Contributors
156
所有者種別
User
主要言語
Ruby
ライセンス
MIT
リポジトリ最終更新
2026/08/28

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?