Architektura dedykowanej puli SQL (dawniej SQL DW) w usłudze Azure Synapse Analytics
Azure Synapse Analytics to usługa analityczna, która łączy magazynowanie danych przedsiębiorstwa i analizę danych big data. Zapewnia ona swobodę wykonywania zapytań dotyczących danych na Twoich warunkach.
Uwaga
Aby uzyskać więcej informacji na temat usługi Azure Synapse Analytics, obejrzyj ten film wideo wyjaśniający ulepszenia przenoszenia danych.
Składniki architektury usługi Synapse SQL
Dedykowana pula SQL (dawniej SQL DW) wykorzystuje architekturę skalowaną w poziomie do dystrybucji obliczeniowego przetwarzania danych między wieloma węzłami. Jednostka skalowania to abstrakcja mocy obliczeniowej, która jest nazywana jednostką magazynu danych. Zasoby obliczeniowe są niezależne od magazynu, co umożliwia ich skalowanie niezależnie od danych w systemie.
Dedykowana pula SQL (dawniej SQL DW) używa architektury opartej na węźle. Aplikacje łączą się i wydają polecenia języka T-SQL do węzła sterującego. Węzeł kontrolny hostuje rozproszony aparat zapytań, który optymalizuje zapytania pod kątem przetwarzania równoległego, a następnie przekazuje operacje do węzłów obliczeniowych w celu równoległego wykonywania pracy.
Węzły obliczeniowe przechowują wszystkie dane użytkowników w usłudze Azure Storage i wykonują zapytania równoległe. Usługa przenoszenia danych (ang. Data Movement Service, DMS) to wewnętrzna usługa działająca na poziomie systemu, która przenosi dane pomiędzy węzłami w sposób wymagany do równoległego wykonywania zapytań i zwracania prawidłowych wyników.
W przypadku oddzielenia magazynu i obliczeń w przypadku korzystania z dedykowanej puli SQL (dawniej SQL DW) można wykonywać następujące czynności:
- Niezależnie od rozmiaru mocy obliczeniowej niezależnie od potrzeb magazynu.
- Zwiększanie lub zmniejszanie mocy obliczeniowej w dedykowanej puli SQL (dawniej SQL DW) bez przenoszenia danych.
- Wstrzymywać zasoby obliczeniowe bez wpływu na dane, płacąc tylko za przestrzeń dyskową.
- Wznawianie zasobów obliczeniowych w godzinach pracy.
Azure Storage
Dedykowana pula SQL SQL (dawniej SQL DW) korzysta z usługi Azure Storage, aby zapewnić bezpieczeństwo danych użytkownika. Ponieważ dane są przechowywane i zarządzane przez usługę Azure Storage, są naliczane oddzielne opłaty za użycie magazynu. Dane są podzielone na dystrybucje w celu zoptymalizowania wydajności systemu. Podczas definiowania tabeli możesz wybrać wzorzec dzielenia na fragmenty używany do dystrybucji danych. Te wzorce fragmentowania są obsługiwane:
- Skrót
- Działanie okrężne
- Replikowanie
Węzeł kontrolny
Węzeł kontrolny to mózg całej architektury. Jest to fronton współdziałający ze wszystkimi aplikacjami i połączeniami. Aparat zapytań rozproszonych działa w węźle Kontrolnym, aby zoptymalizować i koordynować zapytania równoległe. Po przesłaniu zapytania T-SQL węzeł kontrolny przekształca je w zapytania uruchamiane równolegle z każdą dystrybucją.
Węzły obliczeniowe
Węzły obliczeniowe zapewniają moc obliczeniową. Dystrybucje mapuje na węzły obliczeniowe na potrzeby przetwarzania. W miarę płacenia za więcej zasobów obliczeniowych dystrybucje są ponownie mapowane na dostępne węzły obliczeniowe. Liczba węzłów obliczeniowych waha się od 1 do 60 i jest określana przez poziom usługi Synapse SQL.
Każdy węzeł obliczeniowy ma identyfikator węzła widoczny w widokach systemowych. Identyfikator węzła obliczeniowego można wyświetlić, wyszukując kolumnę node_id w widokach systemowych, których nazwy zaczynają się od sys.pdw_nodes. Aby uzyskać listę tych widoków systemowych, zobacz Widoki systemowe usługi Synapse SQL.
Usługa przenoszenia danych
Usługa przenoszenia danych (DMS) to technologia transportu danych, która koordynuje przenoszenie danych między węzłami obliczeniowymi. Niektóre zapytania wymagają przenoszenia danych, aby zapewnić, że zapytania równoległe zwracają dokładne wyniki. Gdy wymagane jest przenoszenie danych, usługa DMS zapewnia, że odpowiednie dane są przesyłane do właściwej lokalizacji.
Dystrybucji
Dystrybucja to podstawowa jednostka magazynowania i przetwarzania zapytań równoległych wykonywanych na danych rozproszonych. Gdy usługa Synapse SQL uruchamia zapytanie, praca jest podzielona na 60 mniejszych zapytań uruchamianych równolegle.
Każde z 60 mniejszych zapytań jest uruchamianych w jednej z dystrybucji danych. Każdy węzeł obliczeniowy zarządza co najmniej jedną z 60 dystrybucji. Dedykowana pula SQL (dawniej SQL DW) z maksymalnymi zasobami obliczeniowymi ma jedną dystrybucję na węzeł obliczeniowy. Dedykowana pula SQL (dawniej SQL DW) z minimalnymi zasobami obliczeniowymi ma wszystkie dystrybucje w jednym węźle obliczeniowym.
Uwaga
Aby uzyskać zalecenia dotyczące najlepszej strategii dystrybucji tabel do użycia na podstawie obciążeń, zobacz Azure Synapse SQL Distribution Advisor.
Tabele dystrybuowane przy użyciu skrótu
Tabela dystrybuowana przy użyciu skrótu może zapewniać najwyższą wydajność zapytań w przypadku sprzężeń i agregacji w dużych tabelach.
Aby podzielić dane na tabelę rozproszoną przy użyciu skrótu, funkcja skrótu służy do deterministycznego przypisywania każdego wiersza do jednej dystrybucji. W definicji tabeli jedna kolumna zostaje wyznaczona jako kolumna dystrybucji. Funkcja skrótu używa wartości z kolumny dystrybucji, aby przypisać każdy wiersz do określonej dystrybucji.
Na poniższym diagramie pokazano, jak pełna (tabela nieproszona) jest przechowywana jako tabela rozproszona przy użyciu skrótu.
- Każdy wiersz należy do jednej dystrybucji.
- Deterministyczny algorytm wyznaczania wartości skrótu przypisuje każdy wiersz do jednej dystrybucji.
- Liczba wierszy tabeli na rozkład różni się w zależności od różnych rozmiarów tabel.
Istnieją zagadnienia dotyczące wydajności wyboru kolumny dystrybucji, takie jak odrębność, niesymetryczność danych i typy zapytań uruchamianych w systemie.
Tabele dystrybuowane przy użyciu działania okrężnego
Tabela okrężna to najprostsza tabela do utworzenia i zapewnia szybką wydajność w przypadku użycia jako tabeli przejściowej na potrzeby obciążeń.
W tabeli dystrybuowanej przy użyciu działania okrężnego dane są dystrybuowane równomiernie w całej tabeli, bez dodatkowej optymalizacji. Rozkład jest najpierw wybierany losowo, a następnie wierszy są przypisywane do dystrybucji sekwencyjnie. Ładowanie danych do tabeli z działaniem okrężnym jest szybkie, ale wydajność zapytań jest często lepsza w tabelach dystrybuowanych przy użyciu skrótu. Sprzężenia w tabelach działania okrężnego wymagają przetasowania danych, co zajmuje dodatkowy czas.
Tabele replikowane
Tabela replikowana zapewnia najszybsze wykonywanie zapytań w przypadku niewielkich tabel.
Tabela replikowana buforuje pełną kopię tabeli w każdym węźle obliczeniowym. Dlatego replikowanie tabeli eliminuje konieczność przesyłania danych między węzłami obliczeniowymi przed operacją sprzężenia lub agregacji. Replikacja sprawdza się najlepiej w przypadku małych tabel. Wymagana jest dodatkowa ilość miejsca do magazynowania, co wiąże się z dodatkowym obciążeniem podczas zapisywania danych, co sprawia, że duże tabele są niepraktyczne.
Na poniższym diagramie przedstawiono zreplikowana tabelę, która jest buforowana w pierwszej dystrybucji w każdym węźle obliczeniowym.
Następne kroki
Teraz, gdy znasz już nieco usługę Azure Synapse, dowiedz się, jak szybko utworzyć dedykowaną pulę SQL (dawniej SQL DW) i załadować przykładowe dane. Jeśli dopiero zaczynasz korzystać z platformy Azure, słownik platformy Azure może pomóc Ci zaznajomić się z nową terminologią. Możesz też przyjrzeć się niektórym z tych innych zasobów usługi Azure Synapse.