Zdieľať cez


Ingestovanie údajov do skladu pomocou príkazu COPY

Vzťahuje sa na:✅ Warehouse v službe Microsoft Fabric

Príkaz COPY je primárny spôsob, ako preniesť údaje do tabuliek Warehouse. Funkcia COPY vykonáva príjem údajov s vysokou priepustnosťou z externého konta úložiska Azure, pričom umožňuje flexibilitu konfigurovať možnosti formátu zdrojového súboru, umiestnenie na ukladanie zamietnutých riadkov, vynechanie riadkov hlavičiek a ďalšie možnosti.

V tomto kurze sa zobrazujú príklady príjmu údajov pre tabuľku skladu pomocou príkazu COPY T-SQL. Používa vzorové údaje služby Bing pre COVID-19 z množín údajov Azure Open. Podrobnosti o týchto údajoch vrátane schémy a práv na používanie nájdete v téme Bing coVID-19.

Poznámka

Ďalšie informácie o príkaze T-SQL COPY vrátane ďalších príkladov a úplnej syntaxe nájdete v téme COPY (Transact-SQL).

Vytvorenie tabuľky

Pred použitím príkazu COPY je potrebné vytvoriť cieľovú tabuľku. Ak chcete pre túto ukážku vytvoriť cieľovú tabuľku, použite tieto kroky:

  1. V pracovnom priestore služby Microsoft Fabric vyhľadajte a otvorte svoj sklad.

  2. Prepnite na kartu Domov a vyberte položku Nový dotaz SQL.

    Snímka obrazovky hornej časti pracovného priestoru používateľa zobrazujúca tlačidlo nový dotaz SQL.

  3. Ak chcete vytvoriť tabuľku, ktorá sa použije ako cieľ v tomto kurze, spustite nasledujúci 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
    );
    

Údaje Ingest Parquet pomocou príkazu COPY

V prvom príklade načítame údaje pomocou zdroja parquet. Keďže sú tieto údaje verejne dostupné a nevyžadujú overenie, môžete tieto údaje jednoducho skopírovať určením zdroja a cieľa. Nie sú potrebné žiadne podrobnosti o overení. Stačí iba zadať FILE_TYPE argument.

Príkaz COPY sa spustí pomocou nasledujúceho kódu so zdrojom parquet:

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'
);

Ingest CSV údajov pomocou príkazu COPY a vynechanie riadka hlavičky

Je bežné, že súbory s hodnotami oddelenými čiarkou (CSV) obsahujú riadok hlavičky, ktorý poskytuje názvy stĺpcov predstavujúce tabuľku v súbore CSV. Príkaz COPY môže kopírovať údaje zo súborov CSV a preskočiť jeden alebo viac riadkov z hlavičky zdrojového súboru.

Ak ste spustili predchádzajúci príklad na načítanie údajov z Parketu, zvážte odstránenie všetkých údajov z tabuľky:

DELETE FROM [dbo].[bing_covid-19_data];

Ak chcete načítať údaje zo súboru CSV, ktorý vynechá riadok hlavičky, použite nasledujúci 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ýsledkov

Príkaz COPY sa dokončí presunutím 4 766 736 riadkov do novej tabuľky. Operáciu môžete potvrdiť spustením dotazu, ktorý vráti celkový počet riadkov v tabuľke:

SELECT COUNT(*) FROM [dbo].[bing_covid-19_data];

Ak ste spustili oba príklady bez odstránenia riadkov medzi spusteniami, zobrazí sa výsledok tohto dotazu s dvakrát väčším počtom riadkov. Hoci to v tomto prípade funguje pri príjme údajov, v prípade potreby zvážte odstránenie všetkých riadkov a príjem údajov iba raz, ak sa chystáte s týmito údajmi ďalej experimentovať.