Windows Azureストレージサービス
テーブルストレージとは
テーブルストレージはアカウント/テーブル/エンティティの階層構造になっています。ストレージアカウントの概念はブロブストレージと同様です。テーブルは、エンティティを分けるための器であり、複数のテーブルを作成できます。1つのエンティティは255個までのプロパティを所持することができ、各エンティティのデータは1MBが上限です。この1MB内にはプロパティの名前とデータの両方を含みます。各エンティティはパーティションキーとロウキーとタイムスタンプの3つの必須プロパティを持っていて、パーティションキーとロウキーで各テーブル内のエンティティが識別されます。タイムスタンプはシステム側で使用されるプロパティで運用時にはあまり意識する必要がありません。これ以外のプロパティはユーザー側で自由に設定でき、値の有無についても自由です。そのため、図3のように値が穴抜きとなるプロパティや別々のスキーマのデータを、1つのテーブルに自由に挿入することができます。
なお、この図はAzure Storage Explorerというツールを使用していますが、今後このツールの使用方法を詳細に説明する予定です。今は特徴のみを押さえてください。
テーブルストレージの場合、エンティティの識別はパーティションキーとロウキーのみのためこの扱いが非常に重要になります。まず、物理的な観点ではパーティションキーによって各エンティティはグループ化されて複数のサーバーに振り分けられます。その上でロウキーによって1つのサーバー内で各エンティティが識別されます。また、テーブル内ではパーティションキーとロウキーによってデータはソートされています。ですので、クエリ発行時はパフォーマンスの観点からまずはパーティションキーによって抽出条件を設定して、次にロウキーでデータを抽出することが重要です。なお、クエリの結果は必ずパーティションキーとロウキーでソートされて返ってきます。また、クエリは1000件までしか1回のクエリで取得できないので注意が必要です。
以上のことは運用時も重要になります。テーブル内部のデータを確認するためのツールはありますが、特にtableの場合はデータ量が大きくなりがちなのでパーティションキーとロウキーで識別できるようにして取得することをお勧めします。
図3:Azure Storage Explorer 使用画面(クリックで拡大) |
まとめ
さて、各ストレージを概観してきましたがいかがでしたでしょうか。冒頭で説明したように、ストレージはWindows Azureでデータを永続化される重要な機能を提供します。ブロブ/キュー/テーブルの特徴を理解してツール類を使いこなすことはWindows Azureで運用していく上で非常に重要になります。
今回でストレージサービスの特徴を理解したところで、次回はWindows Azureを使う上で最初に必要になる実際の契約方法と課金について解説していきます。