Freigeben über


Entwurf und Leistung für Netezza-Migrationen

Dieser Artikel ist Teil einer siebenteiligen Serie, die einen Leitfaden zum Migrieren von Netezza zu Azure Synapse Analytics bereitstellt. Der Schwerpunkt dieses Artikels liegt auf bewährten Methoden für Entwurf und Leistung.

Übersicht

Da der Support von IBM ausläuft, möchten viele bestehende Benutzer von Data Warehouse-Systemen von Netezza die Vorteile der Innovationen nutzen, die moderne Cloudumgebungen bieten. Cloudumgebungen vom Typ Infrastructure-as-a-Service (IaaS) und Platform-as-a-Service (PaaS) ermöglichen Ihnen das Delegieren von Aufgaben wie Infrastrukturwartung und Plattformentwicklung an den Cloudanbieter.

Tipp

Mehr als nur eine Datenbank – die Azure-Umgebung beinhaltet eine umfassende Reihe von Funktionen und Tools.

Obwohl Netezza und Azure Synapse Analytics beides SQL-Datenbanken sind, die Massively Parallel Processing (MPP)-Techniken verwenden, um eine hohe Abfrageleistung bei außergewöhnlich großen Datenmengen zu erreichen, gibt es einige grundlegende Unterschiede im Ansatz:

  • Ältere Netezza-Systeme werden häufig lokal installiert und verwenden proprietäre Hardware, während Azure Synapse cloudbasiert ist und Azure Storage- und Compute-Ressourcen nutzt.

  • Das Upgrade einer Netezza-Konfiguration ist eine große Aufgabe, die zusätzliche physische Hardware und möglicherweise langwierige Datenbank-Neukonfiguration oder Dump and Reload erfordert. Da Speicher- und Computeressourcen in der Azure-Umgebung voneinander getrennt sind und über die Funktion der elastischen Skalierung verfügen, können diese Ressourcen unabhängig hoch- oder herunterskaliert werden.

  • Sie können Azure Synapse nach Bedarf anhalten oder die Größe der Instanz ändern, um die Ressourcennutzung und die Kosten zu reduzieren.

Microsoft Azure ist eine weltweit verfügbare, äußerst sichere und skalierbare Cloudumgebung, die Azure Synapse und ein Ökosystem aus unterstützenden Tools und Möglichkeiten umfasst. Das nächste Diagramm fasst das Azure Synapse-Ökosystem zusammen.

Diagramm: Azure Synapse-Ökosystem mit unterstützenden Tools und Funktionen.

Azure Synapse bietet eine optimale Leistung für relationale Datenbanken, wobei Techniken wie MPP und mehrere Ebenen der automatisierten Zwischenspeicherung für häufig verwendete Daten genutzt werden. Die Ergebnisse dieser Techniken können Sie in unabhängigen Benchmarks einsehen, beispielsweise in dem kürzlich von GigaOm durchgeführten Benchmark, in dem Azure Synapse mit anderen gängigen cloudbasierten Data Warehouse-Angeboten verglichen wurde. Kunden, die zur Azure Synapse-Umgebung migrieren, profitieren von vielen Vorteilen, darunter:

  • Verbesserte Leistung und besseres Preis-Leistungs-Verhältnis

  • Höhere Flexibilität und schnellere Amortisierung

  • Schnellere Serverbereitstellung und Anwendungsentwicklung

  • Elastische Skalierbarkeit – nur für die tatsächliche Nutzung bezahlen

  • Verbesserte Sicherheit/Konformität

  • Niedrigere Kosten für Speicherung und Notfallwiederherstellung

  • Niedrigere Gesamtkosten, bessere Kostensteuerung und optimierte Betriebsausgaben (OPEX).

Migrieren Sie neue oder bereits vorhandene Daten und Anwendungen zur Azure Synapse-Plattform, um bestmöglich von diesen Vorteilen profitieren zu können. In vielen Organisationen umfasst die Migration das Verschieben eines vorhandenen Data Warehouse von einer älteren lokalen Plattform wie Netezza zu Azure Synapse. Auf hoher Ebene umfasst der Migrationsprozess die folgenden Schritte:

    Vorbereitung 🡆

  • Definieren von den Umfang – was migriert werden soll.

  • Erstellen einer Bestandsaufnahme der Daten und Prozesse für die Migration

  • Definieren von Datenmodelländerungen (falls erforderlich)

  • Definieren des Mechanismus zum Extrahieren von Quelldaten

  • Identifizieren der geeigneten Tools und Features von Azure und Drittanbietern, die verwendet werden sollen

  • Frühzeitige Schulung von Mitarbeitern für die neue Plattform

  • Einrichten der Azure-Zielplattform

    Migration 🡆

  • Einfaches Beginnen im kleinen Umfang

  • Nehmen Sie wann immer möglich eine Automatisierung vor.

  • Nutzen der integrierten Azure-Tools und -Features zum Verringern des Migrationsaufwands

  • Migrieren von Metadaten für Tabellen und Sichten

  • Migrieren von Verlaufsdaten, die beibehalten werden sollen

  • Migrieren oder Umgestalten von gespeicherten Prozeduren und Geschäftsprozessen

  • Migrieren oder Umgestalten von ETL/ELT-Prozessen für inkrementelles Laden

    Aufgaben nach der Migration

  • Überwachen und Dokumentieren aller Phasen des Prozesses

  • Nutzen der gewonnenen Erfahrungen zum Erstellen einer Vorlage für zukünftige Migrationen

  • Umgestalten des Datenmodells anhand der Leistung und Skalierbarkeit der neuen Plattform (falls erforderlich)

  • Testen von Anwendungen und Abfragetools

  • Erstellen von Benchmarks für die Abfrageleistung und Optimieren derselben

Dieser Artikel enthält allgemeine Informationen und Richtlinien zur Leistungsoptimierung beim Migrieren eines Data Warehouse aus einer vorhandenen Teradata-Umgebung zu Azure Synapse. Das Ziel der Leistungsoptimierung besteht darin, nach der Schemamigration die gleiche oder eine bessere Data Warehouse-Leistung in Azure Synapse zu erzielen.

Überlegungen zum Entwurf

Migrationsumfang

Berücksichtigen Sie beim Vorbereiten der Migration aus einer Netezza-Umgebung die folgenden Migrationsoptionen.

Auswählen der Workload für die erste Migration

Ältere Netezza-Umgebungen wurden meist im Lauf der Zeit auf mehrere Themenbereiche und gemischte Workloads ausgeweitet. Wenn Sie entscheiden, wo Sie mit einem Migrationsprojekt beginnen möchten, wählen Sie einen Bereich aus, in dem Sie Folgendes tun können:

  • Belegen der Machbarkeit einer Migration zu Azure Synapse durch schnelles Bereitstellen der Vorteile der neuen Umgebung.

  • Ermöglichen Sie Ihren internen technischen Mitarbeitern, relevante Erfahrungen mit den Prozessen und Tools zu sammeln, die sie verwenden werden, wenn sie andere Bereiche migrieren.

  • Erstellen einer Vorlage für weitere Migrationen speziell für die Netezza-Quellumgebung sowie die bereits vorhanden aktuellen Tools und Prozesse.

Ein guter Kandidat für eine erste Migration aus einer Netezza-Umgebung unterstützt die oben genannten Punkte und erfüllt Folgendes:

  • Implementiert eine BI/Analytics-Workload anstelle einer Online-Transaktionsverarbeitung (OLTP)-Workload.

  • Ein Datenmodell, z. B. ein Stern- oder Schneeflockenschema, das mit minimalen Änderungen migriert werden kann.

Tipp

Erstellen Sie eine Bestandsaufnahme der zu migrierenden Objekte, und dokumentieren Sie den Migrationsprozess.

Das Volumen der migrierten Daten in der ersten Migration sollte groß genug sein, um die Möglichkeiten und Vorteile der Azure Synapse-Umgebung aufzuzeigen, aber nicht zu groß, damit der Nutzen schnell veranschaulicht werden kann. In der Regel liegt die Größe im Bereich von 1 bis 10 TB.

Minimieren Sie für Ihr erstes Migrationsprojekt das Risiko, den Aufwand und die Migrationszeit, sodass Sie schnell die Vorteile der Azure-Cloudumgebung feststellen können. Sowohl der Lift & Shift- als auch der phasenorientierte Migrationsansatz beschränken den Umfang der ersten Migration auf die Data Marts und berücksichtigen keine umfassenderen Migrationsaspekte wie die ETL-Migration und die Migration von Verlaufsdaten. Sie können diese Aspekte jedoch in späteren Phasen des Projekts angehen, sobald die migrierte Datamart-Schicht mit Daten und den erforderlichen Build-Prozessen aufgefüllt wurde.

Migration per Lift & Shift im Vergleich zu einem phasenorientierten Ansatz

Unabhängig vom Zweck und Umfang der geplanten Migration gibt es im Allgemeinen zwei Typen von Migration: eine unveränderte Migration per Lift & Shift und einen phasenorientierten Ansatz, der Änderungen einbindet.

Lift & Shift

Bei einer Migration per Lift & Shift wird das vorhandene Datenmodell (z. B. ein Sternschema) unverändert zur neuen Azure Synapse-Plattform migriert. Dieser Ansatz minimiert die Risiken und die Migrationsdauer, indem der Aufwand reduziert wird, der erforderlich ist, um die Vorteile der Umstellung auf die Azure-Cloudumgebung nutzen zu können. Lift-and-Shift-Migration eignet sich gut für diese Szenarien:

  • Sie verfügen über eine bestehende Netezza-Umgebung mit einem einzigen zu migrierenden Data Mart, oder
  • Sie haben eine vorhandene Netezza-Umgebung mit Daten, die sich bereits in einem gut gestalteten Stern- oder Schneeflockenschema befinden, oder
  • Sie stehen unter Zeit- und Kostendruck, um auf eine moderne Cloud-Umgebung umzusteigen.

Tipp

Die Migration per Lift & Shift ist ein guter Ausgangspunkt, auch wenn in nachfolgenden Phasen Änderungen am Datenmodell implementiert werden.

Phasenorientierter Ansatz unter Einbindung von Änderungen

Wenn ein Legacy-Data Warehouse über einen längeren Zeitraum weiterentwickelt wurde, müssen Sie es möglicherweise umstrukturieren, um die erforderlichen Leistungsstufen beibehalten zu können. Möglicherweise müssen Sie auch umstrukturieren, um neue Daten wie Internet of Things (IoT)-Streams zu unterstützen. Migrieren Sie im Rahmen des Umstrukturierungsprozesses zu Azure Synapse, um die Vorteile einer skalierbaren Cloudumgebung nutzen zu können. Die Migration kann auch eine Änderung des zugrunde liegenden Datenmodells umfassen, z. B. eine Umstellung von einem Inmon-Modell zu einem Datentresor.

Microsoft empfiehlt, Ihr vorhandenes Datenmodell unverändert in Azure zu verschieben und die Leistung und Flexibilität der Azure-Umgebung zu nutzen, um die Reengineering-Änderungen anzuwenden. Auf diese Weise können Sie die Funktionen von Azure nutzen, um die Änderungen vorzunehmen, ohne das vorhandene Quellsystem zu beeinträchtigen.

Verwenden von Azure Data Factory zum Implementieren einer metadatengesteuerten Migration

Sie können den Migrationsprozess mithilfe der Funktionen der Azure-Umgebung automatisieren und orchestrieren. Bei diesem Ansatz werden die Leistungseinbußen in der vorhandenen Teradata-Umgebung, deren Kapazität möglicherweise bereits nahezu ausgeschöpft ist, minimiert.

Azure Data Factory ist ein cloudbasierter Datenintegrationsdienst, der das Erstellen datengesteuerter Workflows in der Cloud unterstützt, die Datenverschiebungen und Datentransformationen orchestrieren und automatisieren. Mit Data Factory können Sie datengesteuerte Workflows (Pipelines) erstellen und planen, die Daten aus unterschiedlichen Datenspeichern erfassen. Data Factory kann Daten mithilfe von Computediensten wie Azure HDInsight Hadoop, Spark, Azure Data Lake Analytics und Azure Machine Learning verarbeiten und transformieren.

Wenn Sie die Möglichkeiten von Data Factory zum Verwalten des Migrationsprozesses nutzen möchten, erstellen Sie Metadaten, die alle zu migrierenden Datentabellen und deren Speicherort auflisten.

Entwurfsunterschiede zwischen Netezza und Azure Synapse

Wie bereits erwähnt, gibt es zwischen Netezza- und Azure Synapse Analytics-Datenbanken einige grundlegende Unterschiede bei der Vorgehensweise, die im Folgenden erörtert werden.

Mehrere Datenbanken im Vergleich zu einem Singleton und Schemas

In der Teradata-Umgebung sind häufig mehrere separate Datenbanken vorhanden. Beispielsweise könnten separate Datenbanken für Datenerfassungs- und Stagingtabellen, für zentrale Warehousetabellen und für Data Marts (manchmal auch als semantische Ebene bezeichnet) vorhanden sein. Bei ETL- oder ELT-Pipelineprozessen werden möglicherweise datenbankübergreifende Joins implementiert und Daten zwischen den separaten Datenbanken verschoben.

Im Gegensatz dazu enthält die Azure Synapse-Umgebung eine einzelne Datenbank und verwendet Schemas, um Tabellen in logisch getrennte Gruppen zu unterteilen. Wir empfehlen, dass Sie eine Reihe von Schemas innerhalb der Azure Synapse-Zieldatenbank verwenden, um die separaten Datenbanken nachzuahmen, die aus der Netezza-Umgebung migriert wurden. Wenn in der Netezza-Umgebung bereits Schemas verwendet werden, müssen Sie möglicherweise die Namenskonvention ändern, wenn Sie die vorhandenen Netezza-Tabellen und -Sichten in die neue Umgebung verschieben. Beispielsweise könnten Sie das vorhandene Netezza-Schema und die Tabellennamen mit dem neuen Azure Synapse-Tabellennamen verketten und Schemanamen in der neuen Umgebung verwenden, um die ursprünglichen separaten Datenbanknamen beizubehalten. Wenn die Benennung der Schemakonsolidierung Punkte aufweist, können in Azure Synapse Spark Probleme auftreten. Sie können zwar SQL-Sichten für die zugrunde liegenden Tabellen verwenden, um die logischen Strukturen beizubehalten, dieser Ansatz birgt jedoch potenzielle Nachteile:

  • Ansichten in Azure Synapse sind schreibgeschützt, sodass alle Updates an den Daten in den zugrunde liegenden Basistabellen erfolgen müssen.

  • Es kann bereits mindestens eine Ebene von Sichten vorhanden sein, und das Hinzufügen einer zusätzlichen Ebene von Sichten könnte die Leistung und Unterstützbarkeit beeinträchtigen, weil Probleme mit geschachtelten Sichten schwer zu beheben sind.

Tipp

Kombinieren Sie in Azure Synapse mehrere Datenbanken in einer einzelnen Datenbank, und verwenden Sie Schemanamen, um die Tabellen logisch zu trennen.

Überlegungen zu Tabellen

Wenn Sie Tabellen zwischen verschiedenen Umgebungen migrieren, werden in der Regel nur die Rohdaten und die Metadaten, die sie beschreiben, physisch migriert. Andere Datenbankelemente aus dem Quellsystem, wie z. B. Indizes, werden in der Regel nicht migriert, weil sie in der neuen Umgebung möglicherweise nicht benötigt oder anders implementiert werden.

Leistungsoptimierungen in der Quellumgebung, wie z. B. Indizes, zeigen an, wo Sie Leistungsoptimierungen in der neuen Umgebung hinzufügen könnten. Wenn beispielsweise Abfragen in der Netezza-Quellumgebung häufig Zonenzuordnungen verwenden, legt dies nahe, dass ein nicht gruppierter Index in Azure Synapse erstellt werden sollte. Andere native Techniken zur Leistungsoptimierung wie die Tabellenreplikation sind möglicherweise besser geeignet als die direkte gleichartige Indexerstellung.

Tipp

Vorhandene Indizes zeigen Kandidaten für die Indizierung im migrierten Warehouse an.

Nicht unterstützte Typen von Netezza-Datenbankobjekten

Netezza-spezifische Features können oft durch Azure Synapse-Features ersetzt werden. Einige Netezza-Datenbankobjekte werden jedoch nicht direkt in Azure Synapse unterstützt. Die folgende Liste von nicht unterstützten Netezza-Datenbankobjekten beschreibt, wie Sie eine gleichwertige Funktionalität in Azure Synapse erreichen können.

  • Zonenzuordnungen: In Netezza werden Zonenzuordnungen für die folgenden Spaltentypen automatisch erstellt und verwaltet. Sie werden zur Abfragezeit verwendet, um die zu überprüfende Datenmenge einzuschränken:

    • INTEGER Spalten mit einer Länge von 8 Bytes oder weniger.
    • Temporale Spalten, z. B. DATE, TIME und TIMESTAMP.
    • CHAR-Spalten, wenn diese Teil einer materialisierten Sicht sind und in der ORDER BY-Klausel erwähnt werden.

    Sie können herausfinden, welche Spalten Zonenzuordnungen haben, indem Sie das nz_zonemap-Dienstprogramm verwenden, das Teil des NZ-Toolkits ist. In Azure Synapse sind keine Zonenzuordnungen enthalten. Es ist jedoch möglich, ähnliche Ergebnisse mit anderen benutzerdefinierten Indextypen und/oder Partitionierungen zu erzielen.

  • Gruppierte Basistabellen (CBT): In Netezza werden CBTs häufig für Faktentabellen verwendet, die Milliarden von Datensätzen enthalten können. Das Scannen einer sehr großen Tabelle erfordert eine beträchtliche Verarbeitungszeit, da ein vollständiger Tabellenscan erforderlich sein könnte, um die relevanten Datensätze zu erhalten. Durch Organisieren von Datensätzen in restriktiven CBTs können Datensätze in Netezza in denselben oder angrenzenden Erweiterungen gruppiert werden. Bei diesem Vorgang werden auch Zonenzuordnungen erstellt, die die Leistung durch eine Verkleinerung der zu überprüfenden Datenmenge verbessern.

    In Azure Synapse können Sie einen ähnlichen Effekt erreichen, indem Sie partitionieren und/oder andere Indizes verwenden.

  • Materialisierte Sichten: Netezza unterstützt materialisierte Sichten und empfiehlt die Verwendung einer oder mehrerer materialisierter Sichten für große Tabellen mit vielen Spalten, wenn nur wenige Spalten regelmäßig in Abfragen verwendet werden. Materialisierte Ansichten werden vom System automatisch aktualisiert, wenn Daten in der Basistabelle aktualisiert werden.

    Azure Synapse unterstützt materialisierte Sichten mit derselben Funktionalität wie Netezza.

Netezza-Datentypzuordnung

In Azure Synapse gibt es eine direkte Entsprechung für die meisten Netezza-Datentypen. Die folgende Tabelle zeigt den empfohlenen Ansatz zum Zuordnen von Netezza-Datentypen zu Azure Synapse.

Netezza-Datentyp Azure Synapse-Datentyp
bigint bigint
BINARY VARYING(n) VARBINARY(n)
BOOLEAN BIT
BYTEINT TINYINT
CHARACTER VARYING(n) VARCHAR(n)
CHARACTER(n) CHAR(n)
DATE DATE(date)
DECIMAL(p,s) DECIMAL(p,s)
DOUBLE PRECISION GLEITKOMMAZAHL
FLOAT(n) FLOAT(n)
INTEGER INT
INTERVAL INTERVAL-Datentypen werden derzeit nicht direkt in Azure Synapse unterstützt, können jedoch mithilfe temporaler Funktionen wie DATEDIFF berechnet werden.
MONEY MONEY
NATIONAL CHARACTER VARYING(n) NVARCHAR(n)
NATIONAL CHARACTER(n) NCHAR(n)
NUMERIC(p,s) NUMERIC(p,s)
real REAL
SMALLINT SMALLINT
ST_GEOMETRY(n) Räumliche Datentypen wie ST_GEOMETRY werden derzeit nicht in Azure Synapse unterstützt, die Daten können allerdings als VARCHAR oder VARBINARY gespeichert werden.
TIME TIME
TIME WITH TIME ZONE DATETIMEOFFSET
timestamp DATETIME

Tipp

Bewerten Sie die Anzahl und Art der nicht unterstützten Datentypen während der Migrationsvorbereitungsphase.

Drittanbieter bieten Tools und Dienste zur Automatisierung der Migration an, einschließlich der Zuordnung von Datentypen. Wenn in der Netezza-Umgebung bereits ein ETL-Tool eines Drittanbieters verwendet wird, verwenden Sie dieses Tool, um alle erforderlichen Datentransformationen zu implementieren.

Syntaxunterschiede in SQL DML

SQL DML-Syntaxunterschiede sind zwischen Netezza SQL und Azure Synapse T-SQL vorhanden. Diese Unterschiede werden ausführlich in Minimieren von SQL-Problemen bei Netezza-Migrationen erläutert.

  • STRPOS: In Netezza gibt die STRPOS-Funktion die Position einer Unterzeichenfolge innerhalb einer Zeichenfolge zurück. Die entsprechende Funktion in Azure Synapse ist CHARINDEX, die Reihenfolge der Argumente ist jedoch umgekehrt. SELECT STRPOS('abcdef','def')... in Netezza entspricht z. B. SELECT CHARINDEX('def','abcdef')... in Azure Synapse.

  • AGE: Netezza unterstützt den Operator AGE, um das Intervall zwischen zwei temporalen Werten zu ermitteln, z. B. zwischen Zeitstempeln oder Datumsangaben. Beispiel: SELECT AGE('23-03-1956','01-01-2019') FROM.... In Azure Synapse verwenden Sie DATEDIFF, um das Intervall zu erhalten, z. B.: SELECT DATEDIFF(day, '1956-03-26','2019-01-01') FROM.... Notieren Sie sich die Sequenz der Datumsdarstellung.

  • NOW(): Netezza verwendet NOW(), um CURRENT_TIMESTAMP in Azure Synapse darzustellen.

Funktionen, gespeicherte Prozeduren und Sequenzen

Wenn Sie ein Data Warehouse aus einer ausgereiften Umgebung wie Netezza migrieren, müssen Sie wahrscheinlich andere Elemente als einfache Tabellen und Ansichten migrieren. Überprüfen Sie, ob Tools in der Azure-Umgebung die Funktionalität von Funktionen, gespeicherten Prozeduren und Sequenzen ersetzen können, da es in der Regel effizienter ist, integrierte Azure-Tools zu verwenden, als diese Elemente für Azure Synapse neu zu codieren.

Erstellen Sie im Rahmen Ihrer Vorbereitungsphase eine Bestandsaufnahme der zu migrierenden Objekte, definieren Sie eine Methode für deren Handhabung, und weisen Sie entsprechende Ressourcen in Ihrem Migrationsplan zu.

Datenintegrationspartner bieten Tools und Dienste, mit denen die Migration von Funktionen, gespeicherten Prozeduren und Sequenzen automatisiert werden kann.

In den folgenden Abschnitten wird die Migration von Funktionen, gespeicherten Prozeduren und Sequenzen näher erläutert.

Functions

Wie bei den meisten Datenbankprodukten unterstützt Netezza system- und benutzerdefinierte Funktionen innerhalb einer SQL-Implementierung. Wenn Sie eine Legacy-Datenbankplattform zu Azure Synapse migrieren, können allgemeine Systemfunktionen normalerweise ohne Änderung migriert werden. Einige Systemfunktionen haben möglicherweise eine etwas andere Syntax, aber alle erforderlichen Änderungen können automatisiert werden.

Für Netezza-Systemfunktionen oder beliebige benutzerdefinierte Funktionen, die in Azure Synapse keine Entsprechung haben, programmieren Sie diese Funktionen mit einer Zielumgebungssprache neu. Benutzerdefinierte Netezza-Funktionen sind in den Sprachen nzLua oder C++ programmiert. In Azure Synapse werden benutzerdefinierte Funktionen mithilfe der Sprache „Transact-SQL“ implementiert.

Gespeicherte Prozeduren

Die meisten modernen Datenbankprodukte unterstützen das Speichern von Prozeduren innerhalb der Datenbank. Netezza bietet zu diesem Zweck die Sprache NZPLSQL, die auf Postgres PL/pgSQL basiert. Eine gespeicherte Prozedur enthält normalerweise sowohl SQL-Anweisungen als auch prozedurale Logik und gibt Daten oder einen Status zurück.

Azure Synapse unterstützt gespeicherte Prozeduren mithilfe von T-SQL. Daher müssen Sie alle migrierten gespeicherten Prozeduren in dieser Sprache umprogrammieren.

Sequenzen

In Netezza ist eine Sequenz ein benanntes Datenbankobjekt, das mit CREATE SEQUENCE erstellt wird. Eine Sequenz stellt eindeutige numerische Werte über die NEXT VALUE FOR-Method bereit. Sie können die generierten eindeutigen Nummern als Ersatzschlüsselwerte für Primärschlüssel verwenden.

Azure Synapse implementiert CREATE SEQUENCE nicht, aber Sie können Sequenzen mithilfe von IDENTITY-Spalten oder SQL-Code implementieren, der die nächste Sequenznummer in einer Serie generiert.

Extrahieren von Metadaten und Daten aus einer Netezza-Umgebung

Generierung von DDL-Anweisungen (Data Definition Language, Datendefinitionssprache)

Der ANSI-SQL-Standard definiert die grundlegende Syntax für Data Definition Language (DDL)-Befehle. Einige DDL-Befehle, z. B. CREATE TABLE und CREATE VIEW, sind sowohl bei Netezza als auch bei Azure Synapse vorhanden, wurden jedoch erweitert, um implementierungsspezifische Features zu bieten.

Sie können vorhandene Netezza CREATE TABLE- und CREATE VIEW-Skripts bearbeiten, um gleichwertige Definitionen in Azure Synapse zu erhalten. Dazu müssen Sie möglicherweise geänderte Datentypen verwenden und Netezza-spezifische Klauseln wie z. B. ORGANIZE ON entfernen oder ändern.

Innerhalb der Netezza-Umgebung geben Systemkatalogtabellen die aktuelle Tabellen- und Ansichtsdefinition an. Im Gegensatz zur benutzerseitig verwalteten Dokumentation sind Systemkataloginformationen immer vollständig und mit aktuellen Tabellendefinitionen synchronisiert. Mithilfe von Hilfsprogrammen wie nz_ddl_table können Sie auf Systemkataloginformationen zugreifen, um DDL-Anweisungen vom Typ CREATE TABLE zu generieren, mit denen die entsprechenden Tabellen in Azure Synapse erstellt werden.

Sie können auch Migrations- und ETL-Tools von Drittanbietern verwenden, die Systemkataloginformationen verarbeiten, um ähnliche Ergebnisse zu erzielen.

Extrahieren von Daten aus Netezza

Sie können Tabellen mit Rohdaten aus Netezza-Tabellen in flachen, durch Trennzeichen getrennten Dateien wie CSV-Dateien extrahieren, indem Sie standardmäßige Hilfsprogramme von Netezza wie „nzsql“ und „nzunload“ oder externe Tabellen verwenden. Anschließend können Sie die flach getrennten Dateien mit gzip komprimieren und die komprimierten Dateien mit AzCopy oder Azure-Datentransporttools wie Azure Data Box in Azure Blob Storage hochladen.

Extrahieren Sie Tabellendaten so effizient wie möglich. Verwenden Sie den Ansatz der externen Tabellen, da dies die schnellste Extraktionsmethode ist. Führen Sie mehrere Extraktionen parallel durch, um den Durchsatz bei der Datenextraktion zu maximieren. Die folgende SQL-Anweisung führt eine externe Tabellenextraktion durch:

CREATE EXTERNAL TABLE '/tmp/export_tab1.csv' USING (DELIM ',') AS SELECT * from <TABLENAME>;

Wenn ausreichend Netzwerkbandbreite verfügbar ist, können Sie Daten aus einem lokalen Netezza-System direkt in Azure Synapse-Tabellen oder Azure Blob Data Storage extrahieren. Verwenden Sie hierfür Data Factory-Prozesse oder Datenmigrations- oder ETL-Produkte von Drittanbietern.

Tipp

Verwenden Sie externe Netezza-Tabellen für die effizienteste Datenextraktion.

Extrahierte Datendateien sollten durch Trennzeichen getrennten Text enthalten – und im Format CSV, Optimized Row Columnar (ORC) oder Parquet vorliegen.

Weitere Informationen zum Migrieren von Daten und ETL-Prozessen aus einer Netezza-Umgebung finden Sie unter Datenmigration, ETL und Laden für die Netezza-Migration.

Leistungsempfehlungen für Netezza-Migrationsvorgänge

Das Ziel der Leistungsoptimierung ist die gleiche oder bessere Data Warehouse-Leistung nach der Migration zu Azure Synapse.

Ähnlichkeiten in Leistungsoptimierungskonzepten

Viele Leistungsoptimierungskonzepte für Netezza-Datenbanken gelten auch für Azure Synapse-Datenbanken. Zum Beispiel:

  • Verwenden Sie die Datenverteilung, um zusammenzuführende Daten auf demselben Verarbeitungsknoten zusammenzufassen.

  • Verwenden Sie den kleinsten Datentyp für eine bestimmte Spalte, um Speicherplatz zu sparen und die Abfrageverarbeitung zu beschleunigen.

  • Stellen Sie sicher, dass zu verbindende Spalten denselben Datentyp haben, um die Join-Verarbeitung zu optimieren und die Notwendigkeit von Datentransformationen zu reduzieren.

  • Um dem Optimierer zu helfen, den besten Ausführungsplan zu erstellen, stellen Sie sicher, dass die Statistiken auf dem neuesten Stand sind.

  • Überwachen Sie die Leistung mithilfe integrierter Datenbankfunktionen, um sicherzustellen, dass Ressourcen effizient genutzt werden.

Tipp

Machen Sie sich zu Beginn einer Migration zuerst mit den Optimierungsoptionen in Azure Synapse vertraut.

Unterschiede in Leistungsoptimierungskonzepten

In diesem Abschnitt werden Unterschiede bei der Implementierung der Leistungsoptimierung auf niedriger Ebene zwischen Netezza und Azure Synapse hervorgehoben.

Datenverteilungsoptionen

Aus Leistungsgründen wurde Azure Synapse mit einer Architektur mit mehreren Knoten entwickelt und verwendet parallele Verarbeitung. Um die Tabellenleistung zu optimieren, können Sie eine Datenverteilungsoption in CREATE TABLE-Anweisungen definieren, die DISTRIBUTION in Azure Synapse und DISTRIBUTE ON in Netezza verwenden.

Im Gegensatz zu Netezza unterstützt Azure Synapse lokale Verknüpfungen zwischen einer kleinen Tabelle und einer großen Tabelle durch die Replikation kleiner Tabellen. Betrachten Sie beispielsweise eine kleine Dimensionstabelle und eine große Faktentabelle in einem Sternschemamodell. Azure Synapse kann die kleinere Dimensionstabelle auf alle Knoten replizieren, um sicherzustellen, dass für jeden Wert eines Joinschlüssels der großen Tabelle eine entsprechende, lokal verfügbare Dimensionszeile vorhanden ist. Der Aufwand der Dimensionstabellenreplikation ist bei einer kleinen Dimensionstabelle relativ gering. Bei großen Dimensionstabellen ist ein Hashverteilungsansatz besser geeignet. Weitere Informationen zu Datenverteilungsoptionen finden Sie unter Anleitung für das Verwenden replizierter Tabellen und Leitfaden zum Entwerfen von verteilten Tabellen.

Datenindizierung

Azure Synapse unterstützt mehrere benutzerdefinierbare Indizierungsoptionen, die im Vergleich zu systemverwalteten Zonenzuordnungen in Netezza einen anderen Betrieb und eine andere Verwendung haben. Weitere Informationen zu den verschiedenen Indizierungsoptionen in Azure Synapse finden Sie unter Indizes von Tabellen in dedizierten SQL-Pools.

Die vorhandenen, systemseitig verwalteten Zonenzuordnungen innerhalb einer Netezza-Quellumgebung liefern einen nützlichen Hinweis auf die Datennutzung und die Kandidatenspalten für die Indizierung in der Azure Synapse-Umgebung.

Datenpartitionierung

Im Data Warehouse eines Unternehmens können Faktentabellen Milliarden von Zeilen enthalten. Die Partitionierung optimiert die Verwaltung und Abfrageleistung dieser Tabellen, indem sie in separate Teile aufgeteilt werden, um die verarbeitete Datenmenge zu reduzieren. In Azure Synapse definiert die CREATE TABLE-Anweisung die Partitionierungsspezifikation für eine Tabelle.

Sie können nur ein Feld pro Tabelle für die Partitionierung verwenden. Bei diesem Feld handelt es sich häufig um ein Datumsfeld, da viele Abfragen nach Datum oder Datumsbereich gefiltert werden. Sie können die Partitionierung einer Tabelle nach dem ersten Laden ändern, indem Sie die Tabelle mit einer neuen Verteilung mithilfe der Anweisung CREATE TABLE AS (CTAS) neu erstellen. Eine ausführliche Erläuterung der Partitionierung in Azure Synapse finden Sie unter Partitionieren von Tabellen im dedizierten SQL-Pool.

Datentabellenstatistiken

Sie müssen sicherstellen, dass Statistiken zu Datentabellen auf dem neuesten Stand sind, indem Sie den Schritt Statistik für ETL-/ELT-Aufträge erstellen.

PolyBase oder COPY INTO zum Laden von Daten

PolyBase unterstützt das effiziente Laden großer Datenmengen in ein Data Warehouse mithilfe paralleler Ladedatenströme. Weitere Informationen finden Sie in der PolyBase-Datenladestrategie.

COPY INTO unterstützt auch die Datenerfassung mit hohem Durchsatz und Folgendes:

  • Datenabruf aus allen Dateien innerhalb eines Ordners und Unterordners.

  • Datenabruf aus mehreren Speicherorten im selben Speicherkonto. Sie können mehrere Speicherorte angeben, indem Sie durch Trennzeichen getrennte Pfade verwenden.

  • Azure Data Lake Storage (ADLS) und Azure Blob Storage.

  • Die Dateiformate CSV, PARQUET und ORC.

Verwalten von Arbeitsauslastungen

Das Ausführen gemischter Workloads kann bei ausgelasteten Systemen zu Ressourcenproblemen führen. Ein erfolgreiches Workload-Management-Schema verwaltet Ressourcen effektiv, stellt eine hocheffiziente Ressourcennutzung sicher und maximiert die Kapitalrendite (ROI). Die Workload-Klassifizierung, die Workload-Priorität und die Workload-Isolation geben mehr Kontrolle darüber, wie die Workload Systemressourcen nutzt.

Der Workload-Management-Leitfaden beschreibt die Techniken zum Analysieren der Workload, Verwalten und Überwachen der Workload-Bedeutung und die Schritte zum Konvertieren einer Ressourcenklasse in eine Workload-Gruppe. Verwenden Sie das Azure-Portal und T-SQL-Abfragen auf DMVs, um die Workload zu überwachen und sicherzustellen, dass die entsprechenden Ressourcen effizient genutzt werden.

Nächste Schritte

Informationen zu ETL und zum Laden für die Netezza-Migration finden Sie im nächsten Artikel in dieser Reihe: Datenmigration, ETL und Laden für die Netezza-Migration.