Megosztás a következőn keresztül:


Adatok betöltése a raktárba a COPY utasítással

A következőre vonatkozik: Warehouse a Microsoft Fabricben

A COPY utasítás az adatok Warehouse-táblákba való betöltésének elsődleges módja. A COPY nagy átviteli sebességű adatbetöltést hajt végre egy külső Azure Storage-fiókból, rugalmasan konfigurálva a forrásfájlformátum beállításait, az elutasított sorok tárolásának helyét, a fejlécsorok kihagyását és egyéb beállításokat.

Ez az oktatóanyag egy Warehouse-tábla adatbetöltési példáit mutatja be a T-SQL COPY utasítás használatával. A Bing COVID-19-mintaadatokat használja az Azure Open Datasetsből. Az adatokkal kapcsolatos részletekért, beleértve a sémát és a használati jogokat, tekintse meg a Bing COVID-19-et.

Feljegyzés

Ha többet szeretne megtudni a T-SQL COPY utasításról, beleértve további példákat és a teljes szintaxist, olvassa el a COPY (Transact-SQL) című témakört.

Tábla létrehozása

A COPY utasítás használata előtt létre kell hozni a céltáblát. A minta céltáblájának létrehozásához kövesse az alábbi lépéseket:

  1. A Microsoft Fabric-munkaterületen keresse meg és nyissa meg a raktárat.

  2. Váltson a Kezdőlap lapra, és válassza az Új SQL-lekérdezés lehetőséget.

    Képernyőkép a felhasználó munkaterületének felső szakaszáról, amelyen az Új SQL-lekérdezés gomb látható.

  3. Az oktatóanyag célként használt táblájának létrehozásához futtassa a következő kódot:

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

Parquet-adatok betöltése a COPY utasítással

Az első példában egy Parquet-forrás használatával töltjük be az adatokat. Mivel ezek az adatok nyilvánosan elérhetők, és nem igényel hitelesítést, egyszerűen másolhatja ezeket az adatokat a forrás és a cél megadásával. Nincs szükség hitelesítési részletekre. Csak az argumentumot kell megadnia FILE_TYPE .

A COPY utasítás parquet-forrással való futtatásához használja az alábbi kódot:

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

CSV-adatok betöltése a COPY utasítással és egy fejlécsor kihagyása

Gyakran előfordul, hogy a vesszővel tagolt értékeket tartalmazó (CSV-) fájlok fejlécsorai egy CSV-fájlban a táblát képviselő oszlopneveket biztosítják. A COPY utasítás adatokat másolhat CSV-fájlokból, és kihagyhat egy vagy több sort a forrásfájl fejlécéből.

Ha az előző példát futtatva adatokat tölt be a Parquetből, fontolja meg az összes adat törlését a táblából:

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

Ha egy fejlécsort kihagyó CSV-fájlból szeretne adatokat betölteni, használja a következő kódot:

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

Az eredmények ellenőrzése

A COPY utasítás úgy fejeződik be, hogy 4 766 736 sort betölt az új táblába. A művelet sikeres futtatását egy olyan lekérdezés futtatásával ellenőrizheti, amely a tábla sorainak teljes számát adja vissza:

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

Ha mindkét példát futtatta anélkül, hogy törölte volna a sorokat a futtatások között, a lekérdezés eredménye kétszer annyi sorból fog megjelenni. Bár ez ebben az esetben az adatbetöltéshez is használható, érdemes lehet törölni az összes sort, és csak egyszer kell beszedni az adatokat, ha további kísérleteket szeretne tenni ezekkel az adatokkal.