メインコンテンツへスキップ
DevOpsMar 28, 2026

Deep EVM #28:高スループットデータパイプライン — バッチインサート、COPY、コンフリクト解決

OS
Open Soft Team

Engineering Team

インサートスループット問題

個別INSERTは約5,000行/秒。COPYプロトコルは250,000行/秒以上。40倍の差 — 9日のバックフィルと5時間のバックフィルの差。

INSERT vs COPYパフォーマンス

メソッドスループットレイテンシ/行
個別INSERT5K行/秒200us
バッチINSERT(1000)50K行/秒20us
COPYテキスト150K行/秒6.7us
COPYバイナリ250K行/秒4us

ON CONFLICT戦略

Upsert(コンフリクト時更新)、重複スキップ、バルクupsertパターン。

WALチューニング

synchronous_commit = offで約3倍の書き込みスループット向上(クラッシュ時に最後の200msのデータ損失リスクあり)。再取得可能なブロックチェーンデータには許容可能。

PgBouncerコネクションプーリング

transactionモードで各トランザクション後にコネクションを解放。1000クライアント接続を50のPostgreSQL接続にマルチプレックス。

まとめ

高スループットPostgreSQLパイプラインはバッチ思考が必要です。COPYプロトコルで最大取り込み速度、バッチINSERTでON CONFLICTサポート、WAL設定でチェックポイントオーバーヘッド削減。ナイーブなパイプラインと最適化されたパイプラインの差は40倍です。