Návrh strategie načítání dat PolyBase pro vyhrazený fond SQL ve službě Azure Synapse Analytics
Tradiční datové sklady SMP používají proces extrakce, transformace a načítání (ETL) pro načítání dat. Fond Azure SQL je architektura MPP (Massively Parallel Processing), která využívá škálovatelnost a flexibilitu výpočetních a úložných prostředků. Proces extrakce, načítání a transformace (ELT) může využívat integrované funkce pro zpracování distribuovaných dotazů a eliminovat prostředky potřebné k transformaci dat před načtením.
I když fond SQL podporuje mnoho metod načítání, včetně možností jiných než Polybase, jako jsou BCP a rozhraní SQL BulkCopy API, nejrychlejší a nejš škálovatelný způsob načítání dat je prostřednictvím PolyBase. PolyBase je technologie, která přistupuje k externím datům uloženým ve službě Azure Blob Storage nebo Azure Data Lake Store prostřednictvím jazyka T-SQL.
Extrakce, načtení a transformace (ELT)
Extrakce, načtení a transformace (ELT) je proces, pomocí kterého se data extrahují ze zdrojového systému, načtou se do datového skladu a pak se transformují.
Základní kroky pro implementaci PolyBase ELT pro vyhrazený fond SQL jsou:
- Extrakce zdrojových dat do textových souborů
- Přisadíte data do úložiště objektů blob v Azure nebo do Azure Data Lake Store.
- Připravte data na načtení.
- Načtěte data do vyhrazených pracovních tabulek fondu SQL pomocí PolyBase.
- Transformujte data.
- Vložení dat do produkčních tabulek
Kurz načítání najdete v tématu Použití PolyBase k načtení dat z úložiště objektů blob v Azure do Azure Synapse Analytics.
Další informace najdete v blogu o načítání vzorů.
1. Extrahování zdrojových dat do textových souborů
Získávání dat ze zdrojového systému závisí na umístění úložiště. Cílem je přesunout data do podporovaných textových souborů s oddělovači PolyBase.
Formáty externích souborů PolyBase
PolyBase načte data z textových souborů s kódováním UTF-8 a UTF-16 s oddělovači. PolyBase se také načte z formátů souborů Hadoop RC File, ORC a Parquet. PolyBase může také načítat data z komprimovaných souborů Gzip a Snappy. PolyBase v současné době nepodporuje rozšířený formát ASCII, formát s pevnou šířkou a vnořené formáty, jako jsou WinZip, JSON a XML.
Pokud exportujete z SQL Serveru, můžete data exportovat do textových souborů s oddělovači pomocí nástroje příkazového řádku bcp. Mapování datových typů Parquet na Azure Synapse Analytics je následující:
Datový typ Parquet | Datový typ SQL |
---|---|
tinyint | tinyint |
smallint | smallint |
int | int |
bigint | bigint |
boolean | bitové |
double | float (číslo s plovoucí řádovou čárkou) |
float (číslo s plovoucí řádovou čárkou) | real |
double | peníze |
double | smallmoney |
string | nchar |
string | nvarchar |
string | char |
string | varchar |
binární | binární |
binární | varbinary |
časové razítko | datum |
časové razítko | smalldatetime |
časové razítko | datetime2 |
časové razítko | datetime |
časové razítko | čas |
datum | datum |
decimal | decimal |
2. Přisadíte data do služby Azure Blob Storage nebo Azure Data Lake Store.
Pokud chcete data přistála ve službě Azure Storage, můžete je přesunout do služby Azure Blob Storage nebo Azure Data Lake Store. V obou umístěních by data měla být uložena v textových souborech. PolyBase může načíst z libovolného umístění.
Nástroje a služby, které můžete použít k přesunu dat do Azure Storage:
- Služba Azure ExpressRoute vylepšuje propustnost sítě, výkon a předvídatelnost. ExpressRoute je služba, která směruje vaše data prostřednictvím vyhrazeného privátního připojení do Azure. Připojení ExpressRoute nesměrují data přes veřejný internet. Připojení nabízejí větší spolehlivost, rychlejší rychlost, nižší latenci a vyšší zabezpečení než typická připojení přes veřejný internet.
- Nástroj AzCopy přesune data do služby Azure Storage přes veřejný internet. To funguje, pokud jsou velikosti dat menší než 10 TB. Pokud chcete pravidelně provádět zatížení pomocí nástroje AzCopy, otestujte rychlost sítě a zjistěte, jestli je to přijatelné.
- Azure Data Factory (ADF) má bránu, kterou můžete nainstalovat na místní server. Potom můžete vytvořit kanál pro přesun dat z místního serveru do Služby Azure Storage. Informace o použití služby Data Factory s vyhrazeným fondem SQL najdete v tématu Načtení dat do vyhrazeného fondu SQL.
3. Příprava dat na načtení
Před načtením do vyhrazeného fondu SQL možná budete muset data ve svém účtu úložiště připravit a vyčistit. Přípravu dat je možné provést, když jsou vaše data ve zdroji, při exportu dat do textových souborů nebo po tom, co jsou data ve službě Azure Storage. Nejsnadnější je pracovat s daty co nejdříve v procesu.
Definování externích tabulek
Než budete moct načíst data, musíte definovat externí tabulky v datovém skladu. PolyBase používá externí tabulky k definování a přístupu k datům ve službě Azure Storage. Externí tabulka je podobná zobrazení databáze. Externí tabulka obsahuje schéma tabulky a odkazuje na data uložená mimo datový sklad.
Definování externích tabulek zahrnuje zadání zdroje dat, formátu textových souborů a definic tabulek. Následující témata jsou témata syntaxe jazyka T-SQL, která budete potřebovat:
Formátování textových souborů
Po definování externích objektů je potřeba zarovnat řádky textových souborů s externí tabulkou a definicí formátu souboru. Data v každém řádku textového souboru musí být zarovnaná s definicí tabulky. Formátování textových souborů:
- Pokud data pocházejí z nerelačního zdroje, musíte je transformovat na řádky a sloupce. Ať už data pocházejí z relačního nebo nerelačního zdroje, musí se data transformovat tak, aby odpovídala definicům sloupců pro tabulku, do které chcete data načíst.
- Naformátujte data v textovém souboru tak, aby odpovídala sloupcům a datovým typům v cílové tabulce fondu SQL. Nesprávné zarovnání datových typů v externích textových souborech a tabulce datového skladu způsobí odmítnutí řádků během načítání.
- Pole v textovém souboru oddělte ukončovacím znakem. Nezapomeňte použít znak nebo posloupnost znaků, která nebyla nalezena ve zdrojových datech. Použijte ukončovací znak, který jste zadali ve formátu CREATE EXTERNAL FILE.
4. Načtení dat do vyhrazených pracovních tabulek fondu SQL pomocí PolyBase
Osvědčeným postupem je načíst data do pracovní tabulky. Pracovní tabulky umožňují zpracovávat chyby bez zásahu do produkčních tabulek. Pracovní tabulka také nabízí možnost použít předdefinované funkce distribuovaného zpracování dotazů fondu SQL pro transformace dat před vložením dat do produkčních tabulek.
Možnosti načítání pomocí PolyBase
Pokud chcete načíst data pomocí PolyBase, můžete použít některou z těchto možností načítání:
- Načtení externích dat pomocí MICROSOFT Entra ID
- Načtení externích dat pomocí spravované identity
- PolyBase s T-SQL funguje dobře, když jsou vaše data ve službě Azure Blob Storage nebo Azure Data Lake Store. Poskytuje největší kontrolu nad procesem načítání, ale také vyžaduje, abyste definovali externí datové objekty. Ostatní metody definují tyto objekty na pozadí při mapování zdrojových tabulek na cílové tabulky. K orchestraci načítání T-SQL můžete použít azure Data Factory, SSIS nebo funkce Azure.
- PolyBase s SSIS funguje dobře, když jsou zdrojová data na SQL Serveru. Služba SSIS definuje zdrojové mapování cílových tabulek a také orchestruje zatížení. Pokud už máte balíčky SSIS, můžete balíčky upravit tak, aby fungovaly s novým cílem datového skladu.
- PolyBase se službou Azure Data Factory (ADF) je dalším nástrojem pro orchestraci. Definuje kanál a plánuje úlohy.
- PolyBase s Azure Databricks přenáší data z tabulky Azure Synapse Analytics do datového rámce Databricks nebo zapisuje data z datového rámce Databricks do tabulky Azure Synapse Analytics pomocí PolyBase.
Možnosti načítání bez PolyBase
Pokud vaše data nejsou kompatibilní s PolyBase, můžete použít bcp nebo rozhraní SQLBulkCopy API. BCP se načte přímo do vyhrazeného fondu SQL bez průchodu službou Azure Blob Storage a je určen pouze pro malé zatížení. Všimněte si, že výkon načítání těchto možností je pomalejší než PolyBase.
5. Transformace dat
Zatímco jsou data v pracovní tabulce, proveďte transformace, které vaše úloha vyžaduje. Pak přesuňte data do produkční tabulky.
6. Vložte data do produkčních tabulek.
INSERT INTO ... Příkaz SELECT přesune data z pracovní tabulky do trvalé tabulky.
Při návrhu procesu ETL zkuste proces spustit na malé testovací ukázce. Zkuste extrahovat 1 000 řádků z tabulky do souboru, přesunout ho do Azure a pak ho zkuste načíst do pracovní tabulky.
Partner načítá řešení
Mnoho našich partnerů má řešení načítání. Další informace najdete v seznamu našich partnerů pro řešení.
Další kroky
Pokyny k načítání najdete v pokynech k načtení dat.