次の方法で共有


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

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

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

既存のデータベースがある場合は、「既存のデータベース を移行してスケールアウトする」を参照してください。

クエリに必要な SQL オブジェクトを理解するには、 スケールアウトされたクラウド データベース全体のレポート (プレビュー) を参照してください。

前提条件

Elastic Database Tools をダウンロードして実行します

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

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

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

    Elastic Database Tools スターター キットのコマンド プロンプトのスクリーンショット。

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

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

    3 つのデータベースを作成している Visual Studio の確認のスクリーンショット。

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

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

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

  1. Azure portal を開き、サインインします。

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

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

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

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

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

  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" の両方が、前の手順で作成したログイン情報である必要があります。

外部データ ソース

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

外部テーブル

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

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. Microsoft Excel を起動します。
  2. [データ] リボンに移動します。
  3. [その他のソースから] を選択し、[SQL Server から] を選択します。
  4. データ接続ウィザードで、サーバー名とログイン資格情報を入力します。 次に、[次へ] を選択します。
  5. ダイアログ ボックスで、 目的のデータを含むデータベースを選択し、 ElasticDBQuery データベースを選択します。
  6. リスト ビューで Customers テーブルを選択し、[ 次へ] を選択します。 [完了] を選択します。
  7. [データのインポート] フォームの [ワークブックでこのデータをどのように表示するかを選択する] で、[テーブル] を選択ます。 [OK] を選択.

異なるシャードに格納されたCustomersテーブルのすべての行が、Excelシートに入力されます。

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

コスト

Elastic Database クエリ機能の使用に追加料金はかかりません。

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