Share via


Ontwerpen en prestaties voor Netezza-migraties

Dit artikel is deel één van een zevendelige reeks die richtlijnen biedt voor het migreren van Netezza naar Azure Synapse Analytics. De focus van dit artikel ligt op aanbevolen procedures voor ontwerp en prestaties.

Overzicht

Vanwege het einde van de ondersteuning van IBM willen veel bestaande gebruikers van Netezza-datawarehousesystemen profiteren van de innovaties die worden geboden door moderne cloudomgevingen. Met IaaS-omgevingen (Infrastructure-as-a-Service) en PaaS-cloudomgevingen (Platform as a Service) kunt u taken, zoals infrastructuuronderhoud en platformontwikkeling, delegeren aan de cloudprovider.

Tip

Meer dan alleen een database: de Azure-omgeving bevat een uitgebreide set mogelijkheden en hulpprogramma's.

Hoewel Netezza en Azure Synapse Analytics beide SQL-databases zijn die MPP-technieken (Massively Parallel Processing) gebruiken om hoge queryprestaties te bereiken op uitzonderlijk grote gegevensvolumes, zijn er enkele eenvoudige verschillen in aanpak:

  • Verouderde Netezza-systemen worden vaak on-premises geïnstalleerd en gebruiken eigen hardware, terwijl Azure Synapse cloudgebaseerde azure-opslag- en rekenresources gebruikt.

  • Het upgraden van een Netezza-configuratie is een belangrijke taak met extra fysieke hardware en mogelijk langdurige herconfiguratie van databases, of dumpen en opnieuw laden. Omdat opslag- en rekenresources gescheiden zijn in de Azure-omgeving en elastisch kunnen worden geschaald, kunnen deze resources onafhankelijk van elkaar of naar beneden worden geschaald.

  • U kunt Azure Synapse zo nodig onderbreken of het formaat ervan wijzigen om het resourcegebruik en de kosten te verminderen.

Microsoft Azure is een wereldwijd beschikbare, uiterst veilige, schaalbare cloudomgeving met Azure Synapse en een ecosysteem van ondersteunende hulpprogramma's en mogelijkheden. In het volgende diagram ziet u een overzicht van het Azure Synapse-ecosysteem.

Grafiek met het Azure Synapse-ecosysteem van ondersteunende hulpprogramma's en mogelijkheden.

Azure Synapse biedt de beste prestaties van relationele databases met behulp van technieken zoals MPP en meerdere niveaus van geautomatiseerde caching voor veelgebruikte gegevens. U kunt de resultaten van deze technieken zien in onafhankelijke benchmarks, zoals de techniek die onlangs door GigaOm wordt uitgevoerd, waarmee Azure Synapse wordt vergeleken met andere populaire clouddatawarehouseaanbiedingen. Klanten die migreren naar de Azure Synapse-omgeving, zien veel voordelen, waaronder:

  • Verbeterde prestaties en prijs/prestaties.

  • Verbeterde flexibiliteit en kortere tijd tot waarde.

  • Snellere serverimplementatie en toepassingsontwikkeling.

  • Elastische schaalbaarheid: alleen betalen voor werkelijk gebruik.

  • Verbeterde beveiliging/naleving.

  • Lagere kosten voor opslag en herstel na noodgevallen.

  • Lagere totale TCO, betere kostenbeheersing en gestroomlijnde operationele uitgaven (OPEX).

Als u deze voordelen wilt maximaliseren, migreert u nieuwe of bestaande gegevens en toepassingen naar het Azure Synapse-platform. In veel organisaties omvat migratie het verplaatsen van een bestaand datawarehouse van een verouderd on-premises platform, zoals Netezza, naar Azure Synapse. Op hoog niveau omvat het migratieproces de volgende stappen:

    Voorbereiding 🡆

  • Bereik definiëren: wat moet worden gemigreerd.

  • Inventaris maken van gegevens en processen voor migratie.

  • Wijzigingen in gegevensmodellen definiëren (indien van toepassing).

  • Mechanisme voor het extraheren van brongegevens definiëren.

  • Identificeer de juiste hulpprogramma's en functies van Azure en derden die moeten worden gebruikt.

  • Train het personeel vroeg op het nieuwe platform.

  • Stel het Azure-doelplatform in.

    Migratie 🡆

  • Begin klein en eenvoudig.

  • Automatiseer waar mogelijk.

  • Maak gebruik van ingebouwde Azure-hulpprogramma's en -functies om de migratie te verminderen.

  • Migreer metagegevens voor tabellen en weergaven.

  • Historische gegevens migreren die moeten worden onderhouden.

  • Opgeslagen procedures en bedrijfsprocessen migreren of herstructureren.

  • EtL/ELT incrementele belastingprocessen migreren of herstructureren.

    Na de migratie

  • Bewaak en documenteer alle fasen van het proces.

  • Gebruik de ervaring die is opgedaan om een sjabloon te maken voor toekomstige migraties.

  • Herbouw het gegevensmodel indien nodig (met behulp van nieuwe platformprestaties en schaalbaarheid).

  • Test toepassingen en queryhulpprogramma's.

  • Benchmarken en queryprestaties optimaliseren.

Dit artikel bevat algemene informatie en richtlijnen voor prestatieoptimalisatie bij het migreren van een datawarehouse vanuit een bestaande Netezza-omgeving naar Azure Synapse. Het doel van prestatieoptimalisatie is het bereiken van dezelfde of betere datawarehouseprestaties in Azure Synapse na de schemamigratie.

Ontwerpoverwegingen

Migratiebereik

Wanneer u zich voorbereidt om te migreren vanuit een Netezza-omgeving, moet u rekening houden met de volgende migratieopties.

De workload voor de eerste migratie kiezen

Verouderde Netezza-omgevingen zijn doorgaans in de loop van de tijd ontwikkeld om meerdere onderwerpen en gemengde workloads te omvatten. Wanneer u besluit waar u wilt beginnen met een migratieproject, kiest u een gebied waar u het volgende kunt doen:

  • De levensvatbaarheid van de migratie naar Azure Synapse bewijzen door snel de voordelen van de nieuwe omgeving te bieden.

  • Laat uw interne technische medewerkers relevante ervaring opdoen met de processen en hulpprogramma's die ze gebruiken wanneer ze andere gebieden migreren.

  • Maak een sjabloon voor verdere migraties die specifiek zijn voor de Netezza-bronomgeving en de huidige hulpprogramma's en processen die al aanwezig zijn.

Een goede kandidaat voor een eerste migratie vanuit een Netezza omgevingsondersteuning de voorgaande items, en:

  • Implementeert een BI/Analytics-workload in plaats van een OLTP-workload (Online Transaction Processing).

  • Heeft een gegevensmodel, zoals een ster- of snowflake-schema, dat kan worden gemigreerd met minimale aanpassingen.

Tip

Maak een inventaris van objecten die moeten worden gemigreerd en documenteer het migratieproces.

Het volume van gemigreerde gegevens in een eerste migratie moet groot genoeg zijn om de mogelijkheden en voordelen van de Azure Synapse-omgeving te demonstreren, maar niet te groot om snel waarde te demonstreren. Een grootte in het bereik van 1-10 terabyte is typisch.

Voor uw eerste migratieproject minimaliseert u het risico, de inspanning en de migratietijd, zodat u snel de voordelen van de Azure-cloudomgeving kunt zien. Zowel de lift-and-shift- als gefaseerde migratiemethoden beperken het bereik van de eerste migratie tot alleen de datamarts en hebben geen betrekking op bredere migratieaspecten, zoals ETL-migratie en historische gegevensmigratie. U kunt deze aspecten echter in latere fasen van het project aanpakken zodra de gemigreerde datamart-laag weer wordt gevuld met gegevens en de vereiste buildprocessen.

Lift-and-shift-migratie versus gefaseerde benadering

Over het algemeen zijn er twee soorten migratie, ongeacht het doel en het bereik van de geplande migratie: lift-and-shift as-is en een gefaseerde benadering die wijzigingen bevat.

Lift-and-shift

In een lift-and-shift-migratie wordt een bestaand gegevensmodel, zoals een stervormig schema, ongewijzigd gemigreerd naar het nieuwe Azure Synapse-platform. Deze aanpak minimaliseert de risico- en migratietijd door het werk te verminderen dat nodig is om de voordelen van de overstap naar de Azure-cloudomgeving te realiseren. Lift-and-shift-migratie is geschikt voor deze scenario's:

  • U hebt een bestaande Netezza-omgeving met één datamart die moet worden gemigreerd of
  • U hebt een bestaande Netezza-omgeving met gegevens die zich al in een goed ontworpen ster- of sneeuwvlokschema bevinden, of
  • U ondervindt tijd- en kostendruk om over te stappen naar een moderne cloudomgeving.

Tip

Lift and shift is een goed uitgangspunt, zelfs als volgende fasen wijzigingen in het gegevensmodel implementeren.

Gefaseerde benadering met wijzigingen

Als een verouderd datawarehouse gedurende een lange periode is ontwikkeld, moet u het mogelijk opnieuw ontwikkelen om de vereiste prestatieniveaus te behouden. Mogelijk moet u ook opnieuw engineeren om nieuwe gegevens te ondersteunen, zoals IoT-stromen (Internet of Things). Als onderdeel van het her-engineeringproces migreert u naar Azure Synapse om de voordelen van een schaalbare cloudomgeving te krijgen. Migratie kan ook een wijziging in het onderliggende gegevensmodel omvatten, zoals een verplaatsing van een Inmon-model naar een gegevenskluis.

Microsoft raadt u aan uw bestaande gegevensmodel naar Azure te verplaatsen en de prestaties en flexibiliteit van de Azure-omgeving te gebruiken om de wijzigingen opnieuw te implementeren. Op die manier kunt u de mogelijkheden van Azure gebruiken om de wijzigingen aan te brengen zonder dat dit van invloed is op het bestaande bronsysteem.

Azure Data Factory gebruiken om een migratie op basis van metagegevens te implementeren

U kunt het migratieproces automatiseren en organiseren met behulp van de mogelijkheden van de Azure-omgeving. Deze aanpak minimaliseert de prestaties van de bestaande Netezza-omgeving, die mogelijk al dicht bij de capaciteit wordt uitgevoerd.

Azure Data Factory is een cloudservice voor gegevensintegratie die ondersteuning biedt voor het maken van gegevensgestuurde werkstromen in de cloud waarmee gegevensverplaatsing en gegevenstransformatie worden georganiseerd en geautomatiseerd. U kunt Data Factory gebruiken om gegevensgestuurde werkstromen (pijplijnen) te maken en te plannen die gegevens uit verschillende gegevensarchieven opnemen. Data Factory kan gegevens verwerken en transformeren met behulp van rekenservices zoals Azure HDInsight Hadoop, Spark, Azure Data Lake Analytics en Azure Machine Learning.

Wanneer u van plan bent om Data Factory-faciliteiten te gebruiken om het migratieproces te beheren, maakt u metagegevens waarin alle gegevenstabellen worden vermeld die moeten worden gemigreerd en hun locatie.

Ontwerpverschillen tussen Netezza en Azure Synapse

Zoals eerder vermeld, zijn er enkele fundamentele verschillen in de benadering tussen Netezza- en Azure Synapse Analytics-databases. Deze verschillen worden hierna besproken.

Meerdere databases versus één database en schema's

De Netezza-omgeving bevat vaak meerdere afzonderlijke databases. Er kunnen bijvoorbeeld afzonderlijke databases zijn voor: gegevensopname- en faseringstabellen, kernwarehousetabellen en datamarts (ook wel de semantische laag genoemd). ETL- of ELT-pijplijnprocessen kunnen cross-database-joins implementeren en gegevens verplaatsen tussen de afzonderlijke databases.

De Azure Synapse-omgeving bevat daarentegen één database en maakt gebruik van schema's om tabellen te scheiden in logisch gescheiden groepen. U wordt aangeraden een reeks schema's in de Azure Synapse-doeldatabase te gebruiken om de afzonderlijke databases na te bootsen die zijn gemigreerd vanuit de Netezza-omgeving. Als de Netezza-omgeving al schema's gebruikt, moet u mogelijk een nieuwe naamconventie gebruiken wanneer u de bestaande Netezza-tabellen en -weergaven naar de nieuwe omgeving verplaatst. U kunt bijvoorbeeld de bestaande Netezza-schema- en tabelnamen samenvoegen in de nieuwe Azure Synapse-tabelnaam en schemanamen in de nieuwe omgeving gebruiken om de oorspronkelijke afzonderlijke databasenamen te behouden. Als naamgeving voor schemaconsolidatie puntjes bevat, kan Azure Synapse Spark problemen hebben. Hoewel u SQL-weergaven boven op de onderliggende tabellen kunt gebruiken om de logische structuren te onderhouden, zijn er potentiële nadelen voor deze aanpak:

  • Weergaven in Azure Synapse hebben het kenmerk Alleen-lezen, dus alle updates voor de gegevens moeten plaatsvinden op de onderliggende basistabellen.

  • Er bestaan mogelijk al een of meer weergavelagen en het toevoegen van een extra weergavelaag kan van invloed zijn op de prestaties en ondersteuning, omdat geneste weergaven moeilijk op te lossen zijn.

Tip

Combineer meerdere databases in één database in Azure Synapse en gebruik schemanamen om de tabellen logisch te scheiden.

Overwegingen voor tabellen

Wanneer u tabellen migreert tussen verschillende omgevingen, worden doorgaans alleen de onbewerkte gegevens en de metagegevens beschreven waarmee deze fysiek worden gemigreerd. Andere database-elementen van het bronsysteem, zoals indexen, worden meestal niet gemigreerd omdat ze mogelijk onnodig zijn of anders worden geïmplementeerd in de nieuwe omgeving.

Prestatieoptimalisaties in de bronomgeving, zoals indexen, geven aan waar u prestatieoptimalisatie in de nieuwe omgeving kunt toevoegen. Als query's in de Netezza-bronomgeving bijvoorbeeld vaak zonetoewijzingen gebruiken, betekent dit dat er een niet-geclusterde index moet worden gemaakt in Azure Synapse. Andere systeemeigen technieken voor prestatieoptimalisatie, zoals tabelreplicatie, zijn mogelijk meer van toepassing dan het rechtstreeks maken van een dergelijke index.

Tip

Bestaande indexen geven kandidaten aan voor indexering in het gemigreerde magazijn.

Niet-ondersteunde Netezza-databaseobjecttypen

Netezza-specifieke functies kunnen vaak worden vervangen door Azure Synapse-functies. Sommige Netezza-databaseobjecten worden echter niet rechtstreeks ondersteund in Azure Synapse. In de volgende lijst met niet-ondersteunde Netezza-databaseobjecten wordt beschreven hoe u een equivalente functionaliteit in Azure Synapse kunt bereiken.

  • Zonekaarten: in Netezza worden zonetoewijzingen automatisch gemaakt en onderhouden voor de volgende kolomtypen en worden gebruikt tijdens het uitvoeren van query's om de hoeveelheid gegevens te beperken die moet worden gescand:

    • INTEGER kolommen met een lengte van 8 bytes of minder.
    • Tijdelijke kolommen, zoals DATE, TIMEen TIMESTAMP.
    • CHAR kolommen als ze deel uitmaken van een gerealiseerde weergave en worden vermeld in de ORDER BY component.

    U kunt nagaan welke kolommen zonetoewijzingen hebben met behulp van het nz_zonemap hulpprogramma, dat deel uitmaakt van de NZ Toolkit. Azure Synapse bevat geen zonetoewijzingen, maar u kunt vergelijkbare resultaten bereiken met behulp van andere door de gebruiker gedefinieerde indextypen en/of partitionering.

  • Geclusterde basistabellen (CBT):in Netezza worden CBT's vaak gebruikt voor feitentabellen, die miljarden records kunnen hebben. Het scannen van een dergelijke enorme tabel vereist aanzienlijke verwerkingstijd omdat een volledige tabelscan mogelijk nodig is om de relevante records op te halen. Door records te ordenen op beperkende CBT's kan Netezza records in dezelfde of nabijgelegen gebieden groeperen. Met dit proces worden ook zonetoewijzingen gemaakt die de prestaties verbeteren door de hoeveelheid gegevens te verminderen die moet worden gescand.

    In Azure Synapse kunt u een vergelijkbaar effect bereiken door te partitioneren en/of andere indexen te gebruiken.

  • Gerealiseerde weergaven: Netezza ondersteunt gerealiseerde weergaven en adviseert het gebruik van een of meer gerealiseerde weergaven voor grote tabellen met veel kolommen als slechts een paar kolommen regelmatig worden gebruikt in query's. Gerealiseerde weergaven worden automatisch vernieuwd door het systeem wanneer gegevens in de basistabel worden bijgewerkt.

    Azure Synapse ondersteunt gerealiseerde weergaven, met dezelfde functionaliteit als Netezza.

Toewijzing van netezza-gegevenstypen

De meeste Netezza-gegevenstypen hebben een direct equivalent in Azure Synapse. In de volgende tabel ziet u de aanbevolen benadering voor het toewijzen van Netezza-gegevenstypen aan Azure Synapse.

Netezza-gegevenstype Azure Synapse-gegevenstype
BIGINT BIGINT
BINAIR VERSCHIL(n) VARBINARY(n)
BOOLEAN BIT
BYTEINT TINYINT
TEKEN VARIËREN(n) VARCHAR(n)
CHARACTER(n) CHAR(n)
DATUM DATUM(datum)
DECIMAL(p,s) DECIMAL(p,s)
DUBBELE PRECISIE FLOAT
FLOAT(n) FLOAT(n)
GEHEEL GETAL INT
INTERVAL INTERVAL-gegevenstypen worden momenteel niet rechtstreeks ondersteund in Azure Synapse, maar kunnen worden berekend met behulp van tijdelijke functies zoals DATEDIFF.
GELD GELD
NATIONAAL KARAKTER VARIËREND(n) NVARCHAR(n)
NATIONAAL KARAKTER(n) NCHAR(n)
NUMERIEK(p;s) NUMERIEK(p;s)
WERKELIJK WERKELIJK
SMALLINT SMALLINT
ST_GEOMETRY(n) Typen ruimtelijke gegevens, zoals ST_GEOMETRY worden momenteel niet ondersteund in Azure Synapse, maar de gegevens kunnen worden opgeslagen als VARCHAR of VARBINARY.
TIME TIME
TIME WITH TIME ZONE DATETIMEOFFSET
TIMESTAMP DATUM/TIJD

Tip

Beoordeel het aantal en het type niet-ondersteunde gegevenstypen tijdens de migratievoorbereidingsfase.

Externe leveranciers bieden hulpprogramma's en services voor het automatiseren van migratie, met inbegrip van de toewijzing van gegevenstypen. Als een ETL-hulpprogramma van derden al in gebruik is in de Netezza-omgeving , gebruikt u dat hulpprogramma om vereiste gegevenstransformaties te implementeren.

Verschillen in SQL DML-syntaxis

Verschillen in SQL DML-syntaxis bestaan tussen Netezza SQL en Azure Synapse T-SQL. Deze verschillen worden uitgebreid besproken in SQL-problemen minimaliseren voor Netezza-migraties.

  • STRPOS: in Netezza retourneert de STRPOS functie de positie van een subtekenreeks binnen een tekenreeks. De equivalente functie in Azure Synapse is CHARINDEX met de volgorde van de argumenten omgekeerd. In Netezza is bijvoorbeeld SELECT STRPOS('abcdef','def')... gelijk aan SELECT CHARINDEX('def','abcdef')... in Azure Synapse.

  • AGE: Netezza ondersteunt de AGE operator om het interval tussen twee tijdelijke waarden, zoals tijdstempels of datums, bijvoorbeeld: SELECT AGE('23-03-1956','01-01-2019') FROM.... Gebruik DATEDIFF in Azure Synapse om het interval op te halen, bijvoorbeeld: SELECT DATEDIFF(day, '1956-03-26','2019-01-01') FROM.... Noteer de volgorde van de datumweergave.

  • NOW(): Netezza gebruikt NOW() om te vertegenwoordigen CURRENT_TIMESTAMP in Azure Synapse.

Functies, opgeslagen procedures en reeksen

Wanneer u een datawarehouse migreert vanuit een volwassen omgeving zoals Netezza, moet u waarschijnlijk andere elementen dan eenvoudige tabellen en weergaven migreren. Controleer of hulpprogramma's in de Azure-omgeving de functionaliteit van functies, opgeslagen procedures en reeksen kunnen vervangen, omdat het meestal efficiënter is om ingebouwde Azure-hulpprogramma's te gebruiken dan deze elementen opnieuw te coderen voor Azure Synapse.

Als onderdeel van de voorbereidingsfase maakt u een inventaris van objecten die moeten worden gemigreerd, definieert u een methode voor het afhandelen ervan en wijst u de juiste resources toe aan uw migratieplan.

Gegevensintegratiepartners bieden hulpprogramma's en services waarmee de migratie van functies, opgeslagen procedures en reeksen kan worden geautomatiseerd.

In de volgende secties worden de migratie van functies, opgeslagen procedures en reeksen verder besproken.

Functions

Netezza ondersteunt net als bij de meeste databaseproducten systeem- en door de gebruiker gedefinieerde functies binnen een SQL-implementatie. Wanneer u een verouderd databaseplatform migreert naar Azure Synapse, kunnen algemene systeemfuncties meestal zonder wijzigingen worden gemigreerd. Sommige systeemfuncties hebben mogelijk een iets andere syntaxis, maar alle vereiste wijzigingen kunnen worden geautomatiseerd.

Voor Netezza-systeemfuncties of willekeurige door de gebruiker gedefinieerde functies die geen equivalent in Azure Synapse hebben, codeert u deze functies opnieuw met behulp van een doelomgevingstaal. Door de gebruiker gedefinieerde Netezza-functies worden gecodeerd in nzlua- of C++-talen. Azure Synapse maakt gebruik van de Transact-SQL-taal om door de gebruiker gedefinieerde functies te implementeren.

Opgeslagen procedures

De meeste moderne databaseproducten ondersteunen het opslaan van procedures in de database. Netezza biedt hiervoor de NZPLSQL-taal, die is gebaseerd op Postgres PL/pgSQL. Een opgeslagen procedure bevat doorgaans zowel SQL-instructies als procedurelogica en retourneert gegevens of een status.

Azure Synapse ondersteunt opgeslagen procedures met behulp van T-SQL, dus u moet alle gemigreerde opgeslagen procedures in die taal opnieuw coderen.

Reeksen

In Netezza is een reeks een benoemd databaseobject dat is gemaakt met behulp van CREATE SEQUENCE. Een reeks biedt unieke numerieke waarden via de NEXT VALUE FOR methode. U kunt de gegenereerde unieke getallen gebruiken als surrogaatsleutelwaarden voor primaire sleutels.

Azure Synapse implementeert CREATE SEQUENCEniet, maar u kunt reeksen implementeren met behulp van IDENTITY-kolommen of SQL-code waarmee het volgende reeksnummer in een reeks wordt gegenereerd.

Metagegevens en gegevens extraheren uit een Netezza-omgeving

DDL-generatie (Data Definition Language)

De ANSI SQL-standaard definieert de basissyntaxis voor DDL-opdrachten (Data Definition Language). Sommige DDL-opdrachten, zoals CREATE TABLE en CREATE VIEW, zijn gebruikelijk voor zowel Netezza als Azure Synapse, maar zijn uitgebreid om implementatiespecifieke functies te bieden.

U kunt bestaande Netezza CREATE TABLE en CREATE VIEW scripts bewerken om gelijkwaardige definities te bereiken in Azure Synapse. Hiervoor moet u mogelijk gewijzigde gegevenstypen gebruiken en Netezza-specifieke componenten ORGANIZE ONzoals .

In de Netezza-omgeving geven systeemcatalogustabellen de huidige tabel en weergavedefinitie op. In tegenstelling tot door de gebruiker onderhouden documentatie is systeemcatalogusinformatie altijd volledig en synchroon met de huidige tabeldefinities. Met behulp van hulpprogramma's zoals nz_ddl_table, hebt u toegang tot systeemcatalogusgegevens om DDL-instructies te genereren CREATE TABLE die equivalente tabellen maken in Azure Synapse.

U kunt ook migratieprogramma's van derden en ETL-hulpprogramma's gebruiken waarmee systeemcatalogusgegevens worden verwerkt om vergelijkbare resultaten te bereiken.

Gegevensextractie van Netezza

U kunt onbewerkte tabelgegevens uit Netezza-tabellen extraheren naar platte bestanden, zoals CSV-bestanden, met behulp van standaard Netezza-hulpprogramma's zoals nzsql en nzunload, of via externe tabellen. Vervolgens kunt u de plat gescheiden bestanden comprimeren met behulp van gzip en de gecomprimeerde bestanden uploaden naar Azure Blob Storage met behulp van AzCopy of Azure-hulpprogramma's voor gegevenstransport, zoals Azure Data Box.

Tabelgegevens zo efficiënt mogelijk extraheren. Gebruik de methode voor externe tabellen omdat dit de snelste extractmethode is. Voer meerdere extracten parallel uit om de doorvoer van gegevensextractie te maximaliseren. Met de volgende SQL-instructie wordt een externe tabelextract uitgevoerd:

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

Als er voldoende netwerkbandbreedte beschikbaar is, kunt u gegevens uit een on-premises Netezza-systeem rechtstreeks extraheren naar Azure Synapse-tabellen of Azure Blob Data Storage. Hiervoor gebruikt u Data Factory-processen of gegevensmigratie van derden of ETL-producten.

Tip

Gebruik externe Netezza-tabellen voor de meest efficiënte gegevensextractie.

Geëxtraheerde gegevensbestanden moeten tekstbestanden met scheidingstekens bevatten in CSV-, geoptimaliseerde rijkolommen (ORC) of Parquet-indeling.

Zie Gegevensmigratie, ETL en laden voor Netezza-migraties voor meer informatie over het migreren van gegevens en ETL vanuit een Netezza-omgeving.

Prestatieaanbevelingen voor Netezza-migraties

Het doel van prestatieoptimalisatie is dezelfde of betere prestaties van het datawarehouse na de migratie naar Azure Synapse.

Overeenkomsten in concepten voor het afstemmen van prestaties

Veel concepten voor het afstemmen van prestaties voor Netezza-databases gelden voor Azure Synapse-databases. Voorbeeld:

  • Gebruik gegevensdistributie om gegevens samen te vouwen op hetzelfde verwerkingsknooppunt.

  • Gebruik het kleinste gegevenstype voor een bepaalde kolom om opslagruimte te besparen en queryverwerking te versnellen.

  • Zorg ervoor dat kolommen die moeten worden samengevoegd hetzelfde gegevenstype hebben om de joinverwerking te optimaliseren en de noodzaak voor gegevenstransformaties te verminderen.

  • Zorg ervoor dat statistieken up-to-date zijn om de optimizer te helpen bij het produceren van het beste uitvoeringsplan.

  • Bewaak de prestaties met behulp van ingebouwde databasemogelijkheden om ervoor te zorgen dat resources efficiënt worden gebruikt.

Tip

Prioriteit geven aan de afstemmingsopties in Azure Synapse aan het begin van een migratie.

Verschillen in de benadering voor het afstemmen van prestaties

In deze sectie worden verschillen in de implementatie van prestaties op laag niveau gemarkeerd tussen Netezza en Azure Synapse.

Opties voor gegevensdistributie

Voor prestaties is Azure Synapse ontworpen met architectuur met meerdere knooppunten en wordt parallelle verwerking gebruikt. Als u de tabelprestaties wilt optimaliseren, kunt u een optie voor gegevensdistributie definiëren in CREATE TABLE instructies met behulp van DISTRIBUTION Azure Synapse en DISTRIBUTE ON In Netezza.

In tegenstelling tot Netezza ondersteunt Azure Synapse lokale joins tussen een kleine tabel en een grote tabel via kleine tabelreplicatie. Denk bijvoorbeeld aan een kleine dimensietabel en een grote feitentabel binnen een stervormig schemamodel. Azure Synapse kan de kleinere dimensietabel repliceren op alle knooppunten om ervoor te zorgen dat de waarde van een joinsleutel voor de grote tabel een overeenkomende, lokaal beschikbare dimensierij heeft. De overhead van dimensietabelreplicatie is relatief laag voor een kleine dimensietabel. Voor grote dimensietabellen is een hashdistributiebenadering geschikter. Zie Ontwerprichtlijnen voor het gebruik van gerepliceerde tabellen en richtlijnen voor het ontwerpen van gedistribueerde tabellen voor meer informatie over opties voor gegevensdistributie.

Gegevensindexering

Azure Synapse ondersteunt verschillende door de gebruiker gedefinieerde indexeringsopties die een andere bewerking en een ander gebruik hebben in vergelijking met door het systeem beheerde zonetoewijzingen in Netezza. Zie Indexen voor toegewezen SQL-pooltabellen voor meer informatie over de verschillende indexeringsopties in Azure Synapse.

De bestaande door het systeem beheerde zonetoewijzingen in een netezza-bronomgeving bieden een nuttige indicatie van het gegevensgebruik en de kandidaatkolommen voor indexering in de Azure Synapse-omgeving.

Gegevenspartitionering

In een datawarehouse voor ondernemingen kunnen feitentabellen miljarden rijen bevatten. Partitionering optimaliseert het onderhoud en de queryprestaties van deze tabellen door ze op te splitsen in afzonderlijke onderdelen om de hoeveelheid verwerkte gegevens te verminderen. In Azure Synapse definieert de CREATE TABLE instructie de partitioneringsspecificatie voor een tabel.

U kunt slechts één veld per tabel gebruiken voor partitionering. Dat veld is vaak een datumveld omdat veel query's worden gefilterd op datum- of datumbereik. Het is mogelijk om na de eerste belasting de partitionering van een tabel te wijzigen met behulp van de CREATE TABLE AS instructie (CTAS) om de tabel opnieuw te maken met een nieuwe distributie. Zie Partitioneringstabellen in een toegewezen SQL-pool voor een gedetailleerde bespreking van partitionering in Azure Synapse.

Statistieken van gegevenstabellen

U moet ervoor zorgen dat statistieken voor gegevenstabellen up-to-date zijn door een stap voor statistieken in te bouwen voor ETL-/ELT-taken.

PolyBase of COPY INTO voor het laden van gegevens

PolyBase ondersteunt het efficiënt laden van grote hoeveelheden gegevens naar een datawarehouse met behulp van parallelle laadstromen. Zie De polybase-strategie voor het laden van gegevens voor meer informatie.

COPY INTO biedt ook ondersteuning voor gegevensopname met hoge doorvoer en:

  • Gegevens ophalen uit alle bestanden in een map en submappen.

  • Gegevens ophalen vanaf meerdere locaties in hetzelfde opslagaccount. U kunt meerdere locaties opgeven met door komma's gescheiden paden.

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

  • CSV-, PARQUET- en ORC-bestandsindelingen.

Werklastbeheer

Het uitvoeren van gemengde workloads kan problemen met resources opleveren voor drukke systemen. Een succesvol workloadbeheerschema beheert resources effectief, zorgt voor een zeer efficiënt resourcegebruik en maximaliseert het rendement op investeringen (ROI). Workloadclassificatie, workloadbelang en isolatie van werkbelastingen geven meer controle over hoe werkbelasting systeembronnen gebruikt.

In de handleiding voor workloadbeheer worden de technieken beschreven voor het analyseren van de workload, het beheren en bewaken van het belang van de werkbelasting en de stappen voor het converteren van een resourceklasse naar een workloadgroep. Gebruik de Azure-portal en T-SQL-query's op DMV's om de workload te bewaken om ervoor te zorgen dat de toepasselijke resources efficiënt worden gebruikt.

Volgende stappen

Zie het volgende artikel in deze reeks: Gegevensmigratie, ETL en laden voor Netezza-migraties voor meer informatie over ETL en belasting voor Netezza-migraties.