AWS EC2インスタンス内に120,000のcsvがあり、それぞれに120,000行が含まれています。それぞれをそのままAWS RDS postgresql DBに挿入することはできません。120,000^ 2 = 14,400,000,000レコードになります。各csvは約2 MBです。
私のアプローチは:
pandas
ライブラリを使用して、csvごとに120,000レコードを1つのレコード(ディクショナリのリスト)に変換するPythonスクリプト(データの圧縮後は5 MB)pandas.to_sql
(sqlalchemy
私の観察は:
\copy
を使用してみましたが、1つのcsvを挿入するのに30〜50秒かかることに気付きました。どうすればスピードアップできるかわかりません。
t2クラスは、設計上、高い作業負荷には適していません。すべてのCPUクレジットを使い果たすと、パフォーマンスはひどいものになります。繰り返しますが、仕様によるものです。
パフォーマンスを重視する場合は、t2(または任意のt *)インスタンスを使用しないでください。
私の知る限り、RDSでCPUクレジットを監視する方法はありません(EC2でできる方法)