Inntak av data i lageret ved hjelp av COPY-setningen
Gjelder for:✅ Lager i Microsoft Fabric
COPY-setningen er den primære måten å innta data på i Lager-tabeller. COPY utfører høy gjennomstrømming av data fra en ekstern Azure-lagringskonto, med fleksibilitet til å konfigurere alternativer for kildefilformat, en plassering der du kan lagre avviste rader, hoppe over overskriftsrader og andre alternativer.
Denne opplæringen viser eksempler på datainntak for en Lager-tabell ved hjelp av T-SQL COPY-setningen. Den bruker Bing COVID-19-eksempeldataene fra Azure Open Datasets. Hvis du vil ha mer informasjon om disse dataene, inkludert skjema og bruksrettigheter, kan du se Bing COVID-19.
Merk
Hvis du vil lære mer om T-SQL COPY-setningen, inkludert flere eksempler og den fullstendige syntaksen, kan du se COPY (Transact-SQL).
Opprett en tabell
Før du bruker COPY-setningen, må måltabellen opprettes. Bruk følgende fremgangsmåte for å opprette måltabellen for dette eksemplet:
Finn og åpne lageret i Microsoft Fabric-arbeidsområdet.
Bytt til Hjem-fanen , og velg Ny SQL-spørring.
Hvis du vil opprette tabellen som brukes som mål i denne opplæringen, kjører du følgende kode:
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 );
Inntak av parquet-data ved hjelp av COPY-setningen
I det første eksemplet laster vi inn data ved hjelp av en parkettkilde. Siden disse dataene er offentlig tilgjengelige og ikke krever godkjenning, kan du enkelt kopiere disse dataene ved å angi kilden og målet. Ingen godkjenningsdetaljer er nødvendig. Du trenger bare å angi FILE_TYPE
argumentet.
Bruk følgende kode til å kjøre COPY-setningen med en parquetkilde:
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'
);
Innta CSV-data ved hjelp av COPY-setningen og hoppe over en overskriftsrad
Det er vanlig at kommadelte verdifiler (CSV) har en overskriftsrad som gir kolonnenavnene som representerer tabellen i en CSV-fil. COPY-setningen kan kopiere data fra CSV-filer og hoppe over én eller flere rader fra kildefiloverskriften.
Hvis du kjørte det forrige eksemplet for å laste inn data fra Parquet, kan du vurdere å slette alle data fra tabellen:
DELETE FROM [dbo].[bing_covid-19_data];
Hvis du vil laste inn data fra en CSV-fil som hopper over en overskriftsrad, bruker du følgende kode:
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
);
Kontroller resultatene
COPY-setningen fullføres ved å innta 4 766 736 rader i den nye tabellen. Du kan bekrefte at operasjonen ble kjørt ved å kjøre en spørring som returnerer totalt antall rader i tabellen:
SELECT COUNT(*) FROM [dbo].[bing_covid-19_data];
Hvis du kjørte begge eksemplene uten å slette radene mellom kjøringene, ser du resultatet av denne spørringen med dobbelt så mange rader. Selv om dette fungerer for datainntak i dette tilfellet, bør du vurdere å slette alle rader og innta data bare én gang hvis du skal eksperimentere videre med disse dataene.