Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk egy hétrészes sorozat ötödik része, amely útmutatást nyújt a Netezza-ból az Azure Synapse Analyticsbe való migráláshoz. A cikk középpontjában az SQL-problémák minimalizálásának ajánlott eljárásai vannak.
Áttekintés
A Netezza-környezetek jellemzői
Jótanács
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 egyszerű használatát, hogy a nagy léptékű adatfeldolgozás hatékonyabb legyen, mint az akkor elérhető 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énye van a nagy pénzügyi intézmények, a távközlési és a kiskereskedelmi vállalatok körében. Az eredeti implementáció saját fejlesztésű hardvert használt, beleértve a programozható kaputömböket vagy FPGA-kat is, és ODBC- vagy JDBC-hálózati kapcsolaton keresztül volt elérhető TCP/IP-en keresztül.
A legtöbb meglévő Netezza-telepítés helyszíni, ezért sok felhasználó fontolgatja, hogy a Netezza-adatok egy részét vagy egészét migrálja az Azure Synapse Analyticsbe, hogy kihasználhassa a modern felhőkörnyezetre való áttérés előnyeit.
Jótanács
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 nagy adatköteteken SQL használatával. A dimenziós adatmodellek – csillag- vagy hópehelysémák – gyakoriak, ahogy az egyes részlegek adat martjainak implementálása is.
Az SQL- és dimenziós adatmodellek ezen kombinációja leegyszerűsíti az Azure Synapse-ba 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 as-is a kockázat és az igénybe vett 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 adattároló-modellre való áttérés), végezzen kezdeti as-is migrálást, majd végezze el a módosításokat az Azure felhőkörnyezetében, 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 gyártók bizonyos esetekben saját fejlesztésű bővítményeket implementáltak. Ez a dokumentum az örökölt Netezza-környezetből való migrálás során felmerülő lehetséges SQL-különbségeket emeli ki, és áthidaló megoldásokat kínál.
Metaadat-alapú migrálás implementálása az Azure Data Factory használatával
Jótanács
Automatizálja a migrálási folyamatot az Azure Data Factory képességeinek használatával.
Automatizálhatja és vezényelheti a migrálási folyamatot az Azure-környezet képességeinek 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.
Az Azure Data Factory egy felhőalapú adatintegrációs szolgáltatás, amely lehetővé teszi az adatvezérelt munkafolyamatok létrehozását a felhőben az adatáthelyezés és adatátalakítás vezényléséhez és automatizálásához. A Data Factory használatával olyan adatvezérelt munkafolyamatokat (úgynevezett csővezetékeket) hozhat létre és ütemezhet, amelyek különböző adattárakból képesek adatokat betölteni. 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 a migrálni kívánt 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. Az Azure Synapse Pipelinest is használhatja.
SQL DDL-különbségek a Netezza és az Azure Synapse között
SQL Data Definition Language (DDL)
Jótanács
Az SQL DDL-parancsok CREATE TABLECREATE VIEW szabványos alapvető elemekkel 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 .CREATE VIEW Ezeket a parancsokat a Netezza és az Azure Synapse is használja, de ki lettek bővítve, hogy lehetővé tegyék az olyan implementációspecifikus funkciók meghatározását, mint az indexelés, a táblaterjesztés és a particionálási lehetőségek.
A következő szakaszok az Azure Synapse-ba való migrálás során megfontolandó Netezza-specifikus lehetőségeket ismertetik.
Táblázatokkal kapcsolatos szempontok
Jótanács
Meglévő indexek használatával jelezze a migrált raktárban az indexelésre jelölteket.
A táblák különböző technológiák közötti migrálásakor csak a nyers adatok és leíró metaadatai kerülnek fizikailag áthelyezve a két környezet között. A forrásrendszer más adatbáziselemei, 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örnyezeten belül másképpen implementálhatók. A Netezza szintaxisában TEMPORARY található beállítás például CREATE TABLE egyenértékű a táblanév "#" karakterrel való előtagolásával az Azure Synapse-ban.
Fontos tisztában lenni azzal, hogy a forráskörnyezetben hol használták a teljesítményoptimalizálásokat ( például 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áció, alkalmazhatóbbak lehetnek, mint egy egyenes "hasonló" index létrehozása.
Nem támogatott Netezza-adatbázisobjektum-típusok
Jótanács
A Netezza-specifikus funkciók lecserélhetők az Azure Synapse szolgáltatásaira.
A Netezza olyan adatbázis-objektumokat implementál, amelyek közvetlenül nem támogatottak az Azure Synapse-ban, de az új környezeten belül is léteznek hasonló funkciók:
Zónaleképek: a Netezza-ban a zónatérképek automatikusan létrejönnek és karbantarthatók bizonyos oszloptípusokhoz, és a lekérdezési időben a beolvasandó adatok mennyiségének korlátozására szolgálnak. A zónatérképek a következő oszloptípusokon jönnek létre:
-
INTEGER8 bájt vagy annál kisebb hosszúságú oszlopok. - Időbeli oszlopok. Például,
DATE,TIMEésTIMESTAMP. -
CHARoszlopokat, ha ezek egy materializált nézet részei, és szerepel aORDER BYzáradékban.
Az NZ-eszközkészlet részét képező segédprogrammal megtudhatja, hogy mely oszlopok rendelkeznek zónaleképeztetésekkel
nz_zonemap. Az Azure Synapse nem tartalmaz zónaleképezéseket, de hasonló eredményeket érhet el más, felhasználó által definiált indextípusok és/vagy particionálás használatával.-
Csoportosított 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áblázatvizsgálatra lehet szükség. A korlátozott CBT rekordjainak rendszerezése lehetővé teszi, hogy a Netezza azonos vagy közeli terjedelmekben csoportosítsa a rekordokat. Ez a folyamat zónatérképeket is létrehoz, amelyek a vizsgálandó adatok mennyiségének csökkentésével javítják a teljesítményt.
Az Azure Synapse-ban 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 olyan nagy táblákon, amelyek sok oszlopot tartalmaznak, ahol a lekérdezésekben csak néhány oszlopot használnak rendszeresen. A rendszer automatikusan fenntartja a materializált nézeteket az alaptábla adatainak frissítésekor.
Az Azure Synapse támogatja a materializált nézeteket, ugyanazokkal a funkciókkal, mint a Netezza.
Netezza adattípus-leképezés
Jótanács
A nem támogatott adattípusok hatásának felmérése az előkészítési fázis részeként.
A Legtöbb Netezza-adattípus közvetlen egyenértékű az Azure Synapse-ban. Az alábbi táblázat ezeket az adattípusokat és a leképezésükhöz javasolt megközelítést mutatja be.
| Netezza adattípus | Azure Synapse-adattípus |
|---|---|
| BIGINT | BIGINT |
| BINÁRIS VÁLTOZÓ(n) | VARBINARY(n) |
| BOOLEAN | BIT |
| BYTEINT | TINYINT |
| KARAKTER VÁLTOZÓ(n) | VARCHAR(n) |
| CHARACTER(n) | CHAR(n) |
| DÁTUM | DÁTUM(dátum) |
| DECIMAL(p,s) | DECIMAL(p,s) |
| DUPLA PONTOSSÁG | FLOAT |
| FLOAT(n) | FLOAT(n) |
| INTEGER | INT |
| INTERVALLUM | Az INTERVAL-adattípusok jelenleg nem támogatottak közvetlenül az Azure Synapse-ban, de időbeli függvények( például DATEDIFF) használatával kiszámíthatók. |
| PÉNZ | PÉNZ |
| NEMZETI KARAKTER VÁLTOZÓ(n) | NVARCHAR(n) |
| NEMZETI KARAKTER(n) | NCHAR(n) |
| NUMERIC(p,s) | NUMERIC(p,s) |
| REAL | REAL |
| SMALLINT | SMALLINT |
| ST_GEOMETRY(n) | Az Azure Synapse jelenleg nem támogatja az olyan térbeli adattípusokat, mint például a ST_GEOMETRY, de az adatok VARCHAR vagy VARBINARY formátumban tárolhatók. |
| IDŐ | IDŐ |
| IDŐ IDŐZÓNÁVAL | DATETIMEOFFSET |
| TIMESTAMP | DATETIME |
Adatdefiníciós nyelv (DDL) létrehozása
Jótanács
A meglévő Netezza-metaadatok használatával automatizálja az Azure Synapse-hez tartozó CREATE TABLE és CREATE VIEW DDL-ek generálását.
Szerkessze a meglévő Netezza CREATE TABLE - és CREATE VIEW 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 esetleges további Netezza-specifikus kifejezések eltávolítását vagy módosítását, például a ORGANIZE ON.
A meglévő Netezza-környezetben lévő táblák és nézetek aktuális definícióit meghatározó információk azonban a rendszerkatalógus-táblákban maradnak fenn. 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ó nem összhangban van 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 az Azure Synapse megfelelő tábláihoz.
Jótanács
A külső eszközök és szolgáltatások automatizálhatják az adatleképezési feladatokat.
Vannak 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. Ha egy külső 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 megvalósíthat.
SQL DML-különbségek a Netezza és az Azure Synapse között
SQL Data Manipulation Language (DML)
Jótanács
Az SQL DML-parancsok SELECTINSERTstandard alapelemekkel rendelkeznek, UPDATE 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 az Azure Synapse is használja ezeket a parancsokat, de bizonyos esetekben implementálási különbségek vannak.
A következő szakaszok az Azure Synapse-ba való migrálás során megfontolandó Netezza-specifikus DML-parancsokat ismertetik.
Az SQL DML szintaxis eltérései
A migrálás során vegye figyelembe az SQL Data Manipulation Language (DML) szintaxisának a Netezza SQL és az Azure Synapse közötti különbségeit:
STRPOS: a Netezza-ban aSTRPOSfüggvény egy sztringen belüli részsztring pozícióját adja vissza. Az Azure Synapse egyenértékű függvénye aCHARINDEX, ahol az argumentumok sorrendje meg van fordítva. A Netezza példáulSELECT STRPOS('abcdef','def')...egyenértékűSELECT CHARINDEX('def','abcdef')...az Azure Synapse-vel.AGE: A Netezza támogatja azAGEoperátort, hogy két időé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.... Az Azure Synapse-banDATEDIFFadja 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 az Azure Synapse-ban való ábrázolására aNOW()-t használjaCURRENT_TIMESTAMP.
Függvények, tárolt eljárások és sorozatok
Jótanács
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 sorozatok.
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-elosztá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-szolgáltatások használata a Netezza-függvények újrakódolása helyett.
Jótanács
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. Amikor egy másik adatbázisplatformra, például az Azure Synapse-ra migrál, a gyakori rendszerfüggvények elérhetők, é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 tetszőleges felhasználó által definiált függvényeket kell újrakódolni a célkörnyezetben elérhető nyelvekkel. Az 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 kódoltak.
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.
Az 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.
Szekvenciák
A Netezza-ban a szekvencia egy névvel ellátott adatbázis-objektum, amely a metóduson keresztül CREATE SEQUENCENEXT VALUE FOR biztosítja az egyedi értéket. Ezekkel egyedi számokat hozhat létre az elsődleges kulcsértékekhez helyettesítő kulcsértékként való használatra.
Az Azure Synapse-ban 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 következő sorozatszám létrehozásához.
Régi SQL érvényesítése a EXPLAIN használatával
Jótanács
A lehetséges migrálási problémákat a meglévő rendszerlekérdezés naplóiból származó valós lekérdezésekkel 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 az Azure Synapse-vel való kompatibilitás érdekében. Ezután előtagként adja meg ezeket a lekérdezéseket EXPLAIN , és – feltételezve, hogy az Azure Synapse -ban egy "hasonló" migrált adatmodellt használ ugyanazzal a táblával és oszlopnévvel – futtassa ezeket EXPLAIN az utasításokat az Azure Synapse-ban. Minden inkompatibilis SQL hibát ad vissza. Ezen információk segítségével meghatározhatja az átkódolási feladat 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 és T-SQL közötti leképezés
Az AZURE Synapse SQL-adattípus-leképezésnek megfelelő IBM Netezza-T-SQL a következő táblázatban található:
| IBM Netezza adattípus | Azure Synapse SQL-adattípus |
|---|---|
| tömb | 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) |
| byteint | 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)] |
| grafika [(n)] | nchar [(n)]| varchar(max) |
| intervallum | Nem támogatott |
| json [(n)] | nvarchar [(n|max)] |
| hosszú VARCHAR | nvarchar(max) |
| hosszú változógrafika | nvarchar(max) |
| mbb | Nem támogatott |
| mbr | Nem támogatott |
| szám [((p|*)[;s])] | numerikus [(p[,s])] |
| numerikus [(p [;s])] | numerikus [(p[,s])] |
| pont | Nem támogatott |
| valódi | valódi |
| smallint | smallint |
| st_geometry | Nem támogatott |
| Idő | Idő |
| idő időzónával | datetimeoffset |
| Időbélyeg | datetime2 |
| időbélyegző az időzóná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éseket úgy implementáljuk, hogy megkönnyítse az Azure Synapse-ba való migrálást. Az SQL-t használják a nagy adatkötetek elemzési lekérdezéseihez, és valamilyen dimenziós adatmodellben vannak. Ezek a tényezők jó jelöltek az Azure Synapse-ba való migráláshoz.
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ációját as-is-án célszerű végrehajtani a kockázatok és az idő minimalizálása érdekében, még akkor is, ha a végleges környezet egy másfajta adatmodellt, például adatvaultot fog tartalmazni.
Ismerje meg a Netezza SQL-implementáció és az 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ésre szolgáló megközelítést.
A folyamat automatizálása, ahol csak lehetséges, a migrálás hibáinak, kockázatának és idejének minimalizálása érdekében.
Fontolja meg a Microsoft speciális partnereinek és szolgáltatásainak használatát a migrálás gördülékenyebbé tételéhez.
Következő lépések
A Microsoft és a külső eszközökkel kapcsolatos további információkért tekintse meg a következő cikket ebben a sorozatban: Tools for Netezza data warehouse migration to Azure Synapse Analytics.