書籍転載:Windows Azure Platform開発入門 SQL Azure Federation入門 2012/02/27 |
本コーナーは、日経BP社発行の書籍『Windows Azure Platform開発入門』の中から、特にInsider.NET読者に有用だと考えられる章や個所をInsider.NET編集部が選び、同社の許可を得て転載したものです。基本的に元の文章をそのまま転載していますが、レイアウト上の理由などで文章の記述を変更している部分(例:「上の図」など)や、図の位置などを本サイトのデザインに合わせている部分が若干ありますので、ご了承ください。『Windows Azure Platform開発入門』の詳細は「目次情報ページ」や日経BP社のサイトをご覧ください。 |
ご注意:本記事は、書籍の内容を改変することなく、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。 |
■4.15 SQL Azure Federation
SQL Azure Federation(フェデレーション)は、データベースのオブジェクトでスケールアウトによる無制限のスケーラビリティとコストパフォーマンスに優れた機能です。2011年12月に正式サービスとして提供が始まりました。
SQL Azure Federationでは、以下のようにしてスケールアウトを実現しています。FederationとFederationを構成するFederation member、Federation memberを構成するAtomic unitがあります。
図4.63 SQL Azure Federationの概要図 |
Federationは、テーブルやビューなどのオブジェクトと同じようにユーザーデータベース内に作成します。1つのデータベース内にスケールアウトする必要性に応じて複数のFederationを作成することができます。
Federationは、スケールアウトするのにSQL Azureデータベースを使用します。データベースには、Federation Memberと呼ばれるFederationデータの一部を格納します。Federation Memberは、動的にデータをパーティションに分割するのに使用します。
Atomic Unitには、すべてのFederationテーブルのすべての行が格納されます。
●4.15.1 SQL Azure Federationの使用手順
データベースにFederationを作成し、Federationの中にテーブルを作成します。作成したFederationを、複数のFederation Memberに分割します。分割したFederation Memberを1つにまとめるまでの手順を説明します。執筆時点では、GUI操作画面は提供されていないため、T-SQLを発行します。
○1 データベースとFederationを作成する
Saleデータベースを作成し、Saleデータベースに2つのFederationを作成します。データベースとFederationを作成するために、リスト4.11のT-SQLを実行します。
|
|
リスト4.11 データベースとFederationを作成するT-SQL |
スクリプトを実行すると、SaleデータベースにCustomerFederationとProductFederationの2つのFederationが作成され、図4.64のようになります。
図4.64 データベースと Federationを作成した状態 |
○2 Federationを使用するテーブルを作成する
CustomerFederationに2つのFederaionを使用するテーブルと1つの普通のテーブルを作成します。
|
|
リスト4.12 CustomerFederationにテーブルを作成するT-SQL |
USE FEDERATION句で、CustomerFederationを指定します。指定したFederationにテーブルを作成します。テーブル作成時に、FEDERATED ON句を使用することで、Federationを使用することと、データの分割列を指定します。
スクリプトを実行すると図4.65のようになります。
図4.65 CustomerFederationにテーブルを作成した状態 |
○3 Federation Memberを分割する
Federation Memberをcid100で2つに分割します。CustomerFederationには、1つのFederation Memberが含まれています。cid100で分割し、2つのFederation Memberにします。
|
|
リスト4.13 CustomerFederationを2つのFederation Memberに分割するT-SQL |
スクリプトを実行すると図4.66のようになります。CustomerとCustomerAddressは、cidに指定した列に基づいて2つのFederation Memberに分割されます。PostalCodeはFederationを使用していないので、同じテーブルが2つのFederation Memberにコピーされます。
図4.66 CustomerFederationを 2つの Federation Memberに分割した状態 |
○4 分割したFederation Memberを結合する
CustomerFederationを1つのFederation Memberに結合します。前の手順で、2つに分割したFederation Memberを1つに統合します。
|
|
リスト4.14 CustomerFederationを1つのFederation Memberに結合するT-SQL |
以上で、Federationの作成、Federation Memberの分割、結合の方法について説明しました。Federation Memberの分割、結合は非同期に処理されるため、オンライン状態のまま実施することができます。格納するデータ量に応じてFederation Memberを随時調整することができます。
■
『Windows Azure Platform開発入門』の転載は、今回が最終回です。
「Windows Azure Platform開発入門」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|