インデックスの作成 - Amazon DocumentDB

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

インデックスの作成

次のトピックでは、インデックスまたはバックグラウンドインデックスの構築が失敗したときにどうすべきかを説明しています。

インデックスの構築が失敗する

Amazon DocumentDB は、インデックス作成プロセスの一部としてローカルストレージをインスタンス上で使用します。[FreeLocalStorage] CloudWatch メトリクス (CloudWatch -> Metrics -> DocDB -> Instance Metrics) を使用して、このディスクの使用状況をモニタリングできます。インデックスの構築がすべてのローカルディスクを消費して失敗すると、エラーが発生します。Amazon DocumentDB にデータを移行する場合、まずインデックスを作成してからデータを挿入することをお勧めします。移行戦略やインデックスの作成については、Amazon DocumentDB のドキュメントや「オフラインメソッドを使用して、MongoDB から Amazon DocumentDB に移行する」のブログで Amazon DocumentDB への移行 を参照してください。

既存のクラスターでインデックスを作成するときに、インデックスの構築に予想以上の時間がかかる場合、または失敗する場合、まずインスタンスをスケールアップし、インデックスが作成されたらスケールバックして戻すことが推奨されます。Amazon DocumentDB では、AWS Management Console または AWS CLI を使ってインスタンスサイズを数分単位ですばやくスケールできます。詳細については、「インスタンスクラスの管理」を参照してください。秒単位のインスタンス料金によって、使用したリソースの秒数分のみを支払います。

バックグラウンドインデックスビルドのレイテンシーの問題と失敗

Amazon DocumentDB のバックグラウンドインデックスビルドは、インデックスビルドが開始される前に開始されたプライマリインスタンス上のすべてのクエリの実行が完了するまで開始されません。クエリが長時間実行されている場合、バックグラウンドインデックスビルドはクエリが終了するまでブロックされるため、完了までに予想以上に時間がかかることがあります。コレクションが空であるとしても同様です。

フォアグラウンドインデックスビルドは、同じブロッキング動作を示しません。代わりに、フォアグラウンドインデックスビルドは、インデックスのビルドが完了するまで、コレクションを排他的にロックします。したがって、空のコレクションにインデックスを作成し、長時間実行されるクエリでブロックされないようにするには、フォアグラウンドインデックスビルドを使用することをお勧めします。

注記

Amazon DocumentDB では、任意の時点でコレクションにおいてバックグラウンドインデックスの作成が 1 つのみ許可されます。バックグラウンドインデックスの作成中に createIndex()dropIndex() などの DDL (データ定義言語) オペレーションが発生すると、バックグラウンドインデックスの作成は失敗します。