Table Storage 機能の概要

Azure Table Storage REST API は、次のセクションで説明するように、 OData プロトコル仕様に準拠しています。いくつかの違いがあります。

Table Storage 拡張機能

Table Storage は、 の機能 OData を次の方法で拡張します。

共有キー、共有キー Lite、および Azure Active Directory 承認

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 。 プロパティはTimestampDateTime、エンティティが最後に変更された時刻を記録するためにサーバー側で保持される値です。 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 つのプロパティとは、PartitionKeyRowKey および 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 データ サービスのバージョン ヘッダーの設定」を参照してください。

こちらもご覧ください

Table Storage REST API