スケールアウトされたクラウド データベース全体のレポート (プレビュー)

適用対象: Azure SQL データベース

1 つの接続ポイントから複数のデータベースのレポートを作成するには、エラスティック クエリを使用します。 データベースは、行方向にパーティション分割する必要があります ("シャード化" とも呼ばれます)。

既存のデータベースがある場合は、 スケール アウトされたデータベースへの既存データベースの移行に関するページをご覧ください。

クエリに必要な SQL オブジェクトについては、 行方向にパーティション分割されたデータベース間のクエリに関するページをご覧ください。

前提条件

「エラスティック データベース ツールの概要」に示されているサンプルをダウンロードして実行します。

サンプル アプリケーションを使用してシャード マップ マネージャーを作成する

ここでは、シャード マップ マネージャーといくつかのシャードを作成し、シャードにデータを挿入します。 シャードがすでにセットアップされ、シャード データが取り込まれている場合は、以下の手順を省略して、次のセクションに進むことができます。

  1. サンプル アプリケーションのダウンロードと実行」セクションの手順に従って、「Elastic Database ツールの概要」のサンプル アプリケーションをビルドして実行します。 すべての手順を完了すると、次のコマンド プロンプトが表示されます。

    コマンド プロンプト (command prompt)

  2. コマンド ウィンドウで、「1」を入力し、Enter キーを押します。 シャード マップ マネージャーが作成され、2 つのシャードがサーバーに追加されます。 「3」を入力し、Enter キーを押します。この操作を 4 回を繰り返します。 これにより、サンプルのデータ行がシャードに挿入されます。

  3. Azure Portal に、サーバー内の 3 つの新しいデータベースが表示されます。

    Visual Studio の確認

    この時点で、複数のデータベースにまたがるクエリは、エラスティック データベース クライアント ライブラリを介してサポートされます。 たとえば、コマンド ウィンドウのオプション 4 を使用するとします。 マルチ シャード クエリの結果は常に、すべてのシャードからの結果に UNION ALL を適用したものとなります。

    次のセクションでは、複数のシャードにまたがって実行されるデータの高度なクエリをサポートするサンプル データベース エンドポイントを作成します。

エラスティック クエリ データベースを作成する

  1. Azure Portal を開き、ログインします。

  2. シャード セットアップと同じサーバーに Azure SQL Database で新しいデータベースを作成します。 このデータベースに "ElasticDBQuery" という名前を付けます。

    Azure ポータルと価格レベル

    注意

    既存のデータベースを使用できます。 そうする場合、その既存のプレミアム データベースを、クエリの実行対象とするシャードに含めることはできません。 このデータベースは、エラスティック データベース クエリのメタデータ オブジェクトを作成するために使用されます。

データベース オブジェクトを作成する

データベース スコープのマスター キーと資格情報

これらを使用し、次の手順に従ってシャード マップ マネージャーとシャードに接続します。

  1. SQL Server Management Studio または Visual Studio の SQL Server Data Tools を開きます。

  2. ElasticDBQuery データベースに接続し、次の T-SQL コマンドを実行します。

    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master_key_password>';
    
    CREATE DATABASE SCOPED CREDENTIAL ElasticDBQueryCred
    WITH IDENTITY = '<username>',
    SECRET = '<password>';
    

    "username" と "password" は、記事「Elastic Database ツールの概要」の「サンプル アプリケーションのダウンロードと実行」セクションの手順 3 で使用されているログイン情報と同じである必要があります。

外部データ ソース

外部データ ソースを作成するには、ElasticDBQuery データベースで、次のコマンドを実行します。

CREATE EXTERNAL DATA SOURCE MyElasticDBQueryDataSrc WITH
    (TYPE = SHARD_MAP_MANAGER,
    LOCATION = '<server_name>.database.windows.net',
    DATABASE_NAME = 'ElasticScaleStarterKit_ShardMapManagerDb',
    CREDENTIAL = ElasticDBQueryCred,
    SHARD_MAP_NAME = 'CustomerIDShardMap'
) ;

エラスティック データベース ツールのサンプルを使用してシャード マップとシャード マップ マネージャーを作成した場合、"CustomerIDShardMap" はシャード マップの名前となります。 ただし、このサンプルでカスタム セットアップを使用した場合は、アプリケーションで選択するシャード マップ名となります。

外部テーブル

シャード上の Customers テーブルと一致する外部テーブルを作成するには、ElasticDBQuery データベースに対して次のコマンドを実行します。

CREATE EXTERNAL TABLE [dbo].[Customers]
( [CustomerId] [int] NOT NULL,
    [Name] [nvarchar](256) NOT NULL,
    [RegionId] [int] NOT NULL)
WITH
( DATA_SOURCE = MyElasticDBQueryDataSrc,
    DISTRIBUTION = SHARDED([CustomerId])
) ;

サンプルのエラスティック データベース T-SQL クエリを実行する

外部データ ソースと外部テーブルを定義すると、外部テーブルに対して完全に T-SQL を使用できるようになります。

ElasticDBQuery データベースでこのクエリを実行します。

select count(CustomerId) from [dbo].[Customers]

クエリはすべてのシャードからの結果を集計し、次のように出力を表示します。

出力の詳細

エラスティック データベース クエリの結果を Excel にインポートする

クエリの結果は Excel ファイルにインポートすることができます。

  1. Excel 2013 を起動します。

  2. [データ] リボンに移動します。

  3. [その他のデータ ソース] をクリックし、 [SQL Server] をクリックします。

    他のソースから Excel へのインポート

  4. [データ接続ウィザード] で、サーバー名とログイン時の資格情報を入力します。 続けて、 [次へ] をクリックします。

  5. [使用するデータが含まれているデータベースを選択] ダイアログ ボックスで、 [ElasticDBQuery] データベースを選択します。

  6. リスト ビューで [Customers] テーブルを選択し、 [次へ] をクリックします。 [完了] をクリックします。

  7. [データのインポート] フォームの [このデータをブックでどのように表示するかを選択してください。] で、 [テーブル] を選択し、 [OK] をクリックします。

さまざまなシャードに格納されている、 [Customers] テーブルからのすべての行が Excel シートに読み込まれます。

これで Excel の強力なデータの可視化機能を使用できるようになりました。 サーバー名、データベース名、および資格情報が含まれる接続文字列を使用して、BI とデータ統合ツールをエラスティック クエリ データベースに接続することができます。 使用しているツールのデータ ソースとして SQL Server がサポートされていることを確認してください。 エラスティック クエリ データベースおよび外部テーブル (ツールを使用して接続するその他の SQL Server データベースおよび SQL Server テーブルのような) を参照できます。

コスト

Elastic Database クエリ機能を使用する場合に追加の料金は発生しません。

料金情報については、「 SQL Database の料金詳細」を参照してください。

次のステップ