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:

  1. V pracovním prostoru Microsoft Fabric vyhledejte a otevřete svůj sklad.

  2. Přepněte na kartu Domů a vyberte Nový dotaz SQL.

    Snímek obrazovky horní části pracovního prostoru uživatele s tlačítkem Nový dotaz SQL

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