Ingestování dat do vašeho skladu pomocí příkazu COPY
Platí pro:✅ Warehouse v Microsoft Fabric
Příkaz COPY představuje primární způsob, jak ingestovat data do tabulek Warehouse. FUNKCE COPY provádí příjem dat s vysokou propustností z externího účtu úložiště Azure s flexibilitou konfigurace možností formátu zdrojového souboru, umístění pro ukládání odmítnutých řádků, přeskočení řádků záhlaví a dalších možností.
Tento kurz ukazuje příklady příjmu dat pro tabulku Warehouse pomocí příkazu T-SQL COPY. Používá ukázková data Bingu COVID-19 z Azure Open Datasets. Podrobnosti o těchto datech, včetně jejich schématu a práv k používání, najdete v tématu Covid-19 Bingu.
Poznámka:
Další informace o příkazu T-SQL COPY, včetně dalších příkladů a úplné syntaxe, najdete v tématu COPY (Transact-SQL).
Vytvoření tabulky
Před použitím příkazu COPY je potřeba vytvořit cílovou tabulku. K vytvoření cílové tabulky pro tuto ukázku použijte následující kroky:
V pracovním prostoru Microsoft Fabric vyhledejte a otevřete svůj sklad.
Přepněte na kartu Domů a vyberte Nový dotaz SQL.
Pokud chcete vytvořit tabulku použitou jako cíl v tomto kurzu, spusťte následující kód:
CREATE TABLE [dbo].[bing_covid-19_data] ( [id] [int] NULL, [updated] [date] NULL, [confirmed] [int] NULL, [confirmed_change] [int] NULL, [deaths] [int] NULL, [deaths_change] [int] NULL, [recovered] [int] NULL, [recovered_change] [int] NULL, [latitude] [float] NULL, [longitude] [float] NULL, [iso2] [varchar](8000) NULL, [iso3] [varchar](8000) NULL, [country_region] [varchar](8000) NULL, [admin_region_1] [varchar](8000) NULL, [iso_subdivision] [varchar](8000) NULL, [admin_region_2] [varchar](8000) NULL, [load_time] [datetime2](6) NULL );
Ingestování dat Parquet pomocí příkazu COPY
V prvním příkladu načteme data pomocí zdroje Parquet. Vzhledem k tomu, že tato data jsou veřejně dostupná a nevyžadují ověření, můžete tato data snadno zkopírovat zadáním zdroje a cíle. Nejsou potřeba žádné podrobnosti o ověřování. Argument budete muset zadat jenom vy FILE_TYPE
.
Ke spuštění příkazu COPY se zdrojem Parquet použijte následující kód:
COPY INTO [dbo].[bing_covid-19_data]
FROM 'https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.parquet'
WITH (
FILE_TYPE = 'PARQUET'
);
Ingestování dat CSV pomocí příkazu COPY a přeskočení řádku záhlaví
U souborů s hodnotami oddělenými čárkami (CSV) je běžné, že mají řádek záhlaví, který obsahuje názvy sloupců představující tabulku v souboru CSV. Příkaz COPY může kopírovat data ze souborů CSV a přeskočit jeden nebo více řádků ze záhlaví zdrojového souboru.
Pokud jste spustili předchozí příklad pro načtení dat z Parquet, zvažte odstranění všech dat z tabulky:
DELETE FROM [dbo].[bing_covid-19_data];
Pokud chcete načíst data ze souboru CSV přeskakování řádku záhlaví, použijte následující kód:
COPY INTO [dbo].[bing_covid-19_data]
FROM 'https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.csv'
WITH (
FILE_TYPE = 'CSV',
FIRSTROW = 2
);
Kontrola výsledků
Příkaz COPY se dokončí ingestováním 4 766 736 řádků do nové tabulky. Operaci můžete ověřit spuštěním dotazu, který vrátí celkový počet řádků v tabulce:
SELECT COUNT(*) FROM [dbo].[bing_covid-19_data];
Pokud jste spustili oba příklady bez odstranění řádků mezi spuštěními, zobrazí se výsledek tohoto dotazu s dvakrát tolika řádky. I když to funguje pro příjem dat v tomto případě, zvažte odstranění všech řádků a ingestování dat pouze jednou, pokud budete s daty dále experimentovat.