Dedykowana pula SQL (dawniej SQL DW) w usłudze Azure Synapse Analytics
Usługa Azure Synapse Analytics to usługa analizy, która łączy magazynowanie danych przedsiębiorstwa z analizą danych big data. Zapewnia ona swobodę wykonywania zapytań dotyczących danych dotyczących warunków.
Uwaga
Aby uzyskać więcej informacji na temat 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ę skalowania w poziomie do dystrybucji obliczeniowego przetwarzania danych między wieloma węzłami. Jednostka skalowania to abstrakcja mocy obliczeniowej, która jest znana jako jednostka magazynu danych. Obliczenia są oddzielone od magazynu, co umożliwia skalowanie obliczeń 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 sterowania. 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, aby wykonać swoją pracę równolegle.
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 odłączonego magazynu i zasobów obliczeniowych 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ą.
- Wznawiać zasoby obliczeniowe 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, naliczana jest oddzielna opłata 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. Rozproszony aparat zapytań działa w węźle Sterowania, aby zoptymalizować i koordynować zapytania równoległe. Podczas przesyłania zapytania T-SQL węzeł sterowania przekształca go w zapytania uruchamiane równolegle dla każdej dystrybucji.
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ług dla 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 ruch danych jest wymagany, 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 nieprostrybuowana) jest przechowywana jako tabela rozproszona skrótem.
- 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 bufory 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. Wymagany jest dodatkowy magazyn i istnieje dodatkowe obciążenie związane z zapisywaniem danych, co sprawia, że duże tabele są niepraktyczne.
Na poniższym diagramie przedstawiono zreplikowana tabela, która jest buforowana w pierwszej dystrybucji w każdym węźle obliczeniowym.
Następne kroki
Teraz, po zapoznaniu się z 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 Azure Synapse.