2017-12-21 12 views
1

DynamoDBで既に作成された行数が20億に近いテーブルがあります。GSIの作成に長時間を要する

クエリの要件のため、グローバルセカンダリインデックス(GSI)を作成する必要がありました。 GSIの作成プロセスは36時間前に開始されましたが、まだ完了していません。ポータルでは、アイテム数は約1億になると表示されます。そう遠くまで行く。

質問:

  1. 十分なWCUとRCUはalotted (実際には30K)しているのに、なぜそのような長い時間がかかるん。
  2. 私が使用したGSIパーティションキーは、値が繰り返し的なもので、GSIの作成に時間がかかります(理想的なシナリオは、アイテムが複数回にわたって繰り返されないようにパーティションキーを選択することですパーティション)。
  3. プロセスの実行中にGSIの作成を中止する方法はありますか? AWSコンソールでは許可されません。

ありがとうございます。

+0

CloudWatchメトリックを使用してGSI作成を監視:OnlineIndexPercentageProgress。詳細はこちら:https://www.abhayachauhan.com/2017/12/dynamodb-global-secondary-indexes –

答えて

0

GSIには独自のWCUとRCUがあり、プライマリインデックスとは区別されています。あなたのGSIに十分なWCUを持っていないからです。

グローバルセカンダリインデックスの作成に時間がかかりすぎている場合は(共通 既存の大きなテーブルの上にインデックスを追加)、次の手順に従って規定 追加書き込み容量ことができます:

オープンDynamoDBのコンソール。

ナビゲーションペインで、テーブル、 を選択し、一覧からテーブルを選択します。

[インデックス]タブを選択します。

インデックスの書き込み容量を増やし、[保存]を選択します。分程度 後

、グローバルセカンダリインデックス の作成が十分に進んでいるかどうかを確認するために からメトリック]タブをOnlineIndexPercentageProgressメトリックを確認してください。

EDIT:上記AWS Knowledge Center

「OnlineIndexPercentageProgressの指示から:グローバルセカンダリインデックスの

の作成が開始されます。メトリックタブで進捗状況を で監視できます。

[メトリック]タブを選択します。

すべてのCloudWatchメトリックを表示を選択します。

CloudWatchコンソールで、[DynamoDB]を選択します。 [Search Metrics]ボックスに、OnlineIndexPercentageProgressと入力します。注:検索で空の リストが返された場合、メトリックが入力されるまで約1分間待ちます。

の名前を選択して進捗状況を確認します。

+0

私はテーブル全体に加えて、GSIにWCUとRCUを割り当てました。 –

+0

あなたのGSIにはいくつのWCUがありますか? – Stu

+0

GSI(30,000 WCUおよびRCU)の場合。テーブル(20,000 WCUとRCU)の場合 –

関連する問題