Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł jest jedną z siedmiu części serii, która zawiera wskazówki dotyczące migracji z platformy Netezza do usługi Azure Synapse Analytics. Celem tego artykułu są najlepsze rozwiązania dotyczące projektowania i wydajności.
Omówienie
Ze względu na koniec wsparcia firmy IBM wielu istniejących użytkowników systemów magazynu danych Netezza chce skorzystać z innowacji oferowanych przez nowoczesne środowiska chmurowe. Środowiska chmury typu infrastruktura jako usługa (IaaS) i platforma jako usługa (PaaS) umożliwiają delegowanie zadań, takich jak konserwacja infrastruktury i programowanie platformy dla dostawcy chmury.
Napiwek
Nie tylko baza danych — środowisko platformy Azure zawiera kompleksowy zestaw funkcji i narzędzi.
Mimo że netezza i Azure Synapse Analytics to bazy danych SQL, które używają technik masowego przetwarzania równoległego (MPP) w celu osiągnięcia wysokiej wydajności zapytań na wyjątkowo dużych woluminach danych, istnieją pewne podstawowe różnice w podejściu:
Starsze systemy Netezza są często instalowane lokalnie i używają zastrzeżonego sprzętu, podczas gdy usługa Azure Synapse jest oparta na chmurze i korzysta z magazynu platformy Azure i zasobów obliczeniowych.
Uaktualnianie konfiguracji Netezza to ważne zadanie obejmujące dodatkowy sprzęt fizyczny i potencjalnie długą rekonfigurację bazy danych lub zrzucenie i ponowne wczytanie. Ponieważ zasoby magazynu i zasobów obliczeniowych są oddzielne w środowisku platformy Azure i mają elastyczne możliwości skalowania, te zasoby można skalować w górę lub w dół niezależnie.
W razie potrzeby możesz wstrzymać lub zmienić rozmiar usługi Azure Synapse, aby zmniejszyć wykorzystanie zasobów i koszty.
Platforma Microsoft Azure to globalnie dostępne, wysoce bezpieczne, skalowalne środowisko w chmurze, które obejmuje usługę Azure Synapse i ekosystem pomocniczych narzędzi i możliwości. Następny diagram zawiera podsumowanie ekosystemu usługi Azure Synapse.
Usługa Azure Synapse zapewnia najlepszą wydajność relacyjnej bazy danych przy użyciu technik, takich jak MPP i wiele poziomów zautomatyzowanego buforowania dla często używanych danych. Wyniki tych technik można zobaczyć w niezależnych testach porównawczych, takich jak ostatnio uruchamiany przez GigaOm, który porównuje usługę Azure Synapse z innymi popularnymi ofertami magazynu danych w chmurze. Klienci migrujący do środowiska usługi Azure Synapse widzą wiele korzyści, w tym:
Zwiększona wydajność i cena/wydajność.
Zwiększona elastyczność i szybsze osiąganie wartości.
Szybsze wdrażanie serwera i tworzenie aplikacji.
Elastyczna skalowalność — płacisz tylko za rzeczywiste użycie.
Ulepszone zabezpieczenia/zgodność.
Zmniejszono koszty magazynowania i odzyskiwania po awarii.
Niższy ogólny koszt posiadania, lepsza kontrola kosztów i usprawnione wydatki operacyjne (OPEX).
Aby zmaksymalizować te korzyści, zmigruj nowe lub istniejące dane i aplikacje do platformy Azure Synapse. W wielu organizacjach migracja obejmuje przeniesienie istniejącego magazynu danych ze starszej platformy lokalnej, takiej jak Netezza, do usługi Azure Synapse. Na wysokim poziomie proces migracji obejmuje następujące kroki:
Przygotowanie 🡆
Zdefiniuj zakres — co ma zostać zmigrowane.
Tworzenie spisu danych i procesów migracji.
Zdefiniuj zmiany modelu danych (jeśli istnieją).
Zdefiniuj mechanizm wyodrębniania danych źródłowych.
Zidentyfikuj odpowiednie narzędzia i funkcje platformy Azure oraz zewnętrzne narzędzia i funkcje do użycia.
Wczesne szkolenie pracowników na nowej platformie.
Skonfiguruj platformę docelową Azure.
Migracja 🡆
Zacznij od małych i prostych.
Automatyzuj wszędzie tam, gdzie to możliwe.
Skorzystaj z wbudowanych narzędzi i funkcji platformy Azure, aby zmniejszyć nakład pracy nad migracją.
Migrowanie metadanych dla tabel i widoków.
Migrowanie danych historycznych do ich utrzymania.
Migracja lub refaktoryzacja procedur składowanych oraz procesów biznesowych.
Migrowanie lub refaktoryzacja procesów ładowania przyrostowego ETL/ELT.
Po migracji
Monitoruj i dokumentuj wszystkie etapy procesu.
Użyj zdobytego doświadczenia, aby utworzyć szablon na potrzeby przyszłych migracji.
W razie potrzeby przeprojektuj ponownie model danych (przy użyciu nowej wydajności i skalowalności platformy).
Testowanie aplikacji i narzędzi do wykonywania zapytań.
Testowanie porównawcze i optymalizowanie wydajności zapytań.
Ten artykuł zawiera ogólne informacje i wytyczne dotyczące optymalizacji wydajności podczas migrowania magazynu danych z istniejącego środowiska Netezza do usługi Azure Synapse. Celem optymalizacji wydajności jest osiągnięcie takiej samej lub lepszej wydajności magazynu danych w usłudze Azure Synapse po migracji schematu.
Uwagi dotyczące projektowania
Zakres migracji
Podczas przygotowywania do migracji ze środowiska Netezza należy wziąć pod uwagę następujące opcje migracji.
Wybieranie obciążenia na potrzeby migracji początkowej
Zazwyczaj starsze środowiska Netezza ewoluowały wraz z upływem czasu, aby obejmować wiele obszarów tematycznych i mieszanych obciążeń. Podczas wybierania miejsca rozpoczęcia projektu migracji wybierz obszar, w którym będzie można wykonywać następujące zadania:
Udowodnij rentowność migracji do usługi Azure Synapse, szybko zapewniając korzyści wynikające z nowego środowiska.
Zezwól swoim pracownikom technicznym na uzyskanie odpowiedniego doświadczenia z procesami i narzędziami, których będą używać podczas migrowania innych obszarów.
Utwórz szablon do dalszych migracji specyficznych dla źródłowego środowiska Netezza oraz bieżących narzędzi i procesów, które już istnieją.
Dobry kandydat do początkowej migracji z środowiska Netezza wspiera powyższe elementy oraz:
Implementuje obciążenie analityczne zamiast obciążenia przetwarzania transakcji online (OLTP).
Ma model danych, taki jak schemat gwiazdy lub płatka śniegu, który można migrować z minimalnymi modyfikacjami.
Napiwek
Utwórz spis obiektów, które muszą zostać zmigrowane, i udokumentować proces migracji.
Ilość migrowanych danych w początkowej migracji powinna być wystarczająco duża, aby zademonstrować możliwości i zalety środowiska usługi Azure Synapse, ale nie zbyt duże, aby szybko zademonstrować wartość. Typowy jest rozmiar zakresu 1–10 terabajtów.
W przypadku początkowego projektu migracji zminimalizuj ryzyko, nakład pracy i czas migracji, aby szybko zobaczyć korzyści środowiska chmury platformy Azure. Zarówno migracja metodą "lift-and-shift", jak i migracja etapowa ograniczają zakres początkowej migracji jedynie do składnic danych i nie obejmują szerszych aspektów migracji, takich jak migracja ETL i migracja danych historycznych. Można jednak rozwiązać te aspekty w późniejszych fazach projektu, gdy zmigrowana warstwa składnicy danych jest wypełniana z danymi i wymaganymi procesami kompilacji.
Migracja metodą "lift and shift" a podejście etapowe
Ogólnie rzecz biorąc, istnieją dwa typy migracji niezależnie od celu i zakresu planowanej migracji: lift and shift as-is i podejście etapowe, które obejmuje zmiany.
Migrowanie metodą „przenoszenia i przesuwania”
W przypadku migracji metodą "lift and shift" istniejący model danych, taki jak schemat gwiazdy, jest migrowany bez zmian do nowej platformy Azure Synapse. Takie podejście minimalizuje ryzyko i czas migracji, skracając pracę wymaganą do realizacji korzyści związanych z przejściem do środowiska chmury platformy Azure. Migracja metodą "lift and shift" jest dobrym rozwiązaniem w następujących scenariuszach:
- Masz istniejące środowisko Netezza z pojedynczą składnicą danych do migracji lub
- Masz istniejące środowisko Netezza z danymi, które są już w dobrze zaprojektowanym schemacie gwiazdy lub płatka śniegu, albo
- Masz presję czasu i kosztów, aby przejść do nowoczesnego środowiska chmurowego.
Napiwek
"Lift and shift" to dobry punkt wyjścia, nawet jeśli kolejne fazy wprowadzają zmiany w modelu danych.
Podejście etapowe, które obejmuje zmiany
Jeśli starszy magazyn danych ewoluował przez długi czas, może być konieczne ponowne zaprojektowanie go w celu zachowania wymaganych poziomów wydajności. Możliwe, że będziesz musiał również przeprojektować systemy, aby obsługiwały nowe dane, takie jak strumienie z Internetu rzeczy (IoT). W ramach procesu ponownej inżynierii przeprowadź migrację do usługi Azure Synapse, aby uzyskać korzyści ze skalowalnego środowiska w chmurze. Migracja może również obejmować zmianę bazowego modelu danych, na przykład przejście z modelu Inmon na model magazynu danych.
Firma Microsoft zaleca przeniesienie istniejącego modelu danych tak jak jest na platformę Azure oraz użycie wydajności i elastyczności środowiska platformy Azure w celu zastosowania zmian reengineeringowych. Dzięki temu możesz użyć możliwości platformy Azure, aby wprowadzić zmiany bez wpływu na istniejący system źródłowy.
Wdrażanie migracji opartej na metadanych za pomocą usługi Azure Data Factory
Proces migracji można zautomatyzować i zorganizować przy użyciu możliwości środowiska platformy Azure. Takie podejście minimalizuje spadek wydajności w istniejącym środowisku Netezza, które może już działać blisko pełnej wydajności.
Azure Data Factory to oparta na chmurze usługa integracji danych, która obsługuje tworzenie opartych na danych przepływów pracy w chmurze, które organizują i automatyzują przenoszenie danych i przekształcanie danych. Za pomocą usługi Data Factory można tworzyć i planować oparte na danych przepływy pracy (potoki), które pozyskują dane z różnych magazynów danych. Usługa Data Factory może przetwarzać i przekształcać dane przy użyciu usług obliczeniowych, takich jak Azure HDInsight Hadoop, Spark, Azure Data Lake Analytics i Azure Machine Learning.
Podczas planowania używania obiektów usługi Data Factory do zarządzania procesem migracji utwórz metadane zawierające listę wszystkich tabel danych, które mają zostać zmigrowane i ich lokalizację.
Różnice w projektowaniu między platformą Netezza i usługą Azure Synapse
Jak wspomniano wcześniej, istnieją pewne podstawowe różnice w podejściu między bazami danych Netezza i Azure Synapse Analytics, a te różnice zostały omówione w dalszej części.
Wiele baz danych a pojedyncza baza danych i schematy
Środowisko Netezza często zawiera wiele oddzielnych baz danych. Na przykład mogą istnieć oddzielne bazy danych do pozyskiwania i przechowywania danych, podstawowe tabele magazynu danych i składnice danych (czasami nazywane warstwą semantyczną). Procesy potoków ETL lub ELT mogą implementować sprzężenia między bazami danych i przenosić dane między oddzielnymi bazami danych.
Z kolei środowisko usługi Azure Synapse zawiera pojedynczą bazę danych i używa schematów do oddzielania tabel w logicznie oddzielne grupy. Zalecamy użycie serii schematów w docelowej bazie danych usługi Azure Synapse w celu naśladowania oddzielnych baz danych migrowanych ze środowiska Netezza. Jeśli środowisko Netezza już używa schematów, może być konieczne użycie nowej konwencji nazewnictwa podczas przenoszenia istniejących tabel i widoków Netezza do nowego środowiska. Można na przykład połączyć istniejące nazwy schematów i tabel Netezza z nową nazwą tabeli usługi Azure Synapse i użyć nazw schematów w nowym środowisku, aby zachować oryginalne oddzielne nazwy baz danych. Jeśli nazewnictwo konsolidacji schematów ma kropki, usługa Azure Synapse Spark może mieć problemy. Mimo że można używać widoków SQL na podstawie bazowych tabel do obsługi struktur logicznych, istnieją potencjalne wady tego podejścia:
Widoki w usłudze Azure Synapse są tylko do odczytu, więc wszystkie aktualizacje danych muszą odbywać się w podstawowych tabelach.
Może już istnieć co najmniej jedna warstwa widoków i dodanie dodatkowej warstwy widoków może mieć wpływ na wydajność i obsługę, ponieważ zagnieżdżone widoki są trudne do rozwiązania.
Napiwek
Połącz wiele baz danych w jedną bazę danych w usłudze Azure Synapse i użyj nazw schematów, aby logicznie oddzielić tabele.
Uwagi dotyczące tabeli
Podczas migracji tabel między różnymi środowiskami zazwyczaj migrują tylko surowe dane i metadane, które je fizycznie opisują. Inne elementy bazy danych z systemu źródłowego, takie jak indeksy, zwykle nie są migrowane, ponieważ mogą być niepotrzebne lub zaimplementowane inaczej w nowym środowisku.
Optymalizacje wydajności w środowisku źródłowym, takie jak indeksy, wskazują, gdzie można dodać optymalizację wydajności w nowym środowisku. Jeśli na przykład zapytania w źródłowym środowisku Netezza często używają map stref, sugeruje to, że indeks nieklasowany powinien zostać utworzony w usłudze Azure Synapse. Inne natywne techniki optymalizacji wydajności, takie jak replikacja tabel, mogą być bardziej odpowiednie niż proste tworzenie indeksów podobnych do podobnych.
Wskazówka
Istniejące indeksy wskazują kandydatów do indeksowania w zmigrowanym magazynie.
Nieobsługiwane typy obiektów bazy danych Netezza
Funkcje specyficzne dla platformy Netezza mogą być często zastępowane przez funkcje usługi Azure Synapse. Jednak niektóre obiekty bazy danych Netezza nie są bezpośrednio obsługiwane w usłudze Azure Synapse. Poniższa lista nieobsługiwanych obiektów bazy danych Netezza zawiera opis sposobu osiągnięcia równoważnych funkcji w usłudze Azure Synapse.
Mapy stref: w netezza mapy strefy są tworzone automatycznie i obsługiwane dla następujących typów kolumn i są używane w czasie zapytania w celu ograniczenia ilości danych do skanowania:
-
INTEGER
kolumny o długości 8 bajtów lub mniejszej. - Kolumny czasowe, takie jak
DATE
,TIME
iTIMESTAMP
. -
CHAR
kolumny, jeśli są częścią zmaterializowanego widoku i wymienione w klauzuliORDER BY
.
Możesz dowiedzieć się, które kolumny mają mapy stref, korzystając z
nz_zonemap
narzędzia , które jest częścią zestawu narzędzi NZ Toolkit. Usługa Azure Synapse nie zawiera map strefowych, ale można osiągnąć podobne wyniki przy użyciu innych typów indeksów zdefiniowanych przez użytkownika i/lub partycjonowania.-
Tabele podstawowe klastrowane (CBT): w netezza często używane są tabele faktów, które mogą zawierać miliardy rekordów. Skanowanie tak ogromnej tabeli wymaga znacznego czasu przetwarzania, ponieważ może być konieczne pełne skanowanie tabeli w celu uzyskania odpowiednich rekordów. Organizowanie rekordów na restrykcyjnych stacjach CBTs umożliwia Netezza grupowanie rekordów w tych samych lub pobliskich zakresach. Ten proces tworzy również mapy stref, które zwiększają wydajność, zmniejszając ilość danych, które należy skanować.
W usłudze Azure Synapse możesz osiągnąć podobny efekt, partycjonując i/lub używając innych indeksów.
Zmaterializowane widoki: Platforma Netezza obsługuje zmaterializowane widoki i zaleca używanie jednego lub większej liczby zmaterializowanych widoków dla dużych tabel z wieloma kolumnami, jeśli tylko kilka kolumn jest regularnie używanych w zapytaniach. Zmaterializowane widoki są automatycznie odświeżane przez system po zaktualizowaniu danych w tabeli podstawowej.
Usługa Azure Synapse obsługuje zmaterializowane widoki z taką samą funkcjonalnością jak Netezza.
Mapowanie typu danych Netezza
Większość typów danych Netezza ma bezpośredni odpowiednik w usłudze Azure Synapse. W poniższej tabeli przedstawiono zalecane podejście do mapowania typów danych Netezza na usługę Azure Synapse.
Typ danych Netezza | Typ danych usługi Azure Synapse |
---|---|
BIGINT | BIGINT |
RÓŻNICE BINARNE (n) | VARBINARY(n) |
BOOLOWSKI | BIT |
BYTEINT | TINYINT |
RÓŻNE ZNAKI (n) | VARCHAR(n) |
znak(n) | CHAR(n) |
DATE | DATE(date) |
DZIESIĘTNE (p, s) | DZIESIĘTNY (p, s) |
PODWÓJNA PRECYZJA | PŁYWAK |
FLOAT(n) | FLOAT(n) |
LICZBA CAŁKOWITA | INT |
INTERWAŁ | Typy danych INTERVAL nie są obecnie bezpośrednio obsługiwane w usłudze Azure Synapse, ale można je obliczyć przy użyciu funkcji czasowych, takich jak DATEDIFF. |
PIENIĄDZE | PIENIĄDZE |
ZNAK NARODOWY RÓŻNIĄCE SIĘ (n) | NVARCHAR(n) |
ZNAK NARODOWY (n) | NCHAR(n) |
NUMERIC(p,s) | NUMERIC(p,s) |
PRAWDZIWY | PRAWDZIWY |
SMALLINT | SMALLINT |
ST_GEOMETRY(n) | Typy danych przestrzennych, takie jak ST_GEOMETRY, nie są obecnie obsługiwane w usłudze Azure Synapse, ale dane mogą być przechowywane jako VARCHAR lub VARBINARY. |
CZAS | CZAS |
CZAS ZE STREFĄ CZASOWĄ | DATETIMEOFFSET |
TIMESTAMP | data i czas |
Napiwek
Oceń liczbę i typ nieobsługiwanych typów danych w fazie przygotowywania migracji.
Zewnętrzni dostawcy oferują narzędzia i usługi do automatyzacji migracji, w tym mapowanie typów danych. Jeśli narzędzie ETL innej firmy jest już używane w środowisku Netezza, użyj tego narzędzia, aby zaimplementować wszelkie wymagane przekształcenia danych.
Różnice składni języka SQL DML
Różnice składni języka SQL DML istnieją między usługą Netezza SQL i usługą Azure Synapse T-SQL. Te różnice zostały szczegółowo omówione w temacie Minimalizuj problemy z SQL w migracjach Netezza.
STRPOS
: w Netezza funkcjaSTRPOS
zwraca pozycję podciągu w łańcuchu. Równoważna funkcja w usłudze Azure Synapse toCHARINDEX
z odwróconą kolejnością argumentów. Na przykładSELECT STRPOS('abcdef','def')...
w narzędziu Netezza jest równoważneSELECT CHARINDEX('def','abcdef')...
w usłudze Azure Synapse.AGE
: Netezza obsługujeAGE
operator, aby nadać interwał między dwiema wartościami czasowymi, takimi jak znaczniki czasu lub daty, na przykład:SELECT AGE('23-03-1956','01-01-2019') FROM...
. W usłudze Azure Synapse użyj poleceniaDATEDIFF
, aby uzyskać interwał, na przykład:SELECT DATEDIFF(day, '1956-03-26','2019-01-01') FROM...
. Zanotuj sekwencję reprezentacji daty.NOW()
: Netezza używaNOW()
do reprezentowaniaCURRENT_TIMESTAMP
w usłudze Azure Synapse.
Funkcje, procedury składowane i sekwencje
Podczas migrowania magazynu danych ze środowiska dojrzałego, takiego jak Netezza, prawdopodobnie trzeba migrować elementy inne niż proste tabele i widoki. Sprawdź, czy narzędzia w środowisku platformy Azure mogą zastąpić funkcje, procedury składowane i sekwencje, ponieważ zwykle bardziej wydajne jest używanie wbudowanych narzędzi platformy Azure niż ponowne kodowanie tych elementów dla usługi Azure Synapse.
W ramach fazy przygotowania utwórz spis obiektów, które muszą zostać zmigrowane, zdefiniuj metodę ich obsługi i przydziel odpowiednie zasoby w planie migracji.
Partnerzy integracji danych oferują narzędzia i usługi, które mogą zautomatyzować migrację funkcji, procedur składowanych i sekwencji.
W poniższych sekcjach szczegółowo omówiono migrację funkcji, procedur składowanych i sekwencji.
Funkcje
Podobnie jak w przypadku większości produktów baz danych, platforma Netezza obsługuje funkcje systemowe i zdefiniowane przez użytkownika w ramach implementacji języka SQL. Podczas migracji starszej platformy bazy danych do usługi Azure Synapse typowe funkcje systemowe mogą być zwykle migrowane bez zmian. Niektóre funkcje systemowe mogą mieć nieco inną składnię, ale wszelkie wymagane zmiany można zautomatyzować.
W przypadku funkcji systemowych Netezza lub dowolnych funkcji zdefiniowanych przez użytkownika, które nie mają odpowiednika w usłudze Azure Synapse, zakoduj je ponownie przy użyciu docelowego języka środowiska. Funkcje zdefiniowane przez użytkownika netezza są kodowane w językach nzlua lub C++. Usługa Azure Synapse używa języka Transact-SQL do implementowania funkcji zdefiniowanych przez użytkownika.
Procedury składowane
Większość nowoczesnych produktów baz danych obsługuje procedury przechowywania w bazie danych. Netezza udostępnia w tym celu język NZPLSQL oparty na bazie bazy danych Postgres PL/pgSQL. Procedura składowana zwykle zawiera zarówno instrukcje SQL, jak i logikę proceduralną oraz zwraca dane lub stan.
Usługa Azure Synapse obsługuje procedury składowane przy użyciu języka T-SQL, dlatego należy ponownie zakodować wszystkie zmigrowane procedury składowane w tym języku.
Sekwencje
W netezza sekwencja jest nazwanym obiektem bazy danych utworzonym przy użyciu polecenia CREATE SEQUENCE
. Sekwencja udostępnia unikatowe wartości liczbowe za pośrednictwem NEXT VALUE FOR
metody . Wygenerowane unikatowe liczby można użyć jako wartości klucza zastępczego dla kluczy podstawowych.
Usługa Azure Synapse nie implementuje CREATE SEQUENCE
, ale można zaimplementować sekwencje przy użyciu kolumn IDENTITY lub kodu SQL, który generuje następny numer sekwencji w ciągu.
Wyodrębnianie metadanych i danych ze środowiska Netezza
Generowanie języka DDL (Data Definition Language)
Standard ANSI SQL definiuje podstawową składnię poleceń języka Data Definition Language (DDL). Niektóre polecenia DDL, takie jak CREATE TABLE
i CREATE VIEW
, są wspólne dla platformy Netezza i usługi Azure Synapse, ale zostały rozszerzone w celu zapewnienia funkcji specyficznych dla implementacji.
Możesz edytować istniejące skrypty CREATE TABLE
netezza CREATE VIEW
, aby uzyskać równoważne definicje w Azure Synapse. W tym celu może być konieczne użycie zmodyfikowanych typów danych i usunięcie lub zmodyfikowanie klauzul specyficznych dla platformy Netezza, takich jak ORGANIZE ON
.
W środowisku Netezza tabele katalogu systemowego określają aktualną tabelę i definicję widoku. W przeciwieństwie do dokumentacji obsługiwanej przez użytkownika informacje o katalogu systemowym są zawsze kompletne i zsynchronizowane z bieżącymi definicjami tabeli. Za pomocą narzędzi, takich jak nz_ddl_table
, można uzyskać dostęp do informacji katalogu systemu w celu wygenerowania CREATE TABLE
instrukcji DDL, które tworzą równoważne tabele w usłudze Azure Synapse.
Aby uzyskać podobne wyniki, można również użyć narzędzi do migracji innych firm i narzędzi ETL, które przetwarzają informacje o katalogu systemu.
Wyodrębnianie danych z Netezza
Nieprzetworzone dane tabel można wyodrębnić z tabel Netezza do płaskich plików rozdzielanych, takich jak pliki CSV, z użyciem standardowych narzędzi Netezza, takich jak nzsql i nzunload oraz za pomocą tabel zewnętrznych. Następnie możesz skompresować płaskie pliki rozdzielane przy użyciu narzędzia gzip i przekazać skompresowane pliki do usługi Azure Blob Storage przy użyciu narzędzia AzCopy lub narzędzi transportu danych platformy Azure, takich jak Azure Data Box.
Wyodrębniaj dane z tabeli jak najwydajniej. Użyj podejścia z tabelami zewnętrznymi, ponieważ jest to najszybsza metoda wyodrębniania. Wykonaj wiele wyodrębnień równolegle, aby zmaksymalizować wydajność wyodrębniania danych. Poniższa instrukcja SQL wykonuje wyodrębnianie tabeli zewnętrznej:
CREATE EXTERNAL TABLE '/tmp/export_tab1.csv' USING (DELIM ',') AS SELECT * from <TABLENAME>;
Jeśli dostępna jest wystarczająca przepustowość sieci, możesz wyodrębnić dane z lokalnego systemu Netezza bezpośrednio do tabel usługi Azure Synapse lub usługi Azure Blob Data Storage. W tym celu należy użyć procesów usługi Data Factory lub migracji danych innych firm lub produktów ETL.
Napiwek
Użyj tabel zewnętrznych Netezza do najbardziej wydajnego wyodrębniania danych.
Wyodrębnione pliki danych powinny zawierać tekst rozdzielany w formacie CSV, w formacie Optymalny układ wierszowo-kolumnowy (ORC) lub w formacie Parquet.
Aby uzyskać więcej informacji na temat migrowania danych i ETL ze środowiska Netezza, zobacz Migracja danych, ETL i ładowanie dla migracji Netezza.
Zalecenia dotyczące wydajności migracji Netezza
Celem optymalizacji wydajności jest taka sama lub lepsza wydajność magazynu danych po migracji do usługi Azure Synapse.
Podobieństwa w pojęciach dotyczących podejścia do dostrajania wydajności
Wiele pojęć dotyczących dostrajania wydajności baz danych Netezza odnosi się także do baz danych usługi Azure Synapse. Na przykład:
Użyj dystrybucji danych, aby umieścić dane do połączenia na tym samym węźle przetwarzania.
Użyj najmniejszego typu danych dla danej kolumny, aby zaoszczędzić miejsce do magazynowania i przyspieszyć przetwarzanie zapytań.
Upewnij się, że kolumny, które mają zostać połączone, mają ten sam typ danych, aby zoptymalizować przetwarzanie sprzężenia i zredukować konieczność przekształcania danych.
Aby pomóc optymalizatorowi utworzyć najlepszy plan wykonania, upewnij się, że statystyki są aktualne.
Monitorowanie wydajności przy użyciu wbudowanych funkcji bazy danych w celu zapewnienia wydajnego używania zasobów.
Napiwek
Priorytetyzuj zaznajomienie się z opcjami dostrajania w usłudze Azure Synapse na początku migracji.
Różnice w podejściu dostrajania wydajności
W tej sekcji przedstawiono różnice implementacji dostrajania wydajności niskiego poziomu między platformą Netezza i usługą Azure Synapse.
Opcje dystrybucji danych
W celu uzyskania wydajności usługa Azure Synapse została zaprojektowana z architekturą z wieloma węzłami i korzysta z przetwarzania równoległego. Aby zoptymalizować wydajność tabeli, można zdefiniować opcję dystrybucji danych w instrukcjach, wykorzystując CREATE TABLE
w Azure Synapse i DISTRIBUTION
w Netezza.
W przeciwieństwie do platformy Netezza usługa Azure Synapse obsługuje sprzężenia lokalne między małą tabelą a dużą tabelą przez małą replikację tabel. Rozważmy na przykład małą tabelę wymiarów i dużą tabelę faktów w modelu schematu gwiazdy. Usługa Azure Synapse może replikować mniejszą tabelę wymiarową na wszystkich węzłach, aby zapewnić, że każda wartość klucza sprzężenia dla dużej tabeli ma dopasowany, lokalnie dostępny wiersz wymiaru. Obciążenie replikacji tabeli wymiarów jest stosunkowo niskie dla małej tabeli wymiarów. W przypadku tabel o dużych wymiarach bardziej odpowiednie jest podejście dystrybucji skrótów. Aby uzyskać więcej informacji na temat opcji dystrybucji danych, zobacz Wskazówki dotyczące projektowania dotyczące używania replikowanych tabel i wskazówki dotyczące projektowania tabel rozproszonych.
Indeksowanie danych
Usługa Azure Synapse obsługuje kilka opcji indeksowania z możliwością definiowania użytkownika, które mają inną operację i użycie w porównaniu z mapami stref zarządzanych przez system w netezza. Aby uzyskać więcej informacji na temat różnych opcji indeksowania w usłudze Azure Synapse, zobacz Indeksy w tabelach dedykowanej puli SQL.
Istniejące mapy strefy zarządzanej przez system w źródłowym środowisku Netezza zapewniają przydatne wskazanie użycia danych i kolumn kandydatów do indeksowania w środowisku usługi Azure Synapse.
Data partitioning (Partycjonowanie danych)
W magazynie danych przedsiębiorstwa tabele faktów mogą zawierać miliardy wierszy. Partycjonowanie optymalizuje konserwację i wydajność zapytań tych tabel, dzieląc je na oddzielne części, aby zmniejszyć ilość przetwarzanych danych. W usłudze Azure Synapse CREATE TABLE
instrukcja definiuje specyfikację partycjonowania dla tabeli.
Do partycjonowania można używać tylko jednego pola na tabelę. To pole jest często polem daty, ponieważ wiele zapytań jest filtrowanych według daty lub zakresu dat. Po początkowym załadowaniu można zmienić partycjonowanie tabeli, wykorzystując instrukcję CREATE TABLE AS
(CTAS) do ponownego utworzenia tabeli z nową dystrybucją. Aby zapoznać się ze szczegółowym omówieniem partycjonowania w usłudze Azure Synapse, zobacz Partycjonowanie tabel w dedykowanej puli SQL.
Statystyki tabeli danych
Należy upewnić się, że statystyki dotyczące tabel danych są aktualne, wbudowując krok statystyk w zadania ETL/ELT.
Program PolyBase lub COPY INTO na potrzeby ładowania danych
Technologia PolyBase obsługuje wydajne ładowanie dużych ilości danych do magazynu danych przy użyciu strumieni ładowania równoległego. Aby uzyskać więcej informacji, zobacz Strategia ładowania danych polyBase.
COPY INTO obsługuje również wprowadzanie danych o wysokiej przepływności i:
Pobieranie danych ze wszystkich plików w folderze i podfolderach.
Pobieranie danych z wielu lokalizacji na tym samym koncie magazynowym. Można określić wiele lokalizacji przy użyciu ścieżek rozdzielanych przecinkami.
Usługi Azure Data Lake Storage (ADLS) i Azure Blob Storage.
Formaty plików CSV, PARQUET i ORC.
Zarządzanie obciążeniami
Uruchamianie mieszanych obciążeń może stanowić wyzwanie dla zasobów w obciążonych systemach. Pomyślny schemat zarządzania obciążeniami skutecznie zarządza zasobami, zapewnia wysoce wydajne wykorzystanie zasobów i maksymalizuje zwrot z inwestycji (ROI). Klasyfikacja obciążeń, ważność obciążenia i izolacja obciążenia zapewniają większą kontrolę nad sposobem korzystania z zasobów systemowych przez obciążenie.
W przewodniku zarządzania obciążeniami opisano techniki analizowania obciążenia, zarządzania i monitorowania ważności obciążenia oraz kroków konwertowania klasy zasobów na grupę obciążeń. Użyj portalu Azure i zapytań T-SQL na DMV, aby monitorować obciążenie w celu zapewnienia efektywnego wykorzystania odpowiednich zasobów.
Następne kroki
Aby dowiedzieć się więcej na temat procesu ETL i ładowania w kontekście migracji Netezza, zobacz następny artykuł w tej serii: Migracja danych, ETL i ładowanie dla migracji Netezza.