Table Storage 機能の概要
Azure Table Storage REST API は、次のセクションで説明するように、 OData プロトコル仕様に準拠しています。いくつかの違いがあります。
Table Storage 拡張機能
Table Storage は、 の機能 OData
を次の方法で拡張します。
共有キー、共有キー ライト、およびMicrosoft Entra承認
Table Storage では、各要求を承認する必要があります。 共有キー、共有キー Lite、およびMicrosoft Entra ID承認がサポートされています。 Microsoft Entra ID承認はより安全であり、REST API を使用して Table Storage に対して行われた要求に推奨されます。
要求の承認の詳細については、「 Azure Storage への要求を承認する」を参照してください。
クエリ改ページの継続トークン
Table Storage に対するクエリでは、一度に最大 1,000 個の項目を返し、最大 5 秒間実行できます。 結果セットに 1,000 を超える項目が含まれている場合、またはクエリが 5 秒以内に完了しなかった場合、応答にはヘッダーが含まれます。 これらのヘッダーは、結果セットの次の項目でクエリを再開するために、開発者に使用する継続トークンを提供します。 継続トークン ヘッダーは、 クエリ テーブル 操作または クエリ エンティティ 操作に対して返すことができます。
クエリのスケジュール設定および処理用として要求に割り当てられる時間は、クエリの実行に要する 5 秒を含め、合計で 30 秒間です。
継続トークンの詳細については、「 クエリのタイムアウトと改ページ位置付け」を参照してください。
主キー システムのプロパティ
Table Storage のすべてのエンティティには、 プロパティと RowKey
プロパティの PartitionKey
2 つの主要なプロパティがあります。 これらのプロパティはテーブルの主キーを形成し、テーブル内の各エンティティを一意に識別します。
どちらのプロパティにも文字列値を指定する必要があります。 新しいエンティティが挿入されたときにこれらのプロパティの値を指定し、エンティティの更新または削除操作に含めるのは開発者の責任です。
これらの必須のキー プロパティの詳細については、「 Table Storage データ モデルについて」を参照してください。
Timestamp システム プロパティ
Table Storage 内のすべてのエンティティには、システム プロパティがあります Timestamp
。 プロパティはTimestamp
DateTime
、エンティティが最後に変更された時刻を記録するためにサーバー側で保持される値です。 Table Storage では、 プロパティを Timestamp
内部的に使用してオプティミスティック コンカレンシーを提供します。
Timestamp
の値は、単純に増加する値です。これは、エンティティが変更されるたびに、そのエンティティの Timestamp
の値が増加することを意味します。 このプロパティは、挿入操作または更新操作には設定しないでください (値は無視されます)。
プロパティの Timestamp
詳細については、「 Table Storage データ モデルについて」を参照してください。
バッチ操作
Table Storage では、同じテーブル内にあり、同じパーティション グループに属するエンティティに対するバッチ トランザクションがサポートされています。つまり、同じ PartitionKey
値を持ちます。 そのため、1 つのアトミック トランザクション内で、複数の挿入、更新、マージ、および削除の各操作がサポートされます。 Table Storage では、 OData プロトコルによって提供される機能のサブセットがサポートされています。
バッチ操作の詳細については、「 エンティティ グループ トランザクションの実行」を参照してください。
Table Storage の制限
Table Storage には、 によって OData
提供される機能に関して次の制限があります。
Credentials プロパティ
Table Storage では、DataServiceContext クラスの Credentials プロパティを使用して要求を承認することはできません。 代わりに、要求にヘッダーを追加して、Table Storage に対する要求を Authorization
承認する必要があります。 詳細については、「Azure Storage への要求を承認する」をご覧ください。
プロパティの型
で OData
サポートされているすべてのプロパティ型がサポートされているわけではありません。 サポートされているプロパティの種類の一覧については、「 Table Storage データ モデルについて」を参照してください。
リンクに対する操作
Table Storage では現在、テーブル間のリンクはサポートされていません。 リンクはデータ間の関連付けを示すリレーションシップです。
選択プロパティに対する操作
プロジェクション とは、エンティティまたはエンティティのプロパティのサブセットに対してクエリを実行することを指します。 これは、言語統合クエリ (LINQ) でクエリを実行するときに、テーブルの列またはプロパティのサブセットを選択することに似ています。
射影では、応答で特定のプロパティのみが返されるように指定することで、クエリによって返される必要があるデータの量を削減します。 プロジェクションは、2011-08-18 バージョンの Azure Storage の一部としてサポートされています。 詳細については、「 クエリ エンティティ」、「 Table Storage に対する LINQ クエリの記述」、および 「OData: システム クエリ オプションの選択 ($select)」を参照してください。
LINQ クエリ演算子
Table Storage では、次の LINQ クエリ演算子がサポートされています。
From
Where
Take
詳細については、「 Table Storage でサポートされているクエリ演算子」を参照してください。
LINQ 比較演算子
LINQ で提供される比較演算子のサブセットを使用できます。 詳細については、「 テーブルとエンティティのクエリ」および 「 Table Storage に対する LINQ クエリの記述」を参照してください。
GetMetadataURI メソッド
DataServiceContext クラスの GetMetadataURI メソッドを使用できますが、3 つの固定スキーマ プロパティを超えるスキーマ情報は返されません。 この 3 つのプロパティとは、PartitionKey
、RowKey
および Timestamp
です。
ペイロード形式
OData
では、JSON 形式のペイロードの送信がサポートされています。 Table Storage では、 OData
API バージョン 2013-08-15 の時点での JSON 形式がサポートされ、データ サービスの OData
バージョンは 3.0 に設定されています。 以前のバージョンでは、JSON 形式はサポートされていません。
Atom ペイロードは、2015-12-11 より前のすべてのバージョンでサポートされています。 バージョン 2015-12-11 以降では、JSON ペイロードのみがサポートされています。
注意
JSON は推奨されるペイロード形式であり、バージョン 2015-12-11 以降でサポートされている唯一の形式です。
詳細については、「 Table Storage 操作のペイロード形式 」および 「OData データ サービスのバージョン ヘッダーの設定」を参照してください。