スケールアウトされたクラウド データベース全体のレポート (プレビュー)Report across scaled-out cloud databases (preview)

1 つの接続ポイントから複数の Azure SQL データベースのレポートを作成するには、 エラスティック クエリを使用します。You can create reports from multiple Azure SQL databases from a single connection point using an elastic query. データベースは、行方向にパーティション分割する必要があります ("シャード化" とも呼ばれます)。The databases must be horizontally partitioned (also known as "sharded").

既存のデータベースがある場合は、 スケール アウトされたデータベースへの既存データベースの移行に関するページをご覧ください。If you have an existing database, see Migrating existing databases to scaled-out databases.

クエリに必要な SQL オブジェクトについては、 行方向にパーティション分割されたデータベース間のクエリに関するページをご覧ください。To understand the SQL objects needed to query, see Query across horizontally partitioned databases.

前提条件Prerequisites

「エラスティック データベース ツールの概要」に示されているサンプルをダウンロードして実行します。Download and run the Getting started with Elastic Database tools sample.

サンプル アプリケーションを使用してシャード マップ マネージャーを作成するCreate a shard map manager using the sample app

ここでは、シャード マップ マネージャーといくつかのシャードを作成し、シャードにデータを挿入します。Here you will create a shard map manager along with several shards, followed by insertion of data into the shards. シャードがすでにセットアップされ、シャード データが取り込まれている場合は、以下の手順を省略して、次のセクションに進むことができます。If you happen to already have shards setup with sharded data in them, you can skip the following steps and move to the next section.

  1. 「エラスティック データベース ツールの概要 」に示されているサンプル アプリケーションをビルドして実行します。Build and run the Getting started with Elastic Database tools sample application. セクション「サンプル アプリケーションのダウンロードと実行」の手順 7 まで実行します。Follow the steps until step 7 in the section Download and run the sample app. 手順 7 を終了すると、次のコマンド プロンプトが表示されます。At the end of Step 7, you will see the following command prompt:

    コマンド プロンプト

  2. コマンド ウィンドウで、「1」を入力し、Enter キーを押します。In the command window, type "1" and press Enter. シャード マップ マネージャーが作成され、2 つのシャードがサーバーに追加されます。This creates the shard map manager, and adds two shards to the server. 「3」を入力し、Enter キーを押します。この操作を 4 回を繰り返します。Then type "3" and press Enter; repeat the action four times. これにより、サンプルのデータ行がシャードに挿入されます。This inserts sample data rows in your shards.
  3. Azure Portal に、サーバー内の 3 つの新しいデータベースが表示されます。The Azure portal should show three new databases in your server:

    Visual Studio の確認

    この時点で、複数のデータベースにまたがるクエリは、エラスティック データベース クライアント ライブラリを介してサポートされます。At this point, cross-database queries are supported through the Elastic Database client libraries. たとえば、コマンド ウィンドウのオプション 4 を使用するとします。For example, use option 4 in the command window. マルチ シャード クエリの結果は常に、すべてのシャードからの結果に UNION ALL を適用したものとなります。The results from a multi-shard query are always a UNION ALL of the results from all shards.

    次のセクションでは、複数のシャードにまたがって実行されるデータの高度なクエリをサポートするサンプル データベース エンドポイントを作成します。In the next section, we create a sample database endpoint that supports richer querying of the data across shards.

エラスティック クエリ データベースを作成するCreate an elastic query database

  1. Azure Portal を開き、ログインします。Open the Azure portal and log in.
  2. シャード セットアップと同じサーバーに新しい Azure SQL Database を作成します。Create a new Azure SQL database in the same server as your shard setup. このデータベースに "ElasticDBQuery" という名前を付けます。Name the database "ElasticDBQuery."

    Azure ポータルと価格レベル

    注意

    既存のデータベースを使用できます。you can use an existing database. そうする場合、その既存のプレミアム データベースを、クエリの実行対象とするシャードに含めることはできません。If you can do so, it must not be one of the shards that you would like to execute your queries on. このデータベースは、エラスティック データベース クエリのメタデータ オブジェクトを作成するために使用されます。This database will be used for creating the metadata objects for an elastic database query.

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

データベース スコープのマスター キーと資格情報Database-scoped master key and credentials

これらを使用し、次の手順に従ってシャード マップ マネージャーとシャードに接続します。These are used to connect to the shard map manager and the shards:

  1. SQL Server Management Studio または Visual Studio の SQL Server Data Tools を開きます。Open SQL Server Management Studio or SQL Server Data Tools in Visual Studio.
  2. ElasticDBQuery データベースに接続し、次の T-SQL コマンドを実行します。Connect to ElasticDBQuery database and execute the following T-SQL commands:

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

    "username" と "password" は、「Elastic Database ツールの概要」の「サンプル アプリケーションのダウンロードと実行」の手順 6 で使用するログイン情報と同じである必要があります。"username" and "password" should be the same as login information used in step 6 of Download and run the sample app in Getting started with elastic database tools.

外部データ ソースExternal data sources

外部データ ソースを作成するには、ElasticDBQuery データベースで、次のコマンドを実行します。To create an external data source, execute the following command on the ElasticDBQuery database:

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" はシャード マップの名前となります。"CustomerIDShardMap" is the name of the shard map, if you created the shard map and shard map manager using the elastic database tools sample. ただし、このサンプルでカスタム セットアップを使用した場合は、アプリケーションで選択するシャード マップ名となります。However, if you used your custom setup for this sample, then it should be the shard map name you chose in your application.

外部テーブルExternal tables

シャード上の Customers テーブルと一致する外部テーブルを作成するには、ElasticDBQuery データベースに対して次のコマンドを実行します。Create an external table that matches the Customers table on the shards by executing the following command on ElasticDBQuery database:

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 クエリを実行するExecute a sample elastic database T-SQL query

外部データ ソースと外部テーブルを定義すると、外部テーブルに対して完全に T-SQL を使用できるようになります。Once you have defined your external data source and your external tables you can now use full T-SQL over your external tables.

ElasticDBQuery データベースでこのクエリを実行します。Execute this query on the ElasticDBQuery database:

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

クエリはすべてのシャードからの結果を集計し、次のように出力を表示します。You will notice that the query aggregates results from all the shards and gives the following output:

出力の詳細

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

クエリの結果は Excel ファイルにインポートすることができます。You can import the results from of a query to an Excel file.

  1. Excel 2013 を起動します。Launch Excel 2013.
  2. [データ] リボンに移動します。Navigate to the Data ribbon.
  3. [その他のデータ ソース] をクリックし、[SQL Server] をクリックします。Click From Other Sources and click From SQL Server.

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

  4. [データ接続ウィザード] で、サーバー名とログイン時の資格情報を入力します。In the Data Connection Wizard type the server name and login credentials. その後、 [次へ]をクリックします。Then click Next.
  5. [使用するデータが含まれているデータベースを選択] ダイアログ ボックスで、[ElasticDBQuery] データベースを選択します。In the dialog box Select the database that contains the data you want, select the ElasticDBQuery database.
  6. リスト ビューで [Customers] テーブルを選択し、[次へ] をクリックします。Select the Customers table in the list view and click Next. [完了]をクリックします。Then click Finish.
  7. [データのインポート] フォームの [このデータをブックでどのように表示するかを選択してください。] で、[テーブル] を選択し、[OK] をクリックします。In the Import Data form, under Select how you want to view this data in your workbook, select Table and click OK.

さまざまなシャードに格納されている、 [Customers] テーブルからのすべての行が Excel シートに読み込まれます。All the rows from Customers table, stored in different shards populate the Excel sheet.

これで Excel の強力なデータ視覚化機能を使用できるようになりました。You can now use Excel’s powerful data visualization functions. サーバー名、データベース名、および資格情報が含まれる接続文字列を使用して、BI とデータ統合ツールをエラスティック クエリ データベースに接続することができます。You can use the connection string with your server name, database name and credentials to connect your BI and data integration tools to the elastic query database. ご使用のツールのデータ ソースとして SQL Server がサポートされていることを確認してください。Make sure that SQL Server is supported as a data source for your tool. エラスティック クエリ データベースおよび外部テーブル (ツールを使用して接続するその他の SQL Server データベースおよび SQL Server テーブルのような) を参照できます。You can refer to the elastic query database and external tables just like any other SQL Server database and SQL Server tables that you would connect to with your tool.

コストCost

Elastic Database クエリ機能を使用する場合に追加の料金は発生しません。There is no additional charge for using the Elastic Database Query feature.

料金情報については、「 SQL Database の料金詳細」を参照してください。For pricing information see SQL Database Pricing Details.

次のステップNext steps