Jednostki magazynu danych (DWU) dla dedykowanej puli SQL (dawniej SQL DW) w usłudze Azure Synapse Analytics
Ten dokument zawiera zalecenia dotyczące wybierania idealnej liczby jednostek magazynu danych (DWU) dla dedykowanej puli SQL (dawniej SQL DW), aby zoptymalizować cenę i wydajność oraz jak zmienić liczbę jednostek.
Co to są jednostki magazynu danych
Dedykowana pula SQL (dawniej SQL DW) 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, co z kolei dostosowuje wydajność i koszt 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 dedykowanej puli SQL (dawniej SQL DW) 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 dedykowana pula SQL (dawniej SQL DW) 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 dedykowanej puli SQL (dawniej SQL DW). Poziomy usług dla dedykowanej puli SQL Gen2 (dawniej SQL DW) są mierzone w jednostkach magazynu danych (DWU), na przykład DW2000c.
Uwaga
Dedykowana pula SQL (dawniej SQL DW) Gen2 dodała ostatnio dodatkowe możliwości skalowania w celu obsługi warstw obliczeniowych nawet dw100c. 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 (dawniej SQL DW).
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.
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.
Ile jednostek magazynu danych potrzebuję
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:
Zacznij od wybrania mniejszej jednostek DWU.
Monitoruj wydajność aplikacji podczas testowania ładowania danych do systemu, obserwując liczbę wybranych jednostek DWU w porównaniu z obserwowaną wydajnością. Zweryfikuj, monitorując wykorzystanie zasobów.
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.
Dedykowana pula SQL (dawniej SQL DW) to system skalowalny w poziomie, który może aprowizować ogromne ilości zasobów obliczeniowych i ilości danych o rozmiarze zapytań.
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:
- Otwórz Eksplorator obiektów programu SQL Server w programie Visual Studio.
- Połączenie do głównej bazy danych skojarzonej z logicznym serwerem SQL.
- 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:
Otwórz witrynę Azure Portal, otwórz bazę danych i kliknij pozycję Skaluj.
W obszarze Skalowanie przesuń suwak w lewo lub w prawo, aby zmienić ustawienie jednostek DWU.
Kliknij przycisk Zapisz. Zostanie wyświetlony komunikat z potwierdzeniem. Kliknij 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 Polecenia cmdlet programu PowerShell dla dedykowanej puli SQL (dawniej SQL DW)
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:
- Połączenie do głównej bazy danych skojarzonej z serwerem.
- 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": "DW1000c"
}
}
Aby uzyskać więcej przykładów interfejsu API REST, zobacz Interfejsy API REST dla dedykowanej puli SQL (dawniej SQL DW).
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:
Połączenie do głównej bazy danych skojarzonej z serwerem.
Prześlij następujące zapytanie, aby sprawdzić stan bazy danych.
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 (dawniej SQL DW), 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.