リレーショナル (SQL) データベースと DynamoDB からテーブル情報を取得するときの相違点
テーブルが仕様に従って作成されたことを確認できます。リレーショナルデータベースでは、テーブルのスキーマがすべて表示されます。Amazon DynamoDB テーブルはスキーマレスであるため、プライマリキー属性のみが表示されます。
SQL を使ってテーブルに関する情報を取得する
ほとんどのリレーショナルデータベース管理システム (RDBMS) では、テーブルの構造 (列、データ型、プライマリキー定義など) を記述できます。SQL にはこれを行うための標準的な方法はありません。ただし、データベースシステムの多くが DESCRIBE
コマンドを提供しています。MySQL の例を以下に示します。
DESCRIBE Music;
すべての列名、データ型、サイズを含むテーブルの構造が返ります。
+------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+-------+ | Artist | varchar(20) | NO | PRI | NULL | | | SongTitle | varchar(30) | NO | PRI | NULL | | | AlbumTitle | varchar(25) | YES | | NULL | | | Year | int(11) | YES | | NULL | | | Price | float | YES | | NULL | | | Genre | varchar(10) | YES | | NULL | | | Tags | text | YES | | NULL | | +------------+-------------+------+-----+---------+-------+
このテーブルのプライマリキーは、Artist および SongTitle で構成されます。
DynamoDB でテーブルに関する情報を取得する
DynamoDB には、同様の DescribeTable
オペレーションがあります。パラメータは、テーブル名のみです。
{ TableName : "Music" }
DescribeTable
からの返信は、次のようになります。
{ "Table": { "AttributeDefinitions": [ { "AttributeName": "Artist", "AttributeType": "S" }, { "AttributeName": "SongTitle", "AttributeType": "S" } ], "TableName": "Music", "KeySchema": [ { "AttributeName": "Artist", "KeyType": "HASH" //Partition key }, { "AttributeName": "SongTitle", "KeyType": "RANGE" //Sort key } ], ...
DescribeTable
は、テーブルのインデックス、プロビジョニングされたスループット設定、概算項目数、その他メタデータに関する情報を返します。