Využití prostředků Synapse SQL

Tento článek popisuje modely využití prostředků synapse SQL.

Bezserverový fond SQL

Bezserverový fond SQL je platba za dotazovací službu, která nevyžaduje, abyste vybrali správnou velikost. Systém se automaticky přizpůsobí vašim požadavkům, abyste nemuseli spravovat infrastrukturu a vybírat správnou velikost pro své řešení.

Vyhrazený fond SQL – jednotky Data Warehouse (DWU) a jednotky Data Warehouse výpočetních prostředků (cDWU)

Doporučení pro volbu ideálního počtu jednotek datového skladu (DWU) pro optimalizaci ceny a výkonu a postup změny počtu jednotek

Jednotky datového skladu

Fond Synapse SQL 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 sbalené do jednotek výpočetního škálování označovaných jako Data Warehouse jednotky (DWU). DWU představuje abstraktní normalizovanou míru výpočetních prostředků a výkonu. Změna úrovně služby změní počet jednotek DWU, které jsou k dispozici pro systém. Tato změna zase upraví výkon a náklady vašeho systému.

Pro vyšší výkon můžete zvýšit počet jednotek datového skladu. Pokud chcete snížit výkon, 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 vychází z těchto metrik úloh datového skladu:

  • Jak rychle může standardní dotaz na datové sklady 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 datový sklad 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ápisy do úložiště. Tato operace je náročná na procesor, vstupně-výstupní operace a síť.

Zvýšení počtu jednotek DWU:

  • Lineárně mění výkon systému pro kontroly, agregace a příkazy CTAS
  • Zvyšuje počet čteček a zapisovačů pro operace načítání PolyBase.
  • Zvyšuje 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 náklady a úroveň výkonu datového skladu. Úrovně služeb pro Gen2 se měří v jednotkách výpočetního datového skladu (cDWU), například DW2000c. Úrovně služby Gen1 se měří v jednotkách DWU, například DW2000.

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

Poznámka

Azure Synapse Analytics Gen2 nedávno přidala další možnosti škálování pro podporu úrovní výpočetních prostředků až na 100 cDWU. 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 stále upgradovat na podporovanou oblast. Další informace najdete v tématu Upgrade na Gen2.

Nastavení SERVICE_OBJECTIVE v T-SQL určuje úroveň služby a úroveň výkonu pro vyhrazený fond SQL.

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

Úrovně výkonu a jednotky Data Warehouse

Každá úroveň výkonu používá pro své 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 Data Warehouse (DWU).
  • Datové sklady Gen2 se měří v jednotkách výpočetních Data Warehouse (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ů, když nepotřebujete používat datový sklad. Všechny tyto operace jsou na vyžádání. Gen2 používá ke zlepšení výkonu mezipaměť založenou na místním disku na výpočetních uzlech. Když škálujete nebo pozastavíte systém, mezipaměť se zneplatní, takže před dosažením optimálního výkonu se vyžaduje období zahřívání mezipaměti.

Při zvyšování jednotek datového skladu lineárně zvyšujete výpočetní prostředky. Gen2 poskytuje nejlepší výkon dotazů a nejvyšší škálování. Systémy Gen2 také nejvíce využívají mezipaměť.

Omezení kapacity

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

Posouzení potřebného počtu jednotek datového skladu

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

Postup, jak najít nejlepší dwu pro vaši úlohu:

  1. Začněte výběrem menší dwu.
  2. Monitorujte výkon aplikace při testování načítání dat do systému a sledujte počet vybraných jednotek DWU v porovnání s výkonem, který pozorujete.
  3. Identifikujte všechny další požadavky pro periodická období aktivity ve špičce. Úlohy, které vykazují významné špičky a koryto v aktivitě, může být potřeba škálovat často.

Fond SQL je systém se škálováním na více systémů, který dokáže zřizovat obrovské objemy výpočetních prostředků a dotazovat se na velké objemy dat. Pokud chcete zobrazit skutečné možnosti škálování, zejména u větších jednotek DWU, doporučujeme škálovat datovou sadu při škálování, abyste měli dostatek dat pro zpracová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é práci rozdělit 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 tématu ALTER DATABASE.

Předdefinované role Azure, jako jsou přispěvatel DATABÁZE SQL a přispěvatel SQL Server, 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řipojte se k hlavní databázi přidružené k logickému sql serveru.
  3. Vyberte v zobrazení dynamické správy sys.database_service_objectives. Zde naleznete 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 vyberte Škálovat.

  2. V části Měřítko změňte nastavení DWU posunutím posuvníku doleva nebo doprava.

  3. Vyberte Uložit. Zobrazí se potvrzovací zpráva. Výběrem možnosti Ano potvrďte nebo ne , pokud chcete akci zrušit.

PowerShell

Poznámka

K interakci s Azure doporučujeme použít modul Azure Az PowerShell. 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 tématu Rutiny PowerShellu pro Azure Synapse Analytics.

T-SQL

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

Změna jednotek DWU:

  1. Připojte se 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 úrovně služby pro databázi MySQLDW na DW1000c.
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": DW1000
    }
}

Další příklady rozhraní REST API najdete v tématu Rozhraní REST API pro Azure Synapse Analytics.

Kontrola stavu změn DWU

Dokončení změn DWU může trvat několik minut. Pokud škálování provádíte automaticky, zvažte implementaci logiky, která zajistí, že se určité operace dokončily, než budete pokračovat v jiné akci.

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

Pomocí Azure Portal nemůžete zkontrolovat stav databáze pro operace škálování na více instancí.

Kontrola stavu změn DWU:

  1. Připojte se k hlavní databázi přidružené k vašemu serveru.
  2. Odešlete následující dotaz ke kontrole stavu databáze.
SELECT    *
FROM      sys.databases
;
  1. Odešlete následující dotaz ke kontrole stavu operace.
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, jako je operace a stav operace, která je IN_PROGRESS nebo DOKONČENA.

Pracovní postup škálování

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

  • Při operaci 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ě.
  • Při operaci 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 Omezení paměti a souběžnosti.