私は、RDS Postgresからデータをストリーミングし、データに対して比較的高価なCPU操作を実行し、それを別のデータベースに挿入する必要のあるNodeJSアプリケーションを持っています。 CPU集中的な部分私は、AWS Lambdaにオフロードしました.Nodeアプリケーションは行のバッチを取得し、処理のためにすぐにLambdaに渡します。ボトルネックは、Postgresからデータを受信できる速度のようです。Postgresテーブルのすべてのデータを処理する最速の方法は?
DBへの複数の接続を利用するために、並べ替えられたIDを効果的に飛躍させるアルゴリズムを使用しているので、多くの同時接続を維持できます。例:1つの接続がids 1-100をフェッチし、2つ目がids 101-200などをフェッチし、最初の戻り値がids 1001-1100をフェッチする場合があります。これは比較的標準的な方法ですか?処理のためにデータを引き出すためのより速い方法がありますか?
私はデータベースのmax_connections以下であれば、追加の同時アプリケーションとしてデータをストリーミングすることは、おそらくもっと有益でしょうか?アプリケーションとRDSの両方が現在VPCにあり、RDSのCPU使用率は約30%、メモリは60%になります。
{構築+解析+実行}クエリ+ 2 *ネットワークトラフィックは、100行だけで大量の作業です。 – wildplasser
100行ではなく、ちょうど飛び跳ねるメカニズムを示す例を挙げていただけです。 – ralusek
あなたはコードの人で、データの人ではないようです。それ以外にも、ボトルネックがCPUを大量に消費するものなら、なぜビターですか? – wildplasser