Windows Azureストレージサービス

2011年4月8日(金)
bird982000(監修:山田祥寛)

テーブルストレージとは

テーブルストレージはアカウント/テーブル/エンティティの階層構造になっています。ストレージアカウントの概念はブロブストレージと同様です。テーブルは、エンティティを分けるための器であり、複数のテーブルを作成できます。1つのエンティティは255個までのプロパティを所持することができ、各エンティティのデータは1MBが上限です。この1MB内にはプロパティの名前とデータの両方を含みます。各エンティティはパーティションキーとロウキーとタイムスタンプの3つの必須プロパティを持っていて、パーティションキーとロウキーで各テーブル内のエンティティが識別されます。タイムスタンプはシステム側で使用されるプロパティで運用時にはあまり意識する必要がありません。これ以外のプロパティはユーザー側で自由に設定でき、値の有無についても自由です。そのため、図3のように値が穴抜きとなるプロパティや別々のスキーマのデータを、1つのテーブルに自由に挿入することができます。

なお、この図はAzure Storage Explorerというツールを使用していますが、今後このツールの使用方法を詳細に説明する予定です。今は特徴のみを押さえてください。

テーブルストレージの場合、エンティティの識別はパーティションキーとロウキーのみのためこの扱いが非常に重要になります。まず、物理的な観点ではパーティションキーによって各エンティティはグループ化されて複数のサーバーに振り分けられます。その上でロウキーによって1つのサーバー内で各エンティティが識別されます。また、テーブル内ではパーティションキーとロウキーによってデータはソートされています。ですので、クエリ発行時はパフォーマンスの観点からまずはパーティションキーによって抽出条件を設定して、次にロウキーでデータを抽出することが重要です。なお、クエリの結果は必ずパーティションキーとロウキーでソートされて返ってきます。また、クエリは1000件までしか1回のクエリで取得できないので注意が必要です。

以上のことは運用時も重要になります。テーブル内部のデータを確認するためのツールはありますが、特にtableの場合はデータ量が大きくなりがちなのでパーティションキーとロウキーで識別できるようにして取得することをお勧めします。

図3:Azure Storage Explorer 使用画面(クリックで拡大)

まとめ

さて、各ストレージを概観してきましたがいかがでしたでしょうか。冒頭で説明したように、ストレージはWindows Azureでデータを永続化される重要な機能を提供します。ブロブ/キュー/テーブルの特徴を理解してツール類を使いこなすことはWindows Azureで運用していく上で非常に重要になります。

今回でストレージサービスの特徴を理解したところで、次回はWindows Azureを使う上で最初に必要になる実際の契約方法と課金について解説していきます。

著者
bird982000(監修:山田祥寛)
WINGSプロジェクト

有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表:山田祥寛)。おもな活動は、Web開発分野の書籍/雑誌/Web記事の執筆。ほかに海外記事の翻訳、講演なども幅広く手がける。2011年3月時点での登録メンバは36名で、現在もプロジェクトメンバーを募集中。執筆に興味のある方は、どしどしご応募頂きたい。著書多数。
http://www.wings.msn.to/

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています