Q69 — AWS DVA-C02 第2章
第 69/100 問 | ← 第2章
「artist」という名前のテーブルと、「songs」という名前のテーブルがあります。「artists」テーブルはArtistNameをパーティションキーとしています。「songs」テーブルはsongNameをパーティションキー、artistNameをソートキーとしています。アクセスパターンには、単一のデータベース操作で複数の曲および対応するアーティスト情報を取得する必要があります。開発者は、ネットワークトラフィックを最小化し、アプリケーションパフォーマンスを最適化する方法でこれらの情報を取得する必要があります。この要件を満たすソリューションはどれですか?
- A. BatchGetItem操作を実行して2つのテーブルから項目を取得します。songsテーブルにはsongName/artistNameキーのリストを、artistsテーブルにはartistNameキーのリストを使用します。 ✓
- B. songsテーブルにローカルセカンダリインデックス(LSI)を作成し、artistNameをパーティションキーとして使用します。songsテーブルの各アーティスト名に対してクエリ操作を実行し、曲名のリストでフィルタリングします。artistsテーブルの各アーティスト名に対してもクエリ操作を実行します。
- C. songName/artistNameキーを使用してsongsテーブルに対してBatchGetItem操作を実行します。artistsテーブルに対してはArtistNameをキーとしてBatchGetItem操作を実行します。
- D. 各テーブルに対してスキャン操作を実行し、songsテーブルでは曲名/アーティスト名のリストでフィルタリングし、artistsテーブルではアーティスト名のリストでフィルタリングします。
正解: A. BatchGetItem操作を実行して2つのテーブルから項目を取得します。songsテーブルにはsongName/artistNameキーのリストを、artistsテーブルにはartistNameキーのリストを使用します。
解説
このシナリオでは、複数のテーブルからデータを効率的に取得し、ネットワークトラフィックを最小化し、アプリケーションパフォーマンスを最大化する必要があります。各選択肢を検討します:A. BatchGetItem操作で2つのテーブルから同時に項目を取得し、songsテーブルにはsongName/artistNameキーのリスト、artistsテーブルにはartistNameキーのリストを使用します。これはネットワーク往復を減らし、ネットワークトラフィックを削減し、データ取得効率を高めます。B. LSIを作成し、各アーティスト名ごとにクエリを実行する方法は、多数のデータベース往復を必要とし、ネットワークトラフィックが増加します。C. songsテーブルのみのBatchGetItemを考慮しており、artistsテーブルの最適化戦略が欠けています。D. スキャン操作は、特にデータ量が多い場合に非常にコストがかかり、不要なデータの読み取りとフィルタリングを伴うため非効率です。以上より、Aは単一のデータベース操作で複数の曲およびアーティスト情報を取得でき、最小のネットワークトラフィックと最適なアプリケーションパフォーマンスを実現します。したがって、正しい答えはAです。 【灯笼考证提供:swufelp1999】