PolyBase-adatbetöltési stratégia tervezése dedikált SQL-készlethez a Azure Synapse Analyticsben

A hagyományos SMP-adattárházak kinyerési, átalakítási és betöltési (ETL) folyamatot használnak az adatok betöltéséhez. Azure SQL készlet egy nagymértékben párhuzamos feldolgozási (MPP) architektúra, amely kihasználja a számítási és tárolási erőforrások méretezhetőségét és rugalmasságát. A kinyerési, betöltési és átalakítási (ELT) folyamat kihasználhatja a beépített elosztott lekérdezésfeldolgozási képességeket, és kiküszöbölheti az adatok betöltéséhez szükséges erőforrásokat.

Bár az SQL-készlet számos betöltési módszert támogat, beleértve a nem Polybase-beállításokat, például a BCP-t és az SQL BulkCopy API-t, az adatok betöltésének leggyorsabb és legskálázható módja a PolyBase. A PolyBase egy olyan technológia, amely a T-SQL-nyelven keresztül fér hozzá az Azure Blob Storage-ban vagy az Azure Data Lake Store-ban tárolt külső adatokhoz.

Kinyerés, betöltés és átalakítás (ELT)

A kinyerés, a betöltés és az átalakítás (ELT) egy folyamat, amellyel az adatokat kinyerik egy forrásrendszerből, betöltik egy adattárházba, majd átalakítják őket.

A PolyBase ELT dedikált SQL-készlethez való implementálásának alapvető lépései a következők:

  1. A forrásadatok kinyerése szövegfájlokba.
  2. Az adatok az Azure Blob Storage-ba vagy az Azure Data Lake Store-ba kerülnek.
  3. Készítse elő az adatokat a betöltéshez.
  4. Töltse be az adatokat dedikált SQL-készlet előkészítési tábláiba a PolyBase használatával.
  5. Alakítsa át az adatokat.
  6. Adatok beszúrása az éles üzemi táblákba.

Betöltési oktatóanyagért lásd: Adatok betöltése a PolyBase használatával az Azure Blob Storage-ból Azure Synapse Analyticsbe.

További információt a Minták betöltése blogban talál.

1. A forrásadatok kinyerése szövegfájlokba

Az adatok forrásrendszerből való kiolvasása a tárolási helytől függ. A cél az adatok áthelyezése a PolyBase által támogatott, tagolt szövegfájlokba.

PolyBase külső fájlformátumok

A PolyBase UTF-8 és UTF-16 kódolású, tagolt szövegfájlokból tölt be adatokat. A PolyBase az RC File, ORC és Parquet Hadoop-fájlformátumokból is betöltődik. A PolyBase a Gzip és a Snappy tömörített fájljaiból is betölthet adatokat. A PolyBase jelenleg nem támogatja a kiterjesztett ASCII-t, a rögzített szélességű formátumot és az olyan beágyazott formátumokat, mint a WinZip, a JSON és az XML.

Ha SQL Server exportál, a bcp parancssori eszközzel tagolt szövegfájlokba exportálhatja az adatokat. A Parquet to Azure Synapse Analytics adattípus-leképezés a következő:

Parquet-adattípus SQL-adattípus
tinyint tinyint
smallint smallint
int int
bigint bigint
boolean bit
double float
float valós szám
double Pénzt
double smallmoney
sztring nchar
sztring nvarchar
sztring Char
sztring varchar
binary binary
binary varbinary
időbélyeg dátum
időbélyeg smalldatetime
időbélyeg datetime2
időbélyeg dátum/idő
időbélyeg time
dátum dátum
tizedes tört tizedes tört

2. Az adatok az Azure Blob Storage-ba vagy az Azure Data Lake Store-ba kerülnek

Ha az adatokat az Azure Storage-ba szeretné helyezni, áthelyezheti azOkat az Azure Blob Storage-ba vagy az Azure Data Lake Store-ba. Az adatokat mindkét helyen szövegfájlokban kell tárolni. A PolyBase mindkét helyről betölthető.

Az adatok Azure Storage-ba való áthelyezéséhez használható eszközök és szolgáltatások:

  • Az Azure ExpressRoute szolgáltatás javítja a hálózati átviteli sebességet, a teljesítményt és a kiszámíthatóságot. Az ExpressRoute egy olyan szolgáltatás, amely dedikált privát kapcsolaton keresztül irányítja az adatokat az Azure-ba. Az ExpressRoute-kapcsolatok nem irányítják át az adatokat a nyilvános interneten. A kapcsolatok nagyobb megbízhatóságot, gyorsabb sebességet, alacsonyabb késést és nagyobb biztonságot biztosítanak, mint a nyilvános interneten keresztüli tipikus kapcsolatok.
  • Az AzCopy segédprogram a nyilvános interneten keresztül helyezi át az adatokat az Azure Storage-ba. Ez akkor működik, ha az adatméret kisebb, mint 10 TB. Ha rendszeresen szeretne terheléseket végezni az AzCopy használatával, tesztelje a hálózati sebességet, és ellenőrizze, hogy elfogadható-e.
  • Azure Data Factory (ADF) rendelkezik egy átjáróval, amelyet a helyi kiszolgálóra telepíthet. Ezután létrehozhat egy folyamatot, amellyel adatokat helyezhet át a helyi kiszolgálóról az Azure Storage-ba. A Data Factory dedikált SQL-készlettel való használatához lásd: Adatok betöltése dedikált SQL-készletbe.

3. Az adatok előkészítése a betöltéshez

Előfordulhat, hogy elő kell készítenie és törölnie kell a tárfiókban lévő adatokat, mielőtt betöltené őket a dedikált SQL-készletbe. Az adatok előkészítése akkor végezhető el, ha az adatok a forrásban találhatók, miközben szöveges fájlokba exportálja az adatokat, vagy ha az adatok az Azure Storage-ban találhatók. A legegyszerűbb, ha a folyamat elején a lehető leghamarabb dolgozik az adatokkal.

Külső táblák definiálása

Az adatok betöltése előtt külső táblákat kell definiálnia az adattárházban. A PolyBase külső táblákat használ az Adatok definiálásához és eléréséhez az Azure Storage-ban. A külső táblák hasonlóak az adatbázisnézetekhez. A külső tábla tartalmazza a tábla sémáját, és az adattárházon kívül tárolt adatokra mutat.

A külső táblák meghatározásához meg kell adni az adatforrást, a szövegfájlok formátumát és a tábladefiníciókat. A következő T-SQL szintaxistémakörökre lesz szüksége:

Szövegfájlok formázása

A külső objektumok definiálása után a szövegfájlok sorait a külső táblázattal és a fájlformátum-definícióval kell igazítania. A szövegfájl egyes soraiban lévő adatoknak igazodniuk kell a tábladefinícióhoz. A szövegfájlok formázása:

  • Ha az adatok nem relációs forrásból származnak, akkor sorokat és oszlopokat kell átalakítania. Függetlenül attól, hogy az adatok relációs vagy nem relációs forrásból származnak-e, az adatokat úgy kell átalakítani, hogy igazodjanak annak a táblának az oszlopdefinícióihoz, amelybe be szeretné tölteni az adatokat.
  • Formázza a szövegfájlban lévő adatokat úgy, hogy igazodjanak az SQL-készlet céltáblájának oszlopaihoz és adattípusaihoz. A külső szövegfájlok és az adattárháztábla adattípusai közötti eltérés miatt a sorok el lesznek utasítva a terhelés során.
  • A szövegfájl mezőinek elválasztása egy terminátorsal. Ügyeljen arra, hogy olyan karaktert vagy karaktersorozatot használjon, amely nem található a forrásadatokban. Használja a CREATE EXTERNAL FILE FORMAT (KÜLSŐ FÁJLFORMÁTUM LÉTREHOZÁSA) beállítással megadott terminátort.

4. Az adatok betöltése dedikált SQL-készlet előkészítési tábláiba a PolyBase használatával

Ajánlott az adatokat egy előkészítési táblába betölteni. Az előkészítési táblák lehetővé teszik a hibák kezelését anélkül, hogy beavatkozhat az éles táblákba. Az előkészítési táblák lehetővé teszik az SQL-készlet beépített elosztott lekérdezésfeldolgozási funkcióinak használatát az adatátalakításokhoz, mielőtt az adatokat beszúrja az éles táblákba.

A PolyBase-tel való betöltés lehetőségei

Az adatok PolyBase-tel való betöltéséhez az alábbi betöltési lehetőségek bármelyikét használhatja:

  • A PolyBase és a T-SQL jól működik, ha az adatok az Azure Blob Storage-ban vagy az Azure Data Lake Store-ban találhatóak. A betöltési folyamat feletti legnagyobb vezérlést biztosítja, de külső adatobjektumok definiálására is szükség van. A többi metódus definiálja ezeket az objektumokat a színfalak mögött, amikor a forrástáblákat céltáblákhoz rendeli. A T-SQL-terhelések vezényléséhez használhat Azure Data Factory, SSIS vagy Azure-függvényeket.
  • Az SSIS-vel ellátott PolyBase jól működik, ha a forrásadatok SQL Server. Az SSIS meghatározza a céltábla-leképezések forrását, és a terhelést is vezényli. Ha már rendelkezik SSIS-csomagokkal, módosíthatja a csomagokat az új adattárház célhelyének megfelelően.
  • A PolyBase Azure Data Factory (ADF) egy másik vezénylési eszköz. Definiál egy folyamatot, és feladatokat ütemez.
  • A PolyBase és az Azure Databricks adatokat továbbít egy Azure Synapse Analytics-táblából egy Databricks-adatkeretbe, és/vagy adatokat ír egy Databricks-adatkeretből egy Azure Synapse Analytics-táblába a PolyBase használatával.

Nem PolyBase betöltési beállítások

Ha az adatok nem kompatibilisek a PolyBase-tel, használhatja a bcp-t vagy az SQLBulkCopy API-t. A BCP közvetlenül betölti a dedikált SQL-készletet anélkül, hogy az Azure Blob Storage-on áthalad, és csak kis terhelésekhez készült. Vegye figyelembe, hogy ezeknek a beállításoknak a terhelési teljesítménye lassabb, mint a PolyBase.

5. Az adatok átalakítása

Amíg az adatok az előkészítési táblában találhatóak, végezze el a számítási feladathoz szükséges átalakításokat. Ezután helyezze át az adatokat egy éles táblába.

6. Az adatok beszúrása éles táblákba

Az INSERT INTO ... A SELECT utasítás áthelyezi az adatokat az előkészítési táblából az állandó táblába.

Az ETL-folyamat tervezésekor próbálja meg futtatni a folyamatot egy kis tesztmintán. Próbáljon meg kinyerni 1000 sort a táblából egy fájlba, helyezze át az Azure-ba, majd próbálja meg betölteni egy előkészítési táblába.

Partnerbetöltési megoldások

Számos partnerünk rendelkezik betöltési megoldásokkal. További információért tekintse meg megoldáspartnereink listáját.

Következő lépések

A betöltéssel kapcsolatos útmutatásért lásd: Útmutató az adatok betöltéséhez.