Azure Tables を確認する
Azure Table Storage は、"キーと値" データ項目を含むテーブルを使用する NoSQL ストレージ ソリューションです。 各項目は、格納する必要があるデータ フィールドの列を含む 1 つの行によって表されます。
ただし、Azure Table Storage のテーブルがリレーショナル データベースのテーブルのようなものであると間違って解釈しないでください。 Azure Table を使用すると、半構造化データを格納できます。 テーブル内のすべての行には、一意のキー (パーティション キーと行キーで構成される) が必要です。また、テーブル内のデータを変更すると、"タイムスタンプ" 列に、変更が行われた日時が記録されます。それ以外に、各行はさまざまな列をもつ可能性があります。 Azure Table Storage テーブルには、外部キー、リレーションシップ、ストアド プロシージャ、ビュー、またはリレーショナル データベースにあるその他のオブジェクトの概念がありません。 通常、Azure Table Storage は非正規化されており、各行に論理エンティティのデータ全体が格納されます。 たとえば、顧客情報を保持するテーブルには、名、姓、1 つ以上の電話番号、1 つ以上の住所が、顧客ごとに格納されている場合があります。 フィールドの数は、各顧客の電話番号や住所の数、および住所ごとに記録された詳細情報により、行ごとに異なる場合があります。 リレーショナル データベースでは、この情報は複数のテーブルの複数の行に分割されます。
高速にアクセスできるように、Azure Table Storage ではテーブルがパーティションに分割されています。 パーティション分割は、共通のプロパティつまり "パーティション キー" に基づいて、関連する行をグループ化するためのメカニズムです。 同じパーティション キーを共有する行は、一緒に格納されます。 パーティション分割は、データの整理に役立つだけでなく、次のようにスケーラビリティとパフォーマンスを向上させることもできます。
パーティションは相互に独立しており、パーティションの行の追加や削除に応じて、拡大または縮小できます。 テーブルには、任意の数のパーティションを格納できます。
データを検索するときは、検索条件にパーティション キーを含めることができます。 これにより、調査対象のデータ量を絞り込むことができ、データを探すために必要な I/O (入出力操作、または "読み取り" と "書き込み") の量が減少して、パフォーマンスが向上します。
Azure Table Storage のテーブルのキーは、行が含まれるパーティションを識別するパーティション キーと、同じパーティション内で行ごとに一意の行キーの、2 つの要素で構成されます。 同じパーティション内の項目は、行キーの順に格納されます。 アプリケーションによってテーブルに新しい行が追加されると、その行はテーブル内の正しい位置に配置されます。 このスキームにより、アプリケーションでは、1 つの行を識別する "ポイント" クエリと、パーティション内の連続した行ブロックをフェッチする "範囲" クエリを、すばやく実行できます。