Projektowanie i wydajność migracji Netezza
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 główne zadanie obejmujące dodatkowy sprzęt fizyczny i potencjalnie długi ponowny rekonfiguracja bazy danych lub zrzut i ponowne ładowanie. 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 krótszy czas na wartość.
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 inne firmy, które mają być używane.
Szkolenie pracowników na początku nowej platformy.
Skonfiguruj platformę docelową platformy 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 utrzymania.
Migrowanie lub refaktoryzacja procedur składowanych i 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 netezza wsparcie środowiska poprzednie elementy i:
Implementuje obciążenie analizy biznesowej/analizy, a nie obciążenie 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 metody migracji metodą "lift-and-shift" ograniczają zakres migracji początkowej tylko do składnic danych i nie dotyczą 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ą „lift-and-shift”
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
- Czas i presja kosztów jest niewystarczająca, aby przejść do nowoczesnego środowiska chmury.
Napiwek
Lift and shift to dobry punkt wyjścia, nawet jeśli kolejne fazy implementują 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. Konieczne może być również ponowne tworzenie inżynierów w celu obsługi nowych danych, takich jak strumienie 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 do magazynu danych.
Firma Microsoft zaleca przeniesienie istniejącego modelu danych zgodnie z oczekiwaniami na platformę Azure oraz użycie wydajności i elastyczności środowiska platformy Azure w celu zastosowania zmian ponownej inżynierii. 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 trafienie wydajności w istniejącym środowisku Netezza, które może już działać blisko pojemnoś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: pozyskiwanie danych i tabele przejściowe, podstawowe tabele magazynu 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 podstawowych.
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.
Zagadnienia dotyczące tabeli
Podczas migracji tabel między różnymi środowiskami zazwyczaj tylko nieprzetworzone dane i metadane, które opisują je fizycznie. 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.
Napiwek
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ĘTNE (p, s) |
PODWÓJNA PRECYZJA | SPŁAWIK |
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. |
TIME | TIME |
CZAS ZE STREFĄ CZASOWĄ | DATETIMEOFFSET |
TIMESTAMP | DATA/GODZINA |
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 bazą danych SQL na potrzeby migracji netezza.
STRPOS
: w netezzaSTRPOS
funkcja zwraca pozycję podciągu w ciągu. Równoważna funkcja w usłudze Azure Synapse maCHARINDEX
kolejność odwróconych 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()
: Narzędzie Netezza używaNOW()
funkcji 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
metody , ale można zaimplementować sekwencje przy użyciu kolumn IDENTITY lub kodu SQL, który generuje następny numer sekwencji w serii.
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.
Istniejące skrypty i CREATE VIEW
netezza CREATE TABLE
można edytować, aby uzyskać równoważne definicje w usłudze 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 wykazu systemu określają bieżącą 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 tabeli można wyodrębnić z tabel Netezza do plików rozdzielanych płaskimi, takich jak pliki CSV, przy użyciu standardowych narzędzi Netezza, takich jak nzsql i nzunload, lub 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ębnianie danych tabeli tak wydajnie, jak to możliwe. Użyj podejścia do tabel zewnętrznych, ponieważ jest to najszybsza metoda wyodrębniania. Wykonaj wiele wyodrębnień równolegle, aby zmaksymalizować przepływność 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ć rozdzielany tekst w formacie CSV, zoptymalizowanym kolumnie wierszy (ORC) lub Parquet.
Aby uzyskać więcej informacji na temat migrowania danych i etL ze środowiska Netezza, zobacz Migracja danych, ETL i ładowanie 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 ma wartość true dla baz danych usługi Azure Synapse. Na przykład:
Użyj dystrybucji danych, aby połączyć dane do przyłączenia do tego samego węzła przetwarzania.
Użyj najmniejszego typu danych dla danej kolumny, aby zaoszczędzić miejsce do magazynowania i przyspieszyć przetwarzanie zapytań.
Upewnij się, że kolumny do sprzężenia mają ten sam typ danych, aby zoptymalizować przetwarzanie sprzężenia i zmniejszyć potrzebę 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
Określ priorytety opcji 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 CREATE TABLE
instrukcjach przy użyciu DISTRIBUTION
usług Azure Synapse i DISTRIBUTE ON
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ę wymiarów we wszystkich węzłach, aby upewnić się, że wartość dowolnego klucza sprzężenia dla dużej tabeli ma pasujący, lokalnie dostępny wiersz wymiaru. Obciążenie replikacji tabeli wymiarów jest stosunkowo niskie dla małej tabeli wymiarów. W przypadku tabel dużych wymiarów 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 dedykowanych tabelach 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 przy użyciu instrukcji (CTAS), aby ponownie utworzyć tabelę przy użyciu CREATE TABLE AS
nowej dystrybucji. 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, tworząc krok statystyki dla zadań 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.
FUNKCJA COPY INTO obsługuje również pozyskiwanie 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 magazynu. 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 systemach zajętych. 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 witryny Azure Portal i zapytań T-SQL w widokach 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 migracji netezza, zobacz następny artykuł w tej serii: Migracja danych, ETL i ładowanie migracji Netezza.