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

Tip

Microsoft Fabric Data Warehouse egy nagyvállalati szintű relációs raktár egy Data Lake-alaprendszeren, jövőre kész architektúrával, beépített AI-vel és új funkciókkal. Ha még nem ismerkedik adattárházzal, kezdje a Fabric Data Warehouse. A meglévő dedikált SQL-készlet számítási feladatai frissíthetők Fabric az adatelemzés, a valós idejű elemzés és a jelentéskészítés új képességeinek eléréséhez.

A hagyományos szimmetrikus többprocesszoros adattárházak kinyerési, átalakítási és betöltési (ETL) folyamatot használnak az adatok betöltéséhez. Az 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.

Ezzel szemben a kinyerési, betöltési és átalakítási (ELT) folyamatok kihasználhatják a beépített elosztott lekérdezésfeldolgozási képességeket, és kiküszöbölhetik az adatok betöltését megelőzően történő átalakításához 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 is, például a tömeges másolási programot (bcp) és az SQL BulkCopy API-t, az adatok betöltésének leggyorsabb és leginkább méretezhető módja a PolyBase. A PolyBase egy olyan technológia, amely a Transact-SQL (T-SQL) nyelv használatával fér hozzá az Azure Blob Storage-ban vagy az Azure Data Lake Storage-ban tárolt külső adatokhoz.

Polybase ELT implementálása

A kinyerés, a betöltés és az átalakítás (ELT) egy folyamat, amellyel az adatok kinyerhetők egy forrásrendszerből, betölthetők egy adattárházba, majd átalakíthatók.

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 adatokat az Azure Blob Storage-ba vagy az Azure Data Lake Storage-ba helyezheti.
  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. Szúrja be az adatokat az éles táblákba.

A betöltési oktatóanyagot a New York Taxicab-adathalmaz betöltése című témakörben talál.

További információ: Betöltési minták és stratégiák.

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 PolyBase által támogatott, tagolt szövegfájlokba.

PolyBase külső fájlformátumok

A PolyBase betölti az adatokat az UTF-8 és az UTF-16 kódolt, tagolt szövegfájlokból. A PolyBase az RC File, ORC és Parquet Hadoop fájlformátumbó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- és rögzítettszélességű formátumokat, illetve az olyan beágyazott formátumokat, mint a WinZip, a JSON és az XML.

Ha SQL Serverről exportál, a bcp parancssori eszközzel tagolt szövegfájlokba exportálhatja az adatokat. Az alábbi táblázat az Azure Synapse Analyticshez hozzárendelt Parquet-adattípusokat sorolja fel.

Parquet adattípus SQL-adattípus
tinyint tinyint
smallint smallint
int int
bigint bigint
boolean bit
double float
float real
double pénz
double smallmoney
karakterlánc nchar
karakterlánc nvarchar
karakterlánc char
karakterlánc varchar
bináris bináris
bináris varbinary
timestamp dátum:
timestamp smalldatetime
timestamp datetime2
timestamp datetime
timestamp time
dátum: dátum:
decimális decimális

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

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

Az alábbi eszközökkel és szolgáltatásokkal áthelyezheti az adatokat az Azure Storage-ba:

  • Az Azure ExpressRoute szolgáltatás javítja a hálózati teljesítményt, a teljesítményt és a kiszámíthatóságot. Az ExpressRoute egy szolgáltatás, amely egy 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 keresztül. A kapcsolatok nagyobb megbízhatóságot, gyorsabb sebességet, alacsonyabb késést és nagyobb biztonságot nyújtanak, 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.
  • Az Azure Data Factory rendelkezik egy átjáróval, amelyet telepítheti a helyi kiszolgálóra. 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 az Azure Synapse Analyticsbe.

Adatok előkészítése betöltésre

Előfordulhat, hogy a tárfiókban lévő adatokat elő kell készítenie és törölnie, mielőtt betöltené őket a dedikált SQL-készletbe. Az adatok előkészítése akkor végezhető el, amikor az adatok a forrásban találhatók, miközben az adatokat szöveges fájlokba exportálja, vagy miután 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ák használatával definiálja és éri el az adatokat az Azure Storage-ban. A külső táblák hasonlóak az adatbázisnézethez. A külső tábla tartalmazza a táblasémá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. Az alábbiakban a szükséges T-SQL szintaxistémákat követjük:

Szövegfájlok formázása

A külső objektumok definiálása után a szövegfájlok sorait össze kell igazítania a külső táblázattal és a fájlformátum definíciójával. A szövegfájl minden sorában 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, át kell alakítania azokat sorokká és oszlopokká. 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 ahhoz a táblához tartozó oszlopdefiníciókhoz, amelyekbe 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 betölté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 paranccsal megadott terminátort.

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

Ajánlott eljárás az adatok átmeneti táblába való betöltése. 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. A staging tábla lehetőséget nyújt az SQL tároló beépített, elosztott lekérdezés-feldolgozási képességeinek használatára az adatok átalakítására, mielőtt az adatokat éles táblákba helyezné.

A PolyBase használatával történő betöltési lehetőségek

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

  • Külső adatok betöltése a Microsoft Entra-azonosítóval.
  • Külső adatok betöltése felügyelt identitással.
  • A PolyBase és a T-SQL jól működik, ha az adatok az Azure Blob Storage-ban vagy az Azure Data Lake Storage-ban vannak. A betöltési folyamat felett a legtöbb ellenőrzést adja meg, de megköveteli a külső adatobjektumok meghatározását is. A többi metódus a forrástáblák céltáblákhoz való leképezése során definiálja ezeket az objektumokat a színfalak mögött. A T-SQL-terhelések vezényléséhez használhatja az Azure Data Factoryt, az SSIS-t vagy az Azure Functionst.
  • A PolyBase és az SQL Server Integration Services (SSIS) jól működik, ha a forrásadatok az SQL Serverben találhatóak. Az SSIS meghatározza a forrás–cél táblaleképezéseket, é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 és az Azure Data Factory 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.

PolyBase nélküli betöltési lehetőségek

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

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 produkciós táblába.

Adatok beszúrása a production táblákba

Az INSERT INTO ... 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 rakodási megoldásokkal. További információért tekintse meg megoldáspartnereink listáját.