Gegevens opnemen in uw magazijn met behulp van de COPY-instructie
Van toepassing op:✅ Warehouse in Microsoft Fabric
De COPY-instructie is de primaire manier om gegevens op te nemen in magazijntabellen. COPY voert gegevensopname met een hoge doorvoer uit een extern Azure-opslagaccount uit, met de flexibiliteit om opties voor bronbestandsindelingen te configureren, een locatie voor het opslaan van geweigerde rijen, het overslaan van veldnamenrijen en andere opties.
In deze zelfstudie ziet u voorbeelden van gegevensopname voor een magazijntabel met behulp van de T-SQL COPY-instructie. Hierbij worden de Bing COVID-19-voorbeeldgegevens uit de Azure Open Datasets gebruikt. Zie Bing COVID-19 voor meer informatie over deze gegevens, inclusief de bijbehorende schema- en gebruiksrechten.
Notitie
Zie COPY (Transact-SQL)voor meer informatie over de T-SQL COPY-instructie, inclusief meer voorbeelden en de volledige syntaxis.
Een tabel maken
Voordat u de COPY-instructie gebruikt, moet de doeltabel worden gemaakt. Gebruik de volgende stappen om de doeltabel voor dit voorbeeld te maken:
Zoek en open uw magazijn in uw Microsoft Fabric-werkruimte.
Ga naar het tabblad Start en selecteer Nieuwe SQL-query.
Voer de volgende code uit om de tabel te maken die wordt gebruikt als de bestemming in deze zelfstudie:
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-gegevens opnemen met behulp van de COPY-instructie
In het eerste voorbeeld laden we gegevens met behulp van een Parquet-bron. Omdat deze gegevens openbaar beschikbaar zijn en geen verificatie vereist, kunt u deze gegevens eenvoudig kopiëren door de bron en het doel op te geven. Er zijn geen verificatiegegevens nodig. U hoeft alleen het FILE_TYPE
argument op te geven.
Gebruik de volgende code om de COPY-instructie uit te voeren met een Parquet-bron:
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-gegevens opnemen met de instructie COPY en een veldnamenrij overslaan
Het is gebruikelijk dat csv-bestanden (door komma's gescheiden waarden) een veldnamenrij hebben die de kolomnamen bevat die de tabel in een CSV-bestand vertegenwoordigen. Met de instructie COPY kunt u gegevens uit CSV-bestanden kopiëren en een of meer rijen uit de koptekst van het bronbestand overslaan.
Als u het vorige voorbeeld hebt uitgevoerd om gegevens uit Parquet te laden, kunt u overwegen alle gegevens uit uw tabel te verwijderen:
DELETE FROM [dbo].[bing_covid-19_data];
Gebruik de volgende code om gegevens uit een CSV-bestand te laden dat een veldnamenrij overslaat:
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
);
De resultaten controleren
De COPY-instructie wordt voltooid door 4.766.736 rijen in uw nieuwe tabel op te nemen. U kunt controleren of de bewerking is uitgevoerd door een query uit te voeren die het totale aantal rijen in de tabel retourneert:
SELECT COUNT(*) FROM [dbo].[bing_covid-19_data];
Als u beide voorbeelden hebt uitgevoerd zonder de rijen tussen uitvoeringen te verwijderen, ziet u het resultaat van deze query met twee keer zoveel rijen. Hoewel dat werkt voor gegevensopname in dit geval, kunt u overwegen om alle rijen te verwijderen en gegevens slechts één keer op te nemen als u verder wilt experimenteren met deze gegevens.