Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

プライマリキーを使用して項目を読み込むときの相違点

フォーカスモード
プライマリキーを使用して項目を読み込むときの相違点 - Amazon DynamoDB

データベースの一般的なアクセスパターンの 1 つは、テーブルから単一項目を読み取ることです。目的の項目のプライマリキーを指定する必要があります。

SQL にプライマリキーを使用して項目を読み込む

SQL では、SELECT ステートメントを使用して、テーブルからデータを取得します。結果の 1 つ以上の列 (* オペレーター を使用すれば、すべて) をリクエストできます。WHERE 句は返る行を判別します。

以下は、Music テーブルから単一の行を取得するための SELECT ステートメントです。WHERE 句はプライマリキー値を指定します。

SELECT * FROM Music WHERE Artist='No One You Know' AND SongTitle = 'Call Me Today'

列のサブセットのみを取得するようにこのクエリを変更できます。

SELECT AlbumTitle, Year, Price FROM Music WHERE Artist='No One You Know' AND SongTitle = 'Call Me Today'

このテーブルのプライマリキーが、Artist および SongTitle で構成されていることに注意してください。

DynamoDB でプライマリキーを使用して項目を読み込む

Amazon DynamoDB では、DynamoDB API または PartiQL (SQL 互換のクエリ言語) を使用して、テーブルから項目を読み込むことができます。

DynamoDB API

DynamoDB API では、PutItem オペレーションを使用して、テーブルに項目を追加します。

DynamoDB は、プライマリキーにより項目を取得するための GetItem オペレーションを提供します。GetItem は、項目の物理的な場所への直接アクセスを提供するため非常に効率的です。(詳しくは、DynamoDB におけるパーティションとデータ分散 を参照してください)。

デフォルトでは、GetItem は、すべての属性を含む項目全体を返します。

{ TableName: "Music", Key: { "Artist": "No One You Know", "SongTitle": "Call Me Today" } }

一部の属性のみが返されるように、ProjectionExpression パラメータを追加できます。

{ TableName: "Music", Key: { "Artist": "No One You Know", "SongTitle": "Call Me Today" }, "ProjectionExpression": "AlbumTitle, Year, Price" }

このテーブルのプライマリキーが、Artist および SongTitle で構成されていることに注意してください。

DynamoDB GetItem オペレーションは非常に効率的です。プライマリキー値を使用して、該当する項目の正確な格納場所を特定し、そこから直接取得します。SQL SELECT ステートメントは、プライマリキー値によって項目を取得する場合、同様に効率的です。

SQL SELECT ステートメントは、さまざまな種類のクエリとテーブルスキャンをサポートしています。DynamoDB は、テーブルのクエリにおける相違点 および テーブルのスキャンにおける相違点 で説明されている Query および Scan オペレーションと同様の機能を提供します。

SQL SELECT ステートメントは、テーブルの結合を実行でき、同時に複数のテーブルからデータを取得できます。データベーステーブルが正規化され、テーブル間の関係が明確である場合、結合は最も効果的です。ただし、1 つの SELECTステートメントであまりに多くのテーブルを結合すると、アプリケーションパフォーマンスが影響を受けます。データベースレプリケーション、マテリアライズドビュー、またはクエリの書き換えを使用して、このような問題を回避できます。

DynamoDB は、非リレーショナルデータベースのため、テーブルの結合はサポートされません。リレーショナルデータベースから既存のアプリケーションを DynamoDB に移行する場合、結合の必要を排除するためデータモデルを非正規化する必要があります。

PartiQL for DynamoDB

PartiQL では、PartiQL Select ステートメントを利用する ExecuteStatement オペレーションを使用して、テーブルから項目を読みます。

SELECT AlbumTitle, Year, Price FROM Music WHERE Artist='No One You Know' AND SongTitle = 'Call Me Today'

このテーブルのプライマリキーが、Artist および SongTitle で構成されていることに注意してください。

注記

選択 PartiQL ステートメントは、DynamoDB テーブルにクエリやスキャンを実行する場合にも使用できます

SelectExecuteStatement を使用したコード例については、DynamoDB 用の PartiQL select ステートメント を参照してください。

DynamoDB API では、PutItem オペレーションを使用して、テーブルに項目を追加します。

DynamoDB は、プライマリキーにより項目を取得するための GetItem オペレーションを提供します。GetItem は、項目の物理的な場所への直接アクセスを提供するため非常に効率的です。(詳しくは、DynamoDB におけるパーティションとデータ分散 を参照してください)。

デフォルトでは、GetItem は、すべての属性を含む項目全体を返します。

{ TableName: "Music", Key: { "Artist": "No One You Know", "SongTitle": "Call Me Today" } }

一部の属性のみが返されるように、ProjectionExpression パラメータを追加できます。

{ TableName: "Music", Key: { "Artist": "No One You Know", "SongTitle": "Call Me Today" }, "ProjectionExpression": "AlbumTitle, Year, Price" }

このテーブルのプライマリキーが、Artist および SongTitle で構成されていることに注意してください。

DynamoDB GetItem オペレーションは非常に効率的です。プライマリキー値を使用して、該当する項目の正確な格納場所を特定し、そこから直接取得します。SQL SELECT ステートメントは、プライマリキー値によって項目を取得する場合、同様に効率的です。

SQL SELECT ステートメントは、さまざまな種類のクエリとテーブルスキャンをサポートしています。DynamoDB は、テーブルのクエリにおける相違点 および テーブルのスキャンにおける相違点 で説明されている Query および Scan オペレーションと同様の機能を提供します。

SQL SELECT ステートメントは、テーブルの結合を実行でき、同時に複数のテーブルからデータを取得できます。データベーステーブルが正規化され、テーブル間の関係が明確である場合、結合は最も効果的です。ただし、1 つの SELECTステートメントであまりに多くのテーブルを結合すると、アプリケーションパフォーマンスが影響を受けます。データベースレプリケーション、マテリアライズドビュー、またはクエリの書き換えを使用して、このような問題を回避できます。

DynamoDB は、非リレーショナルデータベースのため、テーブルの結合はサポートされません。リレーショナルデータベースから既存のアプリケーションを DynamoDB に移行する場合、結合の必要を排除するためデータモデルを非正規化する必要があります。

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.