Návrh strategie načítání dat PolyBase pro vyhrazený fond SQL
Tradiční symetrické multiprocesingové 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ů.
Naproti tomu 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 například hromadná kopírování (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 Storage prostřednictvím jazyka Transact-SQL (T-SQL).
Implementace PolyBase 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:
- Extrahujte zdrojová data do textových souborů.
- Přisadíte data do úložiště objektů blob v Azure nebo do Služby Azure Data Lake Storage.
- Připravte data na načtení.
- Načtěte data do vyhrazených pracovních tabulek fondu SQL pomocí PolyBase.
- Transformujte data.
- Vložte data do produkčních tabulek.
Kurz načítání najdete v tématu Načtení datové sady New York Taxicab.
Další informace najdete v tématu Načítání vzorů a strategií.
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 textových souborů s oddělovači podporovaných technologií 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 ani 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. Následující tabulka uvádí datové typy Parquet mapované na Azure Synapse Analytics.
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 |
Přistál data do úložiště objektů blob v Azure nebo do 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 Storage. 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í.
K přesunu dat do Azure Storage můžete použít následující nástroje a služby:
- 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 s nástrojem AzCopy pravidelně provádět zatížení, otestujte rychlost sítě, abyste zjistili, jestli je to přijatelné.
- Azure Data Factory 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 Azure Synapse Analytics.
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 uložení dat v úložišti Azure. 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. V následujících tématech najdete témata syntaxe T-SQL, která potřebujete:
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 znakovou nebo znakovou sekvenci, která není ve zdrojových datech nalezena. Použijte ukončovací znak, který jste zadali ve formátu CREATE EXTERNAL FILE.
Načtení dat do pracovních tabulek vyhrazeného 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čtěte externí data pomocí ID Microsoft Entra.
- Načtěte externí data 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 Storage. 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 Azure Functions.
- PolyBase s SQL Server Integration Services (SSIS) funguje dobře, když jsou zdrojová data v SQL Serveru. Služba SSIS definuje mapování zdrojové tabulky do cíle 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 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.
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.
Vložení dat do produkčních tabulek
Příkaz INSERT INTO ... 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í.