Sdílet prostřednictvím


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).

Implementovat 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:

  1. Extrahujte zdrojová data do textových souborů.
  2. Umístěte data do Azure Blob Storage nebo Azure Data Lake Storage.
  3. Připravte data na načtení.
  4. Načtěte data do vyhrazených pracovních tabulek fondu SQL pomocí PolyBase.
  5. Transformujte data.
  6. Vložte data do produkčních tabulek.

Pro krátký návod k načítání se podívejte do 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 také načítá 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
booleovský bitové
dvojitý float
float (číslo s plovoucí řádovou čárkou) skutečný
dvojitý peníze
dvojitý smallmoney
řetězec nchar
string nvarchar
řetězec 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 datum a čas
časové razítko čas
datum datum
desetinný desetinný

Uložte data do úložiště objektů blob v Azure nebo do Azure Data Lake Storage.

K uložení dat ve službě Azure 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čítat z obou 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. Ujistěte se, že použijete znak nebo sekvenci znaků, která se nenachází ve vašich zdrojových datech. Použijte terminátor, který jste zadali pomocí CREATE EXTERNAL FILE FORMAT.

Načtení dat do přechodných tabulek vyhrazeného SQL pole 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é umožňuje použít integrované funkce distribuovaného zpracování dotazů SQL poolu 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í Microsoft Entra ID.
  • 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í mezi zdrojovými a cílovými tabulkami a také orchestruje načítání. 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 pipeline 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.

Transformujte data

Zatímco jsou data v přechodné 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 přechodné 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.

Partnerská řešení pro nakládání

Mnoho našich partnerů má řešení pro nakládku. Další informace najdete v seznamu našich partnerů pro řešení.