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:
- A forrásadatok kinyerése szövegfájlokba.
- Az adatok az Azure Blob Storage-ba vagy az Azure Data Lake Store-ba kerülnek.
- Készítse elő az adatokat a betöltéshez.
- Töltse be az adatokat dedikált SQL-készlet előkészítési tábláiba a PolyBase használatával.
- Alakítsa át az adatokat.
- 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.