Megosztás a következőn keresztül:


A Netezza-migrálások SQL-problémáinak minimalizálása

Ez a cikk egy hétrészes sorozat ötödik része, amely útmutatást nyújt a Netezza-ból Azure Synapse Analyticsbe való migráláshoz. A cikk középpontjában az SQL-problémák minimalizálására vonatkozó ajánlott eljárások vannak.

Áttekintés

A Netezza-környezetek jellemzői

Tipp

A Netezza a 2000-es évek elején úttörőnek számított az adattárház-berendezés fogalmában.

2003-ban a Netezza először kiadta az adattárház berendezés termékét. Csökkentette a belépési költségeket, és javította a nagymértékben párhuzamos feldolgozási (MPP) technikák könnyű használatát, hogy a nagy léptékű adatfeldolgozás hatékonyabb legyen, mint az akkor elérhető meglévő nagyszámítógépek vagy más MPP-technológiák. Azóta a termék fejlődött, és számos létesítményt tartalmaz a nagy pénzügyi intézmények, a távközlés és a kiskereskedelmi vállalatok körében. Az eredeti implementáció saját fejlesztésű hardvert használt, beleértve a mezőprogramozható kaputömböket vagy FPGA-kat, és elérhető volt ODBC vagy JDBC hálózati kapcsolaton keresztül TCP/IP-n keresztül.

A legtöbb meglévő Netezza-telepítés helyszíni, ezért sok felhasználó fontolgatja a Netezza-adatok egy részének vagy egészének migrálását Azure Synapse Analyticsbe, hogy kihasználhassa a modern felhőkörnyezetre való áttérés előnyeit.

Tipp

Számos meglévő Netezza-telepítés dimenziós adatmodellt használó adattárházak.

A Netezza technológiát gyakran használják adattárház implementálásához, amely összetett elemzési lekérdezéseket támogat a nagy adatmennyiségeken az SQL használatával. A dimenziós adatmodellek – csillag- vagy hópehelyséma – gyakoriak, ahogy az egyes részlegek adatpiacainak implementálása is.

Az SQL- és dimenziós adatmodellek e kombinációja leegyszerűsíti a Azure Synapse való migrálást, mivel az alapfogalmak és az SQL-készségek átadhatók. Az ajánlott módszer a meglévő adatmodell migrálása a kockázat és a szükséges idő csökkentése érdekében. Még akkor is, ha a végső szándék az adatmodell módosítása (például egy adattároló-modellre való áttérés), végezzen el egy kezdeti migrálást, majd végezze el a módosításokat az Azure-felhőkörnyezetben, kihasználva a teljesítményt, a rugalmas méretezhetőséget és a költségelőnyöket.

Bár az SQL nyelv szabványosított, egyes szállítók bizonyos esetekben saját fejlesztésű bővítményeket implementáltak. Ez a dokumentum kiemeli az SQL-beli lehetséges különbségeket, amelyekkel az örökölt Netezza-környezetből való migrálás során találkozhat, és áthidaló megoldásokat kínál.

Metaadat-alapú migrálás implementálása Azure Data Factory használatával

Tipp

Automatizálja a migrálási folyamatot Azure Data Factory képességek használatával.

A migrálási folyamat automatizálása és vezénylése az Azure-környezetben található képességek kihasználásával. Ez a megközelítés minimalizálja a migrálásnak a meglévő Netezza-környezetre gyakorolt hatását is, amely már a teljes kapacitás közelében futhat.

Azure Data Factory egy felhőalapú adatintegrációs szolgáltatás, amely lehetővé teszi adatvezérelt munkafolyamatok létrehozását a felhőben az adatáthelyezés és az adatátalakítás vezényléséhez és automatizálásához. A Data Factory használatával olyan adatvezérelt munkafolyamatokat hozhat létre és ütemezhet , amelyeket folyamatoknak neveznek, amelyek különböző adattárakból származó adatokat képesek betöltésre. Feldolgozhatja és átalakíthatja az adatokat olyan számítási szolgáltatások használatával, mint az Azure HDInsight Hadoop, a Spark, az Azure Data Lake Analytics és az Azure Machine Learning.

Ha metaadatokat hoz létre az áttelepítendő adattáblák és azok helyének listázásához, a Data Factory eszközeivel kezelheti és automatizálhatja a migrálási folyamat egyes részeit. A Azure Synapse Pipelinest is használhatja.

Sql DDL-különbségek a Netezza és a Azure Synapse között

SQL Data Definition Language (DDL)

Tipp

Az SQL DDL-parancsok CREATE TABLECREATE VIEW standard alapelemekkel rendelkeznek, de implementációspecifikus beállítások meghatározására is használhatók.

Az ANSI SQL-szabvány az olyan DDL-parancsok alapszintaxisát határozza meg, mint a CREATE TABLE és CREATE VIEWa. Ezeket a parancsokat a Netezza és a Azure Synapse is használják, de az implementációspecifikus funkciók, például az indexelés, a táblaterjesztés és a particionálási lehetőségek meghatározásának engedélyezésére is ki lettek terjesztve.

Az alábbi szakaszok a Netezza-specifikus beállításokat ismertetik, amelyeket figyelembe kell venni a Azure Synapse való migrálás során.

Táblázatokkal kapcsolatos szempontok

Tipp

Meglévő indexek használatával jelezze az indexelésre jelölteket a migrált raktárban.

A táblák különböző technológiák közötti migrálásakor csak a nyers adatok és azok leíró metaadatai kerülnek fizikailag áthelyezve a két környezet között. A forrásrendszerből származó egyéb adatbáziselemek, például az indexek és a naplófájlok nem lesznek közvetlenül migrálva, mivel előfordulhat, hogy ezekre nincs szükség, vagy az új célkörnyezetben eltérően implementálhatók. A Netezza szintaxisában CREATE TABLE található beállítás például TEMPORARY egyenértékű a táblanév "#" karakterrel való előtagolásával Azure Synapse.

Fontos tisztában lenni azzal, hogy a forráskörnyezetben hol használták a teljesítményoptimalizálásokat , például az indexeket. Ez azt jelzi, hogy hol lehet hozzáadni a teljesítményoptimalizálást az új célkörnyezetben. Ha például a zónatérképek a forrás Netezza környezetben lettek létrehozva, az azt jelezheti, hogy egy nem fürtözött indexet kell létrehozni a migrált Azure Synapse adatbázisban. Más natív teljesítményoptimalizálási technikák, például a táblareplikálás, alkalmazhatóbbak lehetnek, mint egy "hasonlóhoz hasonló" index létrehozása.

Nem támogatott Netezza-adatbázisobjektum-típusok

Tipp

A Netezza-specifikus funkciók helyettesíthetők Azure Synapse funkciókkal.

A Netezza olyan adatbázis-objektumokat implementál, amelyek közvetlenül nem támogatottak a Azure Synapse, de vannak módszerek, amelyek ugyanazt a funkciót érik el az új környezetben:

  • Zónatérképek: a Netezza-ban a rendszer automatikusan létrehozza és karbantartja a zónatérképeket bizonyos oszloptípusokhoz, és a lekérdezések során a beolvasott adatok mennyiségének korlátozására szolgálnak. A zónatérképek a következő oszloptípusokon jönnek létre:

    • INTEGER legfeljebb 8 bájt hosszúságú oszlopok.
    • Temporális oszlopok. Például, DATE, TIMEés TIMESTAMP.
    • CHAR oszlopokat, ha ezek egy materializált nézet részei, és szerepel a ORDER BY záradékban.

    Az NZ-eszközkészlet részét képező segédprogrammal nz_zonemap megtudhatja, hogy mely oszlopok rendelkeznek zónaleképekkel. Azure Synapse nem tartalmaz zónatérképeket, de más felhasználó által definiált indextípusok és/vagy particionálás használatával hasonló eredményeket érhet el.

  • Fürtözött alaptáblák (CBT): a Netezza-ban a CBT-ket gyakran használják ténytáblákhoz, amelyek több milliárd rekordot tartalmazhatnak. Egy ilyen hatalmas tábla beolvasása sok feldolgozási időt igényel, mivel a releváns rekordok lekéréséhez teljes táblavizsgálatra lehet szükség. A korlátozó CBT-rekordok rendszerezése lehetővé teszi a Netezza számára, hogy a rekordokat azonos vagy közeli mértékben csoportosítsa. Ez a folyamat zónatérképeket is létrehoz, amelyek javítják a teljesítményt a vizsgálandó adatok mennyiségének csökkentésével.

    A Azure Synapse hasonló hatást érhet el particionálással és/vagy más indexek használatával.

  • Materializált nézetek: A Netezza támogatja a materializált nézeteket, és azt javasolja, hogy hozzon létre egy vagy több ilyen nézetet több oszlopot tartalmazó nagyméretű táblákban, ahol a lekérdezésekben csak néhány ilyen oszlopot használnak rendszeresen. A rendszer automatikusan fenntartja a materializált nézeteket az alaptábla adatainak frissítésekor.

    Azure Synapse támogatja a materializált nézeteket, ugyanazokkal a funkciókkal, mint a Netezza.

Netezza adattípus-leképezés

Tipp

Az előkészítési fázis részeként mérje fel a nem támogatott adattípusok hatását.

A Legtöbb Netezza-adattípus közvetlen egyenértékű Azure Synapse. Az alábbi táblázat ezeket az adattípusokat és a leképezésükhöz ajánlott megközelítést mutatja be.

Netezza adattípus Azure Synapse adattípus
BIGINT BIGINT
BINÁRIS VÁLTOZÓ(n) VARBINARY(n)
LOGIKAI KICSIT
BYTEINT TINYINT
KARAKTER VÁLTOZÓ(n) VARCHAR(n)
KARAKTER(n) CHAR(n)
DATE DÁTUM(dátum)
DECIMÁLIS(p;s) DECIMÁLIS(p;s)
DUPLA PONTOSSÁG ÚSZÓ
FLOAT(n) FLOAT(n)
EGÉSZ SZÁM INT
INTERVALLUM Az INTERVAL adattípusok jelenleg nem támogatottak közvetlenül a Azure Synapse, de időbeli függvények, például a DATEDIFF függvények használatával számíthatók ki.
PÉNZT PÉNZT
NEMZETI KARAKTER VÁLTOZÓ(n) NVARCHAR(n)
NEMZETI KARAKTER(n) NCHAR(n)
NUMERIKUS(p;s) NUMERIKUS(p;s)
VALÓS SZÁM VALÓS SZÁM
SMALLINT SMALLINT
ST_GEOMETRY(n) Az Azure Synapse jelenleg nem támogatják az olyan térbeli adattípusokat, mint a ST_GEOMETRY, de az adatok tárolhatók VARCHAR vagy VARBINARY formátumban.
TIME TIME
IDŐZÓNA DATETIMEOFFSET
IDŐBÉLYEGZŐ DATETIME

Adatdefiníciós nyelv (DDL) létrehozása

Tipp

A meglévő Netezza-metaadatok használatával automatizálhatja a Azure Synapse és a DDL létrehozását CREATE TABLECREATE VIEW.

Szerkessze a meglévő Netezza-t CREATE TABLE és CREATE VIEW a szkripteket, hogy szükség esetén a korábban ismertetett módosított adattípusokkal egyenértékű definíciókat hozzon létre. Ez általában magában foglalja az olyan további Netezza-specifikus záradékok eltávolítását vagy módosítását, mint például ORGANIZE ONa .

A meglévő Netezza-környezetben lévő táblák és nézetek aktuális definícióit meghatározó összes információ azonban megmarad a rendszerkatalógus tábláiban. Ez a legjobb forrása ennek az információnak, mivel garantáltan naprakész és teljes. Vegye figyelembe, hogy előfordulhat, hogy a felhasználó által karbantartott dokumentáció nincs szinkronban az aktuális tábladefiníciókkal.

Ezeket az információkat olyan segédprogramok használatával érheti el, mint például nz_ddl_table a CREATE TABLE DDL-utasítások létrehozása. Szerkessze ezeket az utasításokat a Azure Synapse megfelelő tábláihoz.

Tipp

A külső eszközök és szolgáltatások automatizálhatják az adatleképezési feladatokat.

Vannak Olyan Microsoft-partnerek , akik eszközöket és szolgáltatásokat kínálnak a migrálás automatizálásához, beleértve az adattípus-leképezést is. Továbbá, ha egy harmadik féltől származó ETL-eszköz, például az Informatica vagy a Talend már használatban van a Netezza környezetben, az eszköz bármilyen szükséges adatátalakítást végrehajthat.

Sql DML-különbségek a Netezza és a Azure Synapse között

SQL Data Manipulation Language (DML)

Tipp

Az SQL DML-parancsok SELECT, INSERTés UPDATE standard alapelemekkel rendelkeznek, de különböző szintaxisbeállításokat is implementálhatnak.

Az ANSI SQL-szabvány az olyan DML-parancsok alapszintaxisát határozza meg, mint SELECTa , INSERT, UPDATE, és DELETE. A Netezza és a Azure Synapse is ezeket a parancsokat használják, de bizonyos esetekben implementálási különbségek vannak.

Az alábbi szakaszok azokat a Netezza-specifikus DML-parancsokat ismertetik, amelyeket érdemes figyelembe venni a Azure Synapse való migrálás során.

AZ SQL DML szintaxisbeli különbségei

Vegye figyelembe az SQL Data Manipulation Language (DML) Netezza SQL és Azure Synapse közötti különbségeit a migrálás során:

  • STRPOS: a Netezza-ban a STRPOS függvény egy sztringen belüli alsztring pozícióját adja vissza. A Azure Synapse egyenértékű függvénye a CHARINDEX, és az argumentumok sorrendje meg van fordítva. A Netezza-ban például SELECT STRPOS('abcdef','def')... egyenértékű SELECT CHARINDEX('def','abcdef')... a Azure Synapse.

  • AGE: A Netezza támogatja az AGE operátort, hogy két időbeli érték közötti intervallumot adjon meg, például időbélyegeket vagy dátumokat. Például: SELECT AGE('23-03-1956','01-01-2019') FROM.... A Azure Synapse adja DATEDIFF meg az időközt. Például: SELECT DATEDIFF(day, '1956-03-26','2019-01-01') FROM.... Jegyezze fel a dátumábrázolás sorrendjét.

  • NOW(): A Netezza a Azure Synapse ábrázolására CURRENT_TIMESTAMP használjaNOW().

Függvények, tárolt eljárások és szekvenciák

Tipp

Az előkészítési fázis részeként mérje fel a migrálni kívánt nem adatobjektumok számát és típusát.

A kiforrott, örökölt adattárház-környezetből, például a Netezza-ból való migráláskor gyakran vannak olyan elemek, amelyek nem egyszerű táblákat és nézeteket tartalmaznak, amelyeket át kell telepíteni az új célkörnyezetbe. Ilyenek például a függvények, a tárolt eljárások és a szekvenciák.

Az előkészítési fázis részeként hozzon létre egy leltárt az áttelepítendő objektumokról, és határozza meg a kezelési módszereket. Ezután rendeljen hozzá egy megfelelő erőforrás-hozzárendelést a projekttervhez.

Előfordulhatnak olyan létesítmények az Azure-környezetben, amelyek a Netezza-környezetben függvényként vagy tárolt eljárásként implementált funkciókat váltják fel. Ebben az esetben gyakran hatékonyabb a beépített Azure-létesítmények használata a Netezza-függvények visszahelyezése helyett.

Tipp

A külső termékek és szolgáltatások automatizálhatják a nem adatelemek migrálását.

A Microsoft-partnerek olyan eszközöket és szolgáltatásokat kínálnak, amelyek automatizálhatják a migrálást, beleértve az adattípusok leképezését is. Emellett az IBM Netezza környezetben már használatban lévő külső ETL-eszközök, például az Informatica vagy a Talend bármilyen szükséges adatátalakítást implementálhatnak.

Az egyes elemekről az alábbi szakaszokban talál további információt.

Functions

A legtöbb adatbázis-termékhez hasonlóan a Netezza is támogatja a rendszerfüggvényeket és a felhasználó által definiált függvényeket az SQL-implementációban. Ha másik adatbázisplatformra, például Azure Synapse migrál, gyakori rendszerfüggvények érhetők el, és módosítás nélkül migrálhatók. Egyes rendszerfüggvények szintaxisa kissé eltérő lehet, de a szükséges módosítások automatizálhatók. Előfordulhat, hogy a rendszerfüggvényeket, ahol nincs egyenértékű, például a felhasználó által definiált tetszőleges függvényeket újra kell kódolni a célkörnyezetben elérhető nyelvekkel. Azure Synapse a népszerű Transact-SQL nyelvet használja a felhasználó által definiált függvények implementálásához. A Netezza felhasználó által definiált függvények nzlua vagy C++ nyelven vannak kódoltan.

Tárolt eljárások

A legtöbb modern adatbázis-termék lehetővé teszi az eljárások adatbázisban való tárolását. A Netezza biztosítja az NZPLSQL nyelvet, amely a Postgres PL/pgSQL-en alapul. A tárolt eljárások általában SQL-utasításokat és valamilyen eljárási logikát tartalmaznak, és adatokat vagy állapotot adhatnak vissza.

Azure Synapse Analytics a T-SQL használatával is támogatja a tárolt eljárásokat, ezért ha át kell telepítenie a tárolt eljárásokat, annak megfelelően kell újrakódolnia őket.

Sorozatok

A Netezza-ban a sorozat egy névvel ellátott adatbázis-objektum, amely a metóduson keresztül CREATE SEQUENCE biztosítja az NEXT VALUE FOR egyedi értéket. Ezekkel egyedi számokat hozhat létre az elsődleges kulcsértékek helyettesítő kulcsértékeként való használatra.

A Azure Synapse-ben nincs CREATE SEQUENCE. A sorozatok kezelése identitással történik helyettesítő kulcsok vagy felügyelt identitások létrehozásához SQL-kód használatával a sorozat következő sorszámának létrehozásához.

Örökölt SQL érvényesítése a EXPLAIN használatával

Tipp

A lehetséges migrálási problémákat a meglévő rendszerlekérdezések naplóiból származó valós lekérdezések használatával keresheti meg.

Rögzítsen néhány reprezentatív SQL-utasítást az örökölt lekérdezési előzmények naplóiból, hogy kiértékelje az örökölt Netezza SQL-t a Azure Synapse való kompatibilitás érdekében. Ezután a lekérdezések előtagja EXPLAIN és – feltételezve, hogy egy "hasonló" migrált adatmodellt Azure Synapse ugyanazon tábla- és oszlopnevekkel – futtassa ezeket EXPLAIN az utasításokat a Azure Synapse. Az inkompatibilis SQL hibát ad vissza. Ez az információ határozza meg a visszajavítási tevékenység skáláját. Ez a megközelítés nem követeli meg az adatok Azure-környezetbe való betöltését, csak a megfelelő táblák és nézetek létrehozását.

IBM Netezza–T-SQL-leképezés

Az IBM Netezza–T-SQL megfelel Azure Synapse SQL-adattípus-leképezésnek, a következő táblázatban található:

IBM Netezza adattípus AZURE SYNAPSE SQL-adattípus
array Nem támogatott
bigint bigint
bináris nagy objektum [(n[K| M|G])] nvarchar [(n|max)]
 blob [(n[K| M|G])] nvarchar [(n|max)]
 bájt [(n)] bináris [(n)]|varbinary(max)
 bájt smallint
 karakter változó [(n)] varchar [(n|max)]
karakter változó [(n)] varchar [(n|max)]
 char [(n)] char [(n)]|varchar(max)
karakter [(n)] char [(n)]|varchar(max)
 karakter nagy objektum [(n[K| M|G])] varchar [(n|max)
 clob [(n[K| M|G])] varchar [(n|max)
 Adatkészlet Nem támogatott 
 dátum dátum
 dec [(p[;s])] decimális [(p[;s])]
 decimális [(p[;s])] decimális [(p[;s])]
 dupla pontosság float(53)
 lebegőpontos [(n)] lebegőpontos [(n)]
 ábra [(n)] nchar [(n)]| varchar(max)
 interval Nem támogatott 
 json [(n)] nvarchar [(n|max)]
 hosszú varchar nvarchar(max)
 hosszú vargraphic nvarchar(max)
 mbb Nem támogatott 
 Mbr Nem támogatott 
 szám [((p|*)[;s])] numerikus [(p[;s])]
 numerikus [(p [;s])]  numerikus [(p[;s])]
 period Nem támogatott 
 valós szám  valós szám
 smallint smallint
 st_geometry Nem támogatott 
 time time
 időzóna datetimeoffset
 időbélyeg  datetime2
 időbélyeg időzóna használatával datetimeoffset
 varbyte varbinary [(n|max)]
 varchar [(n)]  varchar [(n)]
 vargraphic [(n)] nvarchar [(n|max)]
 varray Nem támogatott 
 xml Nem támogatott 
 xmltype Nem támogatott 

Összefoglalás

A tipikus meglévő örökölt Netezza-telepítések olyan módon vannak implementálva, amely megkönnyíti a Azure Synapse való migrálást. Az SQL-t használják a nagy adatköteteken végzett elemzési lekérdezésekhez, és valamilyen dimenziós adatmodellben vannak. Ezek a tényezők jó jelöltet tesznek a Azure Synapse való migrálásra.

A tényleges SQL-kód migrálási feladatának minimalizálásához kövesse az alábbi javaslatokat:

  • Az adattárház kezdeti migrálásának megfelelőnek kell lennie a kockázat és a szükséges idő minimalizálása érdekében, még akkor is, ha a végső környezet egy másik adatmodellt, például adattárolót fog tartalmazni.

  • Ismerje meg a Netezza SQL implementációja és a Azure Synapse közötti különbségeket.

  • A meglévő Netezza-implementáció metaadatainak és lekérdezési naplóinak használatával felmérheti a különbségek hatását, és megtervezheti a mérséklés módszerét.

  • Automatizálja a folyamatot, ahol csak lehetséges, a hibák, a kockázatok és az áttelepítés idejének minimalizálása érdekében.

  • Fontolja meg, hogy speciális Microsoft-partnereket és -szolgáltatásokat használjon a migrálás egyszerűsítéséhez.

Következő lépések

Ha többet szeretne megtudni a Microsoft és a külső eszközökről, tekintse meg a következő cikket ebben a sorozatban: Eszközök a Netezza adattárház migrálásához Azure Synapse Analyticsbe.