テーブルからデータを読み込む場合の、SQL と DynamoDB の主な相違点 - Amazon DynamoDB

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

テーブルからデータを読み込む場合の、SQL と DynamoDB の主な相違点

SQL では、SELECT ステートメントを使用して、テーブルから 1 つ以上の行を取得します。WHERE 句を使用して、返されたデータを調べます。

これは、Amazon DynamoDB を使用する場合とは異なります。Amazon DynamoDb は、データの読み取りに次のオペレーションを提供します。

  • ExecuteStatement がテーブルから 1 つまたは複数の項目を取得します。BatchExecuteStatement が 1 回のオペレーションで異なるテーブルから複数の項目を取得します。どちらのオペレーションでも、SQL 互換のクエリ言語である PartiQL が使用されます。

  • GetItem – テーブルから単一の項目を取り出します。これは、項目の物理的な場所に直接アクセスできるため、単一の項目を読み込むうえで最も効率的な方法です。(DynamoDB では、BatchGetItem オペレーションを提供し、1 回のオペレーションで最大 100 回の GetItem コールを実行できます。)

  • Query – 特定のパーティションキーがあるすべての項目を取得します。これらの項目内では、ソートキーに条件を適用し、データのサブセットのみ取得できます。Query は、データが格納されているパーティションに、すばやく効率的にアクセスできます。(詳しくは、パーティションとデータ分散 を参照してください)。

  • Scan – 指定されたテーブルで、すべての項目を取得します。(大量のリソースシステムを消費するため、このオペレーションは大きなテーブルでは使用しないでください。)

注記

リレーショナルデータベースでは、SELECT ステートメントを使用して、複数のテーブルからデータを結合し、その結果を返すことができます。結合は、リレーショナルモデルにおいて必須です。結合を効率的に実行するために、データベースおよびアプリケーションは、継続的にパフォーマンスを調整する必要があります。DynamoDB は、テーブル結合をサポートしない非リレーショナル NoSQL データベースです。その代わり、アプリケーションは一度に 1 つのテーブルからデータを読み込みます。

次のセクションでは、データを読み込むための異なるユースケースおよびこれらのタスクをリレーショナルデータベースと DynamoDB を使って実行する方法を説明します。