Udostępnij za pośrednictwem


Użycie zasobów usługi Synapse SQL

W tym artykule opisano modele użycia zasobów usługi Synapse SQL.

Bezserwerowa pula SQL

Bezserwerowa pula SQL to usługa płatności za zapytanie, która nie wymaga wybrania odpowiedniego rozmiaru. System dostosowuje go automatycznie na podstawie wymagań, uwalniając Cię od konieczności zarządzania infrastrukturą i wybierania odpowiedniego rozmiaru dla danego rozwiązania.

Dedykowana pula SQL — jednostki magazynu danych (DWU) i obliczeniowe jednostki magazynu danych (cDWU)

Rekomendacje wyboru idealnej liczby jednostek magazynu danych (DWU), aby zoptymalizować cenę i wydajność oraz jak zmienić liczbę jednostek.

Jednostki magazynu danych

Pula SQL usługi Synapse reprezentuje kolekcję aprowizowanych zasobów analitycznych. Zasoby analityczne są definiowane jako kombinacja procesora CPU, pamięci i operacji we/wy. Te trzy zasoby są połączone w jednostki skali obliczeniowej o nazwie Jednostki magazynu danych (DWU). Jednostka DWU to abstrakcyjna, znormalizowana miara zasobów obliczeniowych i wydajności. Zmiana poziomu usługi zmienia liczbę jednostek DWU, które są dostępne dla systemu. Z kolei ta zmiana dostosowuje wydajność i koszty systemu.

W celu zwiększenia wydajności można zwiększyć liczbę jednostek magazynu danych. Aby uzyskać mniejszą wydajność, zmniejsz liczbę jednostek magazynu danych. Koszty magazynu i mocy obliczeniowej są rozliczane osobno, więc zmiana liczby jednostek magazynu danych nie ma wpływu na koszty magazynu.

Wydajność jednostek magazynu danych jest oparta na następujących metrykach obciążenia magazynu danych:

  • Jak szybko standardowe zapytanie magazynowania danych może skanować dużą liczbę wierszy, a następnie wykonywać złożone agregacje. Ta operacja wymaga dużej ilości operacji we/wy i procesora CPU.
  • Jak szybko magazyn danych może pozyskiwać dane z obiektów blob usługi Azure Storage lub usługi Azure Data Lake. Ta operacja jest intensywnie obciążana przez sieć i procesor CPU.
  • Jak szybko CREATE TABLE AS SELECT polecenie T-SQL może skopiować tabelę. Ta operacja obejmuje odczytywanie danych z magazynu, dystrybucję ich między węzły urządzenia i ponowne zapisywanie w magazynie. Ta operacja jest intensywnie obciążana procesorem CPU, operacjami we/wy i siecią.

Zwiększanie liczby jednostek DWU:

  • Liniowo zmienia wydajność systemu na potrzeby skanowania, agregacji i instrukcji CTAS
  • Zwiększa liczbę czytników i składników zapisywania dla operacji ładowania technologii PolyBase
  • Zwiększa maksymalną liczbę współbieżnych zapytań i gniazd współbieżności.

Cel poziomu usług

Cel poziomu usług (SLO) to ustawienie skalowalności, które określa koszt i poziom wydajności magazynu danych. Poziomy usług dla gen2 są mierzone w jednostkach magazynu danych obliczeniowych (cDWU), na przykład DW2000c. Poziomy usługi Gen1 są mierzone w jednostkach DWU, na przykład DW2000.

Cel poziomu usług (SLO) to ustawienie skalowalności, które określa koszt i poziom wydajności magazynu danych. Poziomy usług dla dedykowanej puli SQL gen2 są mierzone w jednostkach magazynu danych (DWU), na przykład DW2000c.

Uwaga

Usługa Azure Synapse Analytics Gen2 dodała ostatnio dodatkowe możliwości skalowania do obsługi warstw obliczeniowych nawet o 100 cDWU. Istniejące magazyny danych obecnie w usłudze Gen1, które wymagają niższych warstw obliczeniowych, mogą teraz przejść do wersji Gen2 w regionach, które są obecnie dostępne bez dodatkowych kosztów. Jeśli region nie jest jeszcze obsługiwany, nadal możesz uaktualnić go do obsługiwanego regionu. Aby uzyskać więcej informacji, zobacz Uaktualnianie do wersji Gen2.

W języku T-SQL ustawienie SERVICE_OBJECTIVE określa poziom usługi i warstwę wydajności dedykowanej puli SQL.

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

Warstwy wydajności i jednostki magazynu danych

Każda warstwa wydajności używa nieco innej jednostki miary dla jednostek magazynu danych. Ta różnica jest odzwierciedlana na fakturze, ponieważ jednostka skalowania bezpośrednio przekłada się na rozliczenia.

  • Magazyny danych Gen1 są mierzone w jednostkach magazynu danych (DWU).
  • Magazyny danych gen2 są mierzone w jednostkach magazynu danych obliczeniowych (cDWU).

Jednostki DWU i cDWU obsługują skalowanie zasobów obliczeniowych w górę lub w dół oraz wstrzymując zasoby obliczeniowe, gdy nie trzeba używać magazynu danych. Te operacje są wykonywane na żądanie. Usługa Gen2 używa lokalnej pamięci podręcznej opartej na dysku na węzłach obliczeniowych, aby zwiększyć wydajność. Podczas skalowania lub wstrzymywania systemu pamięć podręczna jest unieważniona, dlatego przed osiągnięciem optymalnej wydajności wymagana jest okres ocieplenia pamięci podręcznej.

W miarę zwiększania liczby jednostek magazynu danych zwiększasz liniowo zasoby obliczeniowe. Gen2 zapewnia najlepszą wydajność zapytań i najwyższą skalę. Systemy Gen2 również korzystają z pamięci podręcznej.

Limity pojemności

Każdy serwer SQL (na przykład myserver.database.windows.net) ma limit przydziału jednostki transakcji bazy danych (DTU), który umożliwia określoną liczbę jednostek magazynu danych. Aby uzyskać więcej informacji, zobacz Limity wydajności zarządzania obciążeniami.

Ocena liczby potrzebnych jednostek magazynu danych

Idealna liczba jednostek magazynu danych zależy bardzo od obciążenia i ilości danych załadowanych do systemu.

Procedura znajdowania najlepszych jednostek DWU dla obciążenia:

  1. Zacznij od wybrania mniejszej jednostek DWU.
  2. Monitoruj wydajność aplikacji podczas testowania ładowania danych do systemu, obserwując liczbę wybranych jednostek DWU w porównaniu z obserwowaną wydajnością.
  3. Zidentyfikuj wszelkie dodatkowe wymagania dotyczące okresowych okresów szczytowej aktywności. Obciążenia, które pokazują znaczne szczyty i koryta w działaniu, mogą być często skalowane.

Pula SQL to system skalowalny w poziomie, który może aprowizować ogromne ilości zasobów obliczeniowych i zapytań o znaczne ilości danych. Aby zobaczyć prawdziwe możliwości skalowania, szczególnie w przypadku większych jednostek DWU, zalecamy skalowanie zestawu danych podczas skalowania, aby upewnić się, że masz wystarczającą ilość danych do źródła procesorów. W przypadku testowania skalowania zalecamy użycie co najmniej 1 TB.

Uwaga

Wydajność zapytań zwiększa się tylko z większą równoległacją, jeśli praca może zostać podzielona między węzły obliczeniowe. Jeśli okaże się, że skalowanie nie zmienia wydajności, może być konieczne dostosowanie projektu tabeli i/lub zapytań. Aby uzyskać wskazówki dotyczące dostrajania zapytań, zobacz Zarządzanie zapytaniami użytkowników.

Uprawnienia

Zmiana jednostek magazynu danych wymaga uprawnień opisanych w artykule ALTER DATABASE.

Wbudowane role platformy Azure, takie jak współautor bazy danych SQL i współautor programu SQL Server, mogą zmieniać ustawienia jednostek DWU.

Wyświetlanie bieżących ustawień jednostek DWU

Aby wyświetlić bieżące ustawienie jednostek DWU:

  1. Otwórz Eksplorator obiektów programu SQL Server w programie Visual Studio.
  2. Połączenie do głównej bazy danych skojarzonej z logicznym serwerem SQL.
  3. Wybierz z widoku dynamicznego zarządzania sys.database_service_objectives. Oto przykład:
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
;

Zmienianie jednostek magazynu danych

Azure Portal

Aby zmienić jednostki DWU:

  1. Otwórz witrynę Azure Portal, otwórz bazę danych i wybierz pozycję Skaluj.

  2. W obszarze Skalowanie przesuń suwak w lewo lub w prawo, aby zmienić ustawienie jednostek DWU.

  3. Wybierz pozycję Zapisz. Zostanie wyświetlony komunikat z potwierdzeniem. Wybierz pozycję Tak , aby potwierdzić lub nie , aby anulować.

PowerShell

Uwaga

Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Aby rozpocząć, zobacz Instalowanie programu Azure PowerShell. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Aby zmienić jednostki DWU, użyj polecenia cmdlet Set-AzSqlDatabase programu PowerShell. Poniższy przykład ustawia cel poziomu usługi na DW1000 dla bazy danych MySQLDW hostowanej na serwerze MyServer.

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

Aby uzyskać więcej informacji, zobacz PowerShell cmdlets for Azure Synapse Analytics (Polecenia cmdlet programu PowerShell dla usługi Azure Synapse Analytics)

T-SQL

Za pomocą języka T-SQL możesz wyświetlić bieżące ustawienia DWUsettings, zmienić ustawienia i sprawdzić postęp.

Aby zmienić jednostki DWU:

  1. Połączenie do głównej bazy danych skojarzonej z serwerem.
  2. Użyj instrukcji TSQL ALTER DATABASE . Poniższy przykład ustawia cel poziomu usługi na DW1000c dla bazy danych MySQLDW.
ALTER DATABASE MySQLDW
MODIFY (SERVICE_OBJECTIVE = 'DW1000c')
;

Interfejsy API REST

Aby zmienić jednostki DWU, użyj interfejsu API REST tworzenia lub aktualizowania bazy danych . Poniższy przykład ustawia cel poziomu usługi na DW1000c dla bazy danych MySQLDW, która jest hostowana na serwerze MyServer. Serwer znajduje się w grupie zasobów platformy Azure o nazwie 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
    }
}

Aby uzyskać więcej przykładów interfejsu API REST, zobacz Interfejsy API REST dla usługi Azure Synapse Analytics.

Sprawdzanie stanu zmian jednostek DWU

Ukończenie zmian dwu może potrwać kilka minut. Jeśli skalowanie odbywa się automatycznie, rozważ zaimplementowanie logiki, aby upewnić się, że niektóre operacje zostały ukończone przed kontynuowaniem innej akcji.

Sprawdzanie stanu bazy danych za pomocą różnych punktów końcowych umożliwia poprawne zaimplementowanie automatyzacji. Portal udostępnia powiadomienie po zakończeniu operacji i bieżącego stanu baz danych, ale nie zezwala na programowe sprawdzanie stanu.

Nie można sprawdzić stanu bazy danych pod kątem operacji skalowania w poziomie w witrynie Azure Portal.

Aby sprawdzić stan zmian jednostek DWU:

  1. Połączenie do głównej bazy danych skojarzonej z serwerem.
  2. Prześlij następujące zapytanie, aby sprawdzić stan bazy danych.
SELECT    *
FROM      sys.databases
;
  1. Prześlij następujące zapytanie, aby sprawdzić stan operacji
SELECT    *
FROM      sys.dm_operation_status
WHERE     resource_type_desc = 'Database'
AND       major_resource_id = 'MySQLDW'
;

Ten dynamiczny widok zarządzania zwraca informacje o różnych operacjach zarządzania w dedykowanej puli SQL, takich jak operacja i stan operacji, czyli IN_PROGRESS lub UKOŃCZONO.

Przepływ pracy skalowania

Po rozpoczęciu operacji skalowania system najpierw zabija wszystkie otwarte sesje, cofnie wszystkie otwarte transakcje, aby zapewnić spójny stan. W przypadku operacji skalowania skalowanie odbywa się tylko po zakończeniu tego wycofywania transakcyjnego.

  • W przypadku operacji skalowania w górę system odłącza wszystkie węzły obliczeniowe, aprowizuje dodatkowe węzły obliczeniowe, a następnie ponownie dołącza do warstwy magazynu.
  • W przypadku operacji skalowania w dół system odłącza wszystkie węzły obliczeniowe, a następnie ponownie dołącza tylko wymagane węzły do warstwy magazynu.

Następne kroki

Aby dowiedzieć się więcej na temat zarządzania wydajnością, zobacz Klasy zasobów na potrzeby zarządzania obciążeniami oraz Limity pamięci i współbieżności.