Amazon Elastic MapReduce - S3からDynamoDBへのマスインサートは信じられないほど遅いです
-
12-12-2019 - |
質問
1億1,000万アイテム(合計5+ GB)の初期アップロードを1つのDynamoDBテーブルにアップロードする必要があります。
私はすでにAmazon Premiumサポートに連絡していますが、これまでのところ、「何らかの理由でDynamoDBインポートが遅い」と言った。
DynamoDBターゲットの代わりにHDFSに対して実行されるのと同じコマンドが秒単位で完了しました。
それは簡単な仕事、非常に基本的なユースケースのようです、そして私は本当にここで何が悪いことが何ができるのか疑問に思います。
解決
最近AWSサポートから最後に得た答えです。同様の状況で誰かを助けることを願っています:
EMRワーカーは現在シングルスレッドワーカーとして実装されています。 各労働者は1つずつの項目を書いている(PUTを使用して、BatchWriteではありません)。 したがって、各書き込みは1の書き込み容量単位(IOP)を消費します。
これはあなたが多くの接続を確立していることを意味します ある程度のパフォーマンスを低下させます。バッチライトを使用した場合、IT 単一の操作で最大25行までコミットできることを意味します 費用がかかることは賢明ではない(私が理解していれば同じ価格 それは正しい)。これは私たちが知っているものであり、おそらくおそらく EMRで将来的に実装します。タイムラインを提供することはできません。
前述のように、ここでの主な問題はDynamoDBのテーブルがあるということです。 プロビジョニングされたスループットに達しているので、それを増やそう 輸入のために一時的にそれを減らすことを自由に感じます あなたが必要とするレベル。
これは少し便利に聞こえるかもしれませんが、問題がありました あなたがこれをしていたときの警告あなたが受け取ったことがない理由だった 警告する。問題は解決されています。