Data Warehouse ユニット (DWU)Data Warehouse Units (DWUs)

最適な Data Warehouse ユニット (DWU) の数の選択についての推奨事項と、ユニットの数を変更する方法を示します。Recommendations on choosing the ideal number of data warehouse units (DWUs) to optimize price and performance, and how to change the number of units.

Data Warehouse ユニットとはWhat are Data Warehouse Units

Synapse SQL プールは、プロビジョニングされる分析リソースのコレクションを表します。A Synapse SQL pool represents a collection of analytic resources that are being provisioned. 分析リソースは、CPU、メモリ、および IO の組み合わせとして定義されます。Analytic resources are defined as a combination of CPU, memory, and IO.

これらの 3 つのリソースは、Data Warehouse ユニット (DWU) と呼ばれるコンピューティング スケールのユニットにバンドルされます。These three resources are bundled into units of compute scale called Data Warehouse Units (DWUs). DWU は、コンピューティング リソースとパフォーマンスの抽象的な正規化された単位を表します。A DWU represents an abstract, normalized measure of compute resources and performance.

サービス レベルを変更すると、システムで使用できる DWU の数が変更され、それによってさらにシステムのパフォーマンスやコストが調整されます。A change to your service level alters the number of DWUs that are available to the system, which in turn adjusts the performance, and the cost, of your system.

パフォーマンス向上のために、Data Warehouse ユニットの数を増やすことができます。For higher performance, you can increase the number of data warehouse units. パフォーマンスを低下させるには、Data Warehouse ユニットの数を減らします。For less performance, reduce data warehouse units. ストレージのコストとコンピューティングのコストは、別々に請求されます。したがって、Data Warehouse ユニットの数を変更してもストレージ コストには影響しません。Storage and compute costs are billed separately, so changing data warehouse units does not affect storage costs.

Data Warehouse ユニットのパフォーマンスは、次のようなデータ ウェアハウスのワークロードのメトリックに基づいています。Performance for data warehouse units is based on these data warehouse workload metrics:

  • 標準的な SQL プール クエリがどれだけ速く多数の行をスキャンし、次に複雑な集計を実行できるか。How fast a standard SQL pool query can scan a large number of rows and then perform a complex aggregation. これは I/O と CPU を集中的に使用する操作です。This operation is I/O and CPU intensive.
  • SQL プールがどれだけ速く Azure Storage BLOB または Azure Data Lake からデータを取り込むことができるか。How fast the SQL pool can ingest data from Azure Storage Blobs or Azure Data Lake. これはネットワークと CPU を集中的に使用する操作です。This operation is network and CPU intensive.
  • CREATE TABLE AS SELECT T-SQL コマンドがどれだけ速くテーブルをコピーできるか。How fast the CREATE TABLE AS SELECT T-SQL command can copy a table. この操作には、ストレージからのデータの読み取り、アプライアンスのノード間でのデータ分散、ストレージへのデータの再書き込みが必要です。This operation involves reading data from storage, distributing it across the nodes of the appliance and writing to storage again. これは CPU、IO、ネットワークを集中的に使用する操作です。This operation is CPU, IO, and network intensive.

DWU の数を増やすと、次のメリットが得られます。Increasing DWUs:

  • スキャン、集計、CTAS ステートメントに関するシステムのパフォーマンスが直線的に向上します。Linearly changes performance of the system for scans, aggregations, and CTAS statements
  • PolyBase の読み込み操作のリーダーとライターの数が増えます。Increases the number of readers and writers for PolyBase load operations
  • コンカレント クエリとコンカレンシー スロットの最大数が増えます。Increases the maximum number of concurrent queries and concurrency slots.

サービス レベル目標Service Level Objective

サービス レベル目標 (SLO) は、データ ウェアハウスのコストとパフォーマンス レベルを決定するスケーラビリティ設定です。The Service Level Objective (SLO) is the scalability setting that determines the cost and performance level of your data warehouse. Gen2 用のサービス レベルは、コンピューティング データ ウェアハウス単位 (cDWU) で測定されます (例: DW2000c)。The service levels for Gen2 are measured in compute data warehouse units (cDWU), for example DW2000c. Gen1 サービス レベルは DWU の単位で計測されます (例: DW2000)。Gen1 service levels are measured in DWUs, for example DW2000.

サービス レベル目標 (SLO) は、SQL プール のコストとパフォーマンス レベルを決定するスケーラビリティ設定です。The Service Level Objective (SLO) is the scalability setting that determines the cost and performance level of your SQL pool. Gen2 SQL プールのサービス レベルは、DW2000c など、Data Warehouse ユニット (DWU) で測定されます。The service levels for Gen2 SQL pool are measured in data warehouse units (DWU), for example DW2000c.

注意

Azure Synapse Analytics Gen2 には、最近になって、最低 100 cDWU のコンピューティング レベルをサポートするための新しいスケール機能が追加されました。Azure Synapse Analytics Gen2 recently added additional scale capabilities to support compute tiers as low as 100 cDWU. 現在 Gen1 を使用していて小さいコンピューティング レベルを必要とする既存のデータ ウェアハウスでは、現在追加コストなしで利用可能なリージョンで Gen2 にアップグレードできます。Existing data warehouses currently on Gen1 that require the lower compute tiers can now upgrade to Gen2 in the regions that are currently available for no additional cost. お使いのリージョンがまだサポートされていない場合は、サポートされているリージョンにアップグレードできます。If your region is not yet supported, you can still upgrade to a supported region. 詳細については、Gen2 へのアップグレードに関するページを参照してください。For more information, see Upgrade to Gen2.

T-SQL では、SERVICE_OBJECTIVE 設定によって SQL プールのサービス レベルとパフォーマンス レベルが決定されます。In T-SQL, the SERVICE_OBJECTIVE setting determines the service level and the performance tier for your SQL pool.

CREATE DATABASE mySQLDW
(Edition = 'Datawarehouse'
 ,SERVICE_OBJECTIVE = 'DW1000c'
)
;

パフォーマンス レベルと Data Warehouse ユニットPerformance Tiers and Data Warehouse Units

各パフォーマンス レベルで、Data Warehouse ユニットの測定単位は若干異なります。Each performance tier uses a slightly different unit of measure for their data warehouse units. スケールの単位は課金に直接つながるため、この違いは請求書に反映されます。This difference is reflected on the invoice as the unit of scale directly translates to billing.

  • Gen1 データ ウェアハウスは、データ ウェアハウス単位 (DWU) で測定されます。Gen1 data warehouses are measured in Data Warehouse Units (DWUs).
  • Gen2 データ ウェアハウスは、コンピューティング データ ウェアハウス単位 (cDWU) で測定されます。Gen2 data warehouses are measured in compute Data Warehouse Units (cDWUs).

DWU と cDWU はいずれも、コンピューティングのスケール アップとスケール ダウン、データ ウェアハウスの使用が不要になった場合のコンピューティングの一時停止をサポートしています。Both DWUs and cDWUs support scaling compute up or down, and pausing compute when you don't need to use the data warehouse. これらの操作はすべて、オンデマンドで実行できます。These operations are all on-demand. Gen2 では、パフォーマンス向上のためにコンピューティング ノードでのローカル ディスク ベースのキャッシュを使用します。Gen2 uses a local disk-based cache on the compute nodes to improve performance. スケール操作やシステムの一時停止を行うと、このキャッシュが無効化されるため、最適なパフォーマンスを実現する前にキャッシュの準備期間が必要となります。When you scale or pause the system, the cache is invalidated and so a period of cache warming is required before optimal performance is achieved.

各 SQL Server (たとえば myserver.database.windows.net) には、特定の数の Data Warehouse ユニットを許可するデータベース トランザクション ユニット (DTU) クォータがあります。Each SQL server (for example, myserver.database.windows.net) has a Database Transaction Unit (DTU) quota that allows a specific number of data warehouse units. 詳細については、ワークロード管理の容量制限に関する記事を参照してください。For more information, see the workload management capacity limits.

容量制限Capacity limits

各 SQL Server (たとえば myserver.database.windows.net) には、特定の数の Data Warehouse ユニットを許可するデータベース トランザクション ユニット (DTU) クォータがあります。Each SQL server (for example, myserver.database.windows.net) has a Database Transaction Unit (DTU) quota that allows a specific number of data warehouse units. 詳細については、ワークロード管理の容量制限に関する記事を参照してください。For more information, see the workload management capacity limits.

必要な Data Warehouse ユニットの数How many data warehouse units do I need

理想的な Data Warehouse ユニットの数は、ワークロードと、システムに読み込まれているデータの量に大きく依存します。The ideal number of data warehouse units depends very much on your workload and the amount of data you have loaded into the system.

ワークロードに最適な DWU を特定する手順は次のとおりです。Steps for finding the best DWU for your workload:

  1. 最初に小さな DWU を選択します。Begin by selecting a smaller DWU.
  2. システムへのデータの読み込みをテストする際に、アプリケーションのパフォーマンスを監視し、選択した DWU の数に対するパフォーマンスの変化を観察します。Monitor your application performance as you test data loads into the system, observing the number of DWUs selected compared to the performance you observe.
  3. 定期的なピーク アクティビティ期間のための追加要件があれば識別します。Identify any additional requirements for periodic periods of peak activity. アクティビティに顕著なピークと谷があることを示すワークロードには、頻繁なスケーリングが必要になる場合があります。Workloads that show significant peaks and troughs in activity may need to be scaled frequently.

SQL プールは、大量のコンピューティングをプロビジョニングし、相当な量のデータにクエリを実行できるスケールアウト システムです。SQL pool is a scale-out system that can provision vast amounts of compute and query sizeable quantities of data.

特に大規模な DWU での実際のスケール機能を確認する場合は、CPU に十分なデータをフィードできるように、スケール時のデータ セットのスケールを決定してください。To see its true capabilities for scaling, especially at larger DWUs, we recommend scaling the data set as you scale to ensure that you have enough data to feed the CPUs. スケールのテストでは、少なくとも 1 TB を使用することをお勧めします。For scale testing, we recommend using at least 1 TB.

注意

コンピューティング ノード間で作業を分割することができる場合、クエリのパフォーマンスを引き上げるには、並列処理を増やすしかありません。Query performance only increases with more parallelization if the work can be split between compute nodes. スケーリングしてもパフォーマンスが変わらない場合は、テーブルのデザインやクエリのチューニングが必要な可能性があります。If you find that scaling is not changing your performance, you may need to tune your table design and/or your queries. クエリのチューニングの概要については、ユーザー クエリの管理に関するページを参照してください。For query tuning guidance, see Manage user queries.

アクセス許可Permissions

Data Warehouse ユニットを変更するには、「ALTER DATABASE」で説明されているアクセス許可が必要です。Changing the data warehouse units requires the permissions described in ALTER DATABASE.

SQL DB 共同作成者や SQL Server 共同作成者などの Azure 組み込みロールで DWU 設定を変更できます。Azure built-in roles such as SQL DB Contributor and SQL Server Contributor can change DWU settings.

現在の DWU 設定の表示View current DWU settings

現在の DWU 設定を表示するには、次の手順に従います。To view the current DWU setting:

  1. Visual Studio で SQL Server オブジェクト エクスプローラーを開きます。Open SQL Server Object Explorer in Visual Studio.
  2. 論理 SQL サーバーに関連付けられている master データベースに接続します。Connect to the master database associated with the logical SQL server.
  3. sys.database_service_objectives 動的管理ビューから選択します。Select from the sys.database_service_objectives dynamic management view. たとえば次のようになります。Here is an example:
SELECT  db.name [Database]
,        ds.edition [Edition]
,        ds.service_objective [Service Objective]
FROM    sys.database_service_objectives   AS ds
JOIN    sys.databases                     AS db ON ds.database_id = db.database_id
;

Data Warehouse ユニットの変更Change data warehouse units

Azure portalAzure portal

DWU を変更するには、次の手順に従います。To change DWUs:

  1. Azure Portal を開き、データベースを開いて、 [スケール] をクリックします。Open the Azure portal, open your database, and click Scale.

  2. [スケール] で、スライダーを左または右に移動して DWU 設定を変更します。Under Scale, move the slider left or right to change the DWU setting.

  3. [保存] をクリックします。Click Save. 確認メッセージが表示されます。A confirmation message appears. [はい] をクリックして確定します。キャンセルするには、 [いいえ] をクリックします。Click yes to confirm or no to cancel.

PowerShellPowerShell

注意

この記事は、新しい Azure PowerShell Az モジュールを使用するために更新されました。This article has been updated to use the new Azure PowerShell Az module. AzureRM モジュールはまだ使用でき、少なくとも 2020 年 12 月までは引き続きバグ修正が行われます。You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Az モジュールと AzureRM の互換性の詳細については、「Introducing the new Azure PowerShell Az module (新しい Azure PowerShell Az モジュールの概要)」を参照してください。To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Az モジュールのインストール手順については、Azure PowerShell のインストールを参照してください。For Az module installation instructions, see Install Azure PowerShell.

DWU を変更するには、Set-AzSqlDatabase PowerShell コマンドレットを使用します。To change the DWUs, use the Set-AzSqlDatabase PowerShell cmdlet. 次の例では、MyServer サーバーにホストされているデータベース MySQLDW のサービスレベル目標を DW1000 に設定します。The following example sets the service level objective to DW1000 for the database MySQLDW that is hosted on server MyServer.

Set-AzSqlDatabase -DatabaseName "MySQLDW" -ServerName "MyServer" -RequestedServiceObjectiveName "DW1000c"

詳細については、Azure Synapse Analytics の PowerShell コマンドレットに関するページを参照してください。For more information, see PowerShell cmdlets for Azure Synapse Analytics

T-SQLT-SQL

T-SQL で現在の DWU の設定を表示したり、設定を変更したり、進行状況を確認したりできます。With T-SQL you can view the current DWUsettings, change the settings, and check the progress.

DWU を変更するには、次の手順に従います。To change the DWUs:

  1. サーバーに関連付けられている master データベースに接続します。Connect to the master database associated with your server.
  2. ALTER DATABASE TSQL ステートメントを使います。Use the ALTER DATABASE TSQL statement. 次の例では、MySQLDW データベースのサービス レベル目標を DW1000c に設定します。The following example sets the service level objective to DW1000c for the database MySQLDW.
ALTER DATABASE MySQLDW
MODIFY (SERVICE_OBJECTIVE = 'DW1000c')
;

REST APIREST APIs

DWU を変更するには、データベースの作成または更新 REST API を使います。To change the DWUs, use the Create or Update Database REST API. 次の例では、サーバー MyServer でホストされているデータベース MySQLDW のサービス レベル目標を DW1000c に設定します。The following example sets the service level objective to DW1000c for the database MySQLDW, which is hosted on server MyServer. サーバーは "ResourceGroup1" という名前の Asure リソース グループ内にあります。The server is in an Azure resource group named ResourceGroup1.

PUT https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Sql/servers/{server-name}/databases/{database-name}?api-version=2014-04-01-preview HTTP/1.1
Content-Type: application/json; charset=UTF-8

{
    "properties": {
        "requestedServiceObjectiveName": DW1000
    }
}

REST API のその他の例については、Azure Synapse Analytics の REST API に関する記事を参照してください。For more REST API examples, see REST APIs for Azure Synapse Analytics.

DWU 変更の状態の確認Check status of DWU changes

DWU の変更は、完了までに数分かかる場合があります。DWU changes may take several minutes to complete. スケーリングを自動的に行う場合は、別のアクションに進む前に特定の操作が完了していることを確認するロジックを実装することを検討してください。If you are scaling automatically, consider implementing logic to ensure that certain operations have been completed before proceeding with another action.

さまざまなエンドポイントを通じてデータベースの状態を確認することで、自動化を適切に実装できます。Checking the database state through various endpoints allows you to correctly implement automation. ポータルでは、操作の完了通知とデータベースの現在の状態が提供されます。ただし、プログラムを使って状態を確認することはできません。The portal provides notification upon completion of an operation and the databases current state but does not allow for programmatic checking of state.

Azure Portal でスケールアウト操作のデータベースの状態を確認することはできません。You cannot check the database state for scale-out operations with the Azure portal.

DWU の変更の状態を確認するには、次の手順に従います。To check the status of DWU changes:

  1. サーバーに関連付けられている master データベースに接続します。Connect to the master database associated with your server.
  2. 次のクエリを送信して、データベースの状態を確認します。Submit the following query to check database state.
SELECT    *
FROM      sys.databases
;
  1. 次のクエリを送信して、操作の状態を確認します。Submit the following query to check status of operation

    SELECT    *
    FROM      sys.dm_operation_status
    WHERE     resource_type_desc = 'Database'
    AND       major_resource_id = 'MySQLDW'
    ;
    

この DMV は、操作や操作の状態 (IN_PROGRESS または COMPLETED のどちらか) などの SQL プールに対するさまざまな管理操作に関する情報を返します。This DMV returns information about various management operations on your SQL pool such as the operation and the state of the operation, which is either IN_PROGRESS or COMPLETED.

スケーリングのワークフローThe scaling workflow

スケール操作を開始すると、システムはまず、すべての開いているセッションを強制終了し、すべての開いているトランザクションをロールバックして整合性のある状態を確保します。When you start a scale operation, the system first kills all open sessions, rolling back any open transactions to ensure a consistent state. スケール操作の場合、このトランザクションのロールバックが完了した後でのみスケーリングが行われます。For scale operations, scaling only occurs after this transactional rollback has completed.

  • スケールアップ操作の場合、システムはすべてのコンピューティング ノードをデタッチし、追加のコンピューティング ノードをプロビジョニングした後、ストレージ レイヤーに再アタッチします。For a scale-up operation, the system detaches all compute nodes, provisions the additional compute nodes, and then reattaches to the storage layer.
  • スケールダウン操作の場合、システムはすべてのコンピューティング ノードをデタッチした後、必要なノードのみをストレージ レイヤーに再アタッチします。For a scale-down operation, the system detaches all compute nodes and then reattaches only the needed nodes to the storage layer.

次のステップNext steps

パフォーマンスの管理の詳細については、ワークロード管理用のリソース クラスと、メモリとコンカレンシーの制限に関するページを参照してください。To learn more about managing performance, see Resource classes for workload management and Memory and concurrency limits.