Delen via


Gegevens laden in uw Datawarehouse met behulp van de COPY-opdracht.

Van toepassing op:✅ Warehouse in Microsoft Fabric

De COPY-opdracht is de primaire manier om gegevens op te nemen in Warehouse-tabellen. COPY voert gegevensopname met een zeer hoge doorvoer uit van een extern Azure-opslagaccount, met flexibiliteit om opties voor bronbestandsindelingen te configureren, een locatie te bepalen voor het opslaan van geweigerde rijen, rij met kopteksten over te slaan en andere opties in te stellen.

In deze zelfstudie ziet u voorbeelden van gegevensopname voor een Warehouse-tabel met behulp van de instructie T-SQL COPY. 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

Met Warehouse kunt u ook de BULK INSERT-instructie gebruiken voor het importeren van gegevens. De COPY INTO instructie is de aanbevolen instructie voor de nieuwe opnamecode, terwijl u met de BULK INSERT instructie de code kunt hergebruiken die u gebruikt in SQL Server of Azure SQL Database.

Zie COPY voor meer informatie over de T-SQL-instructie, inclusief meer voorbeelden en de volledige syntaxis.

Een tabel maken

Voordat u de COPY-opdracht gebruikt, moet de doeltabel aangemaakt zijn. Gebruik de volgende stappen om de doeltabel voor dit voorbeeld te maken:

  1. Zoek en open uw magazijn in uw Microsoft Fabric-werkruimte.

  2. Ga naar het tabblad Start en selecteer Nieuwe SQL-query.

    Schermopname van het bovenste gedeelte van de werkruimte van de gebruiker met de knop Nieuwe SQL-query.

  3. 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 inlezen met de COPY-instructie en een koprij 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 voltooit het proces 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.

Opties voor gegevensopname

Andere manieren om gegevens op te nemen in uw magazijn zijn: