Jednotky datového skladu (DWU) pro vyhrazený fond SQL (dříve SQL DW) ve službě Azure Synapse Analytics

Tento dokument obsahuje doporučení k výběru ideálního počtu jednotek datového skladu (DWU) pro vyhrazený fond SQL (dříve SQL DW) pro optimalizaci ceny a výkonu a o tom, jak změnit počet jednotek.

Co jsou jednotky datového skladu

Vyhrazený fond SQL (dříve SQL DW) představuje kolekci analytických prostředků, které se zřizují. Analytické prostředky jsou definovány jako kombinace procesoru, paměti a vstupně-výstupních operací.

Tyto tři prostředky jsou spojeny do jednotek výpočetního škálování označovaného jako jednotky datového skladu (DWU). DWU představuje abstraktní normalizovanou míru výpočetních prostředků a výkonu.

Změna úrovně služeb změní počet jednotek DWU, které jsou k dispozici systému, což zase upraví výkon a náklady na váš systém.

Pokud chcete dosáhnout vyššího výkonu, můžete zvýšit počet jednotek datového skladu. Pokud chcete dosáhnout nižšího výkonu, snižte počet jednotek datového skladu. Náklady na úložiště a výpočetní prostředky se účtují zvlášť, takže změna jednotek datového skladu nemá vliv na náklady na úložiště.

Výkon jednotek datového skladu je založený na těchto metrikách úloh datového skladu:

  • Rychlost standardního vyhrazeného fondu SQL (dříve SQL DW) může prohledávat velký počet řádků a pak provádět složitou agregaci. Tato operace je náročná na vstupně-výstupní operace a procesor.
  • Jak rychle může vyhrazený fond SQL (dříve SQL DW) ingestovat data z objektů blob služby Azure Storage nebo Azure Data Lake. Tato operace je náročná na síť a procesor.
  • Jak rychle CREATE TABLE AS SELECT může příkaz T-SQL zkopírovat tabulku. Tato operace zahrnuje čtení dat z úložiště, jejich distribuci mezi uzly zařízení a opětovné zápis do úložiště. Tato operace je náročná na procesor, vstupně-výstupní operace a síť.

Zvýšení jednotek DWU:

  • Lineární změny výkonu systému pro prohledávání, agregace a příkazy CTAS
  • Zvyšuje počet čtenářů a zapisovačů pro operace načítání PolyBase.
  • Zvýší maximální počet souběžných dotazů a slotů souběžnosti.

Service Level Objective (cíl úrovně služby)

Cíl úrovně služby (SLO) je nastavení škálovatelnosti, které určuje úroveň nákladů a výkonu vyhrazeného fondu SQL (dříve SQL DW). Úrovně služeb pro vyhrazený fond SQL Gen2 (dříve SQL DW) se měří v jednotkách datového skladu (DWU), například DW2000c.

Poznámka:

Vyhrazený fond SQL (dříve SQL DW) Gen2 nedávno přidal další možnosti škálování, které podporují úrovně výpočetních prostředků až do DW100c. Stávající datové sklady aktuálně na Gen1, které vyžadují nižší úrovně výpočetních prostředků, se teď můžou upgradovat na Gen2 v oblastech, které jsou aktuálně dostupné bez dalších nákladů. Pokud vaše oblast ještě není podporovaná, můžete upgradovat na podporovanou oblast. Další informace najdete v tématu Upgrade na Gen2.

V T-SQL určuje nastavení SERVICE_OBJECTIVE úroveň služby a úroveň výkonu pro vyhrazený fond SQL (dříve SQL DW).

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

Úrovně výkonu a jednotky datového skladu

Každá úroveň výkonu používá pro jednotky datového skladu mírně odlišnou měrnou jednotku. Tento rozdíl se projeví na faktuře, protože jednotka škálování se přímo překládá na fakturaci.

  • Datové sklady Gen1 se měří v jednotkách datového skladu (DWU).
  • Datové sklady Gen2 se měří ve výpočetních jednotkách datového skladu (cDWU).

Jednotky DWU i cDWU podporují vertikální navýšení nebo snížení kapacity výpočetních prostředků a pozastavení výpočetních prostředků v případě, že nepotřebujete datový sklad používat. Všechny tyto operace jsou na vyžádání. Gen2 využívá mezipaměť založenou na místním disku na výpočetních uzlech ke zlepšení výkonu. Když systém škálujete nebo pozastavíte, mezipaměť se zneplatní, takže před dosažením optimálního výkonu se vyžaduje období zahřívání mezipaměti.

Limity kapacity

Každý SQL server (například myserver.database.windows.net) má kvótu jednotek DTU (Database Transaction Unit), která umožňuje určitý počet jednotek datového skladu. Další informace najdete v limitech kapacity správy úloh.

Kolik jednotek datového skladu potřebuji

Ideální počet jednotek datového skladu závisí velmi na vaší úloze a množství dat, která jste načetli do systému.

Postup pro nalezení nejvhodnější jednotky DWU pro vaši úlohu:

  1. Začněte tím, že vyberete menší DWU.

  2. Sledujte výkon aplikace při testování načítání dat do systému a sledujte počet jednotek DWU vybraných v porovnání s výkonem, který sledujete. Ověřte monitorováním využití prostředků.

  3. Identifikujte všechny další požadavky pro periodická období aktivity ve špičce. Úlohy, které zobrazují významné špičky a objemy v aktivitě, se můžou často škálovat.

Vyhrazený fond SQL (dříve SQL DW) je systém se škálováním na více systémů, který může zřizovat obrovské objemy výpočetních prostředků a dotazovat se na velikost dat.

Pokud chcete vidět jeho skutečné možnosti škálování, zejména u větších JEDNOTek DWU, doporučujeme škálovat sadu dat při škálování, abyste zajistili, že máte dostatek dat pro podávání procesorů. Pro testování škálování doporučujeme použít alespoň 1 TB.

Poznámka:

Výkon dotazů se zvyšuje pouze s větší paralelizací, pokud je možné rozdělit práci mezi výpočetní uzly. Pokud zjistíte, že škálování nemění výkon, možná budete muset vyladit návrh tabulky nebo dotazy. Pokyny k ladění dotazů najdete v tématu Správa uživatelských dotazů.

Oprávnění

Změna jednotek datového skladu vyžaduje oprávnění popsaná v alter DATABASE.

Předdefinované role Azure, jako je přispěvatel databáze SQL a Přispěvatel SQL Serveru, můžou měnit nastavení DWU.

Zobrazení aktuálního nastavení DWU

Zobrazení aktuálního nastavení DWU:

  1. Otevřete SQL Server Průzkumník objektů v sadě Visual Studio.
  2. Připojení k hlavní databázi přidružené k logickému SQL serveru.
  3. Vyberte z sys.database_service_objectives zobrazení dynamické správy. Zde je příklad:
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
;

Změna jednotek datového skladu

portál Azure

Změna jednotek DWU:

  1. Otevřete azure Portal, otevřete databázi a klikněte na Škálovat.

  2. V části Měřítko přesuňte posuvník doleva nebo doprava a změňte nastavení DWU.

  3. Klikněte na Uložit. Zobrazí se potvrzovací zpráva. Kliknutím na Ano ji potvrďte nebo ji kliknutím na Ne zrušte.

PowerShell

Poznámka:

Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Pokud chcete změnit jednotky DWU, použijte rutinu PowerShellu Set-AzSqlDatabase . Následující příklad nastaví cíl na úrovni služby DW1000 pro databázi MySQLDW hostovanou na serveru MyServer.

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

Další informace najdete v rutinách PowerShellu pro vyhrazený fond SQL (dříve SQL DW).

T-SQL

Pomocí T-SQL můžete zobrazit aktuální nastavení DWUsettings, změnit nastavení a zkontrolovat průběh.

Změna jednotek DWU:

  1. Připojení k hlavní databázi přidružené k vašemu serveru.
  2. Použijte příkaz ALTER DATABASE TSQL. Následující příklad nastaví cíl na úrovni služby dw1000c pro databázi MySQLDW.
ALTER DATABASE MySQLDW
MODIFY (SERVICE_OBJECTIVE = 'DW1000c')
;

Rozhraní REST API

Pokud chcete změnit jednotky DWU, použijte rozhraní REST API pro vytvoření nebo aktualizaci databáze . Následující příklad nastaví cíl na úrovni služby DW1000c pro databázi MySQLDW, která je hostována na serveru MyServer. Server je ve skupině prostředků Azure s názvem 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": "DW1000c"
    }
}

Další příklady rozhraní REST API najdete v tématu ROZHRANÍ REST API pro vyhrazený fond SQL (dříve SQL DW).

Kontrola stavu změn DWU

Dokončení změn DWU může trvat několik minut. Pokud provádíte automatické škálování, zvažte implementaci logiky, abyste před pokračováním v jiné akci zajistili dokončení určitých operací.

Kontrola stavu databáze prostřednictvím různých koncových bodů umožňuje správně implementovat automatizaci. Portál poskytuje oznámení po dokončení operace a aktuálního stavu databází, ale neumožňuje programovou kontrolu stavu.

Na webu Azure Portal nemůžete zkontrolovat stav databáze pro operace horizontálního navýšení kapacity.

Kontrola stavu změn DWU:

  1. Připojení k hlavní databázi přidružené k vašemu serveru.

  2. Odešlete následující dotaz a zkontrolujte stav databáze.

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

Toto zobrazení dynamické správy vrací informace o různých operacích správy ve vyhrazeném fondu SQL (dříve SQL DW), jako je operace a stav operace, která je buď IN_PROGRESS, nebo DOKONČENO.

Pracovní postup škálování

Když spustíte operaci škálování, systém nejprve ukonče všechny otevřené relace a vrátí zpět všechny otevřené transakce, aby byl zajištěn konzistentní stav. U operací škálování dochází ke škálování pouze po dokončení tohoto transakčního vrácení zpět.

  • V případě operace vertikálního navýšení kapacity systém odpojí všechny výpočetní uzly, zřídí další výpočetní uzly a pak se znovu připojí k vrstvě úložiště.
  • V případě operace vertikálního snížení kapacity systém odpojí všechny výpočetní uzly a pak znovu připojí pouze potřebné uzly k vrstvě úložiště.

Další kroky

Další informace o správě výkonu najdete v tématu Třídy prostředků pro správu úloh a limity paměti a souběžnosti.