ラボの概要
AnyCompany は新しい映画データベースのアプリケーションを開発しています。このアプリケーションでは、タイトル、リリースされた年、映画に出演している俳優、評価などに基づき、ユーザーは映画を検索できます。AnyCompany はアプリケーションが参照するすべての映画に関する情報を保存するデータベースサービスとして、Amazon DynamoDB を選択しました。
Amazon DynamoDB はサーバーレス NoSQL です。キー値およびドキュメントデータモデルをサポートする非リレーショナルデータベースとしても知られています。DynamoDB を使用すると、ペタバイトのデータ、毎秒数千万件の読み取り/書き込みリクエストをサポートできるため、小規模に始めて、アプリケーションやユーザーベースの拡大に合わせて迅速かつグローバルに拡張できます。AWS が DynamoDB サービスを管理するため、更新または保守が必要なサーバーはありません。詳細については、その他のリソースセクションの Amazon DynamoDB の特徴と Amazon DynamoDB の主要なコンポーネントを参照してください。
新しく採用されたジュニアレベルのデータベースエンジニアであるあなたは、アプリケーションの検索機能を改善するための、適切なローカルセカンダリインデックス (LSI) やグローバルセカンダリインデックス (GSI) の作成を担当します。このラボでは、movies という名前のサンプルデータベースを使用します。DynamoDB テーブルは非常に柔軟で、リレーショナルデータベースのような従来の「スキーマ」を持たないことに注意してください。この movies テーブルには、「年」(数値) のパーティション (ハッシュ) キー、「タイトル」(文字列) のソート (レンジ) キーがあります。このラボのデータベースに設定されている属性の全リストは、次の特徴に一致します。
- year – 数値 (パーティションキーまたはハッシュキー)
- title – 文字列 (ソートキーまたはレンジキー)
- actors – 文字列
- directors – 文字列
- genre – 文字列
- image_url – 文字列
- plot – 文字列
- rank – 数値
- rating – 数値
- release date – 文字列
- running_time_secs – 数値
実際には、actors と directors 属性のデータは、Python の dict 型として読み込めるようにフォーマットされているため、複数の実際のパフォーマーを表しています。例えば、特定の項目の actors 属性は [{"S":"John Doe"}, {"S":"Jane Doe"}] のような文字列です。
取り上げるトピック
このラボを修了すると、次のことができるようになります。
- SDK を使用してローカルセカンダリインデックス (LSI) とグローバルセカンダリインデックス (GSI) を作成する
- SDK を使用してデータをスキャンし、フィルタリングされた結果を返す
- SDK を使用して、データを取得するための高度なクエリを実行し、メソッド間のパフォーマンスを比較する
技術知識の前提条件
このラボを完了するには、AWS マネジメントコンソールの基本的な操作方法、NoSQL データベースの概念、プログラミング言語 Python に関する知識が必要です。また、テキストエディタを使用したスクリプトの編集ができる必要があります。
アイコンキー
このラボでは、ガイドの特定の部分への注意を促すため、さまざまなアイコンが使用されています。次のリストは、各アイコンの目的を説明したものです。
- キーボードのアイコンは、コマンドを実行する必要があることを示します。
- クリップボードのアイコンは、提示されている例と比較して、コマンドや編集したファイルの出力を検証できることを示します。
- ノートのアイコンは、重要なヒント、コツ、ガイダンス、アドバイスを示します。
- 丸印の中の「i」のアイコンは、詳細情報が記載されている場所を示します。
- チェックマーク付きの人のアイコンは、知識の確認と学習した内容のテストができることを示します。