Sdílet prostřednictvím


Spotřeba prostředků Synapse SQL

Tento článek popisuje modely spotřeby prostředků Synapse SQL.

Bezserverový SQL pool

Serverless SQL pool is a pay per query service that doesn't require you to pick the right size. 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í.

Dedikovaný SQL pool - Jednotky datového skladu (DWUs) a výpočetní jednotky datového skladu (cDWUs)

Doporučení k výběru ideálního počtu jednotek datového skladu (DWU) pro optimalizaci ceny a výkonu a o tom, jak změnit počet jednotek.

Jednotky datového skladu

A Synapse SQL pool represents a collection of analytic resources that are being provisioned. 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žby změní počet jednotek DWU, které jsou pro systém dostupné. Tato změna 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í samostatně, 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:

  • Jak rychle může standardní dotaz datového skladu 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 může příkaz T-SQL CREATE TABLE AS SELECT 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íť.

Zvyšování DWUs:

  • Lineárně mění výkon systému při skenování, agregacích a výkazech CTAS.
  • Increases the number of readers and writers for PolyBase load operations
  • Zvyšuje maximální počet současně prováděných dotazů a konkurenčních slotů.

Cíl úrovně služby

Cíl úrovně služeb (SLO) je nastavení škálovatelnosti, které určuje úroveň nákladů a 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žeb Gen1 se měří v jednotkách DWU, například DW2000.

Cíl úrovně služeb (SLO) je nastavení škálovatelnosti, které určuje úroveň nákladů a 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řidal další možnosti škálování, které podporují úrovně výpočetních prostředků od 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 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.

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.

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

Limity kapacity

Každý SQL server (například myserver.database.windows.net) má kvótu jednotky databázové transakce (DTU), která umožňuje určitý počet jednotek datového skladu. For more information, see the workload management capacity limits.

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

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.

Kroky k nalezení nejlepšího DWU pro vaši pracovní zátěž:

  1. Začněte výběrem menšího 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.
  3. Identifikujte všechny další požadavky pro periodická období aktivity ve špičce. Pracovní zatížení, která vykazují význačné špičky a propady v aktivitě, mohou potřebovat časté škálování.

SQL pool is a scale-out system that can provision vast amounts of compute and query sizeable quantities of data. 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ů.

Dovolení

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 Průzkumník objektů SQL Serveru v sadě Visual Studio.
  2. Připojte se k hlavní databázi přidružené k logickému SERVERU SQL.
  3. Select from the sys.database_service_objectives dynamic management view. Tady 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

Pro změnu jednotek DWU:

  1. Otevřete Azure Portal, otevřete databázi a vyberte Škálovat.

  2. Under Scale, move the slider left or right to change the DWU setting.

  3. Vyberte Uložit. Zobrazí se potvrzovací zpráva. Pokud chcete potvrdit nebo ne zrušit, vyberte ano.

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.

Pro změnu jednotek DWU použijte cmdlet PowerShell 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 Azure Synapse Analytics.

T-SQL

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

Chcete-li změnit DWUs:

  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 na úrovni služby dw1000c pro databázi MySQLDW.
ALTER DATABASE MySQLDW
MODIFY (SERVICE_OBJECTIVE = 'DW1000c')
;

API rozhraní REST

Pokud chcete změnit jednotky DWU, použijte rozhraní Create or Update Database REST API. Následující příklad nastaví cíl na úrovni služby dw1000c pro databázi MySQLDW, která je hostovaná 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 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.

Pro kontrolu 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 a zkontrolujte stav databáze.
SELECT    *
FROM      sys.databases
;
  1. Odesláním následujícího dotazu zkontrolujte stav operace.
SELECT    *
FROM      sys.dm_operation_status
WHERE     resource_type_desc = 'Database'
AND       major_resource_id = 'MySQLDW'
;

This DMV returns information about various management operations on your dedicated SQL pool such as the operation and the state of the operation, which is either IN_PROGRESS or COMPLETED.

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. For scale operations, scaling only occurs after this transactional rollback has completed.

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