Erfassen von Daten in Ihr Warehouse mithilfe der COPY-Anweisung

Gilt für: Warehouse in Microsoft Fabric

Die COPY-Anweisung ist die primäre Methode zum Erfassen von Daten in Warehouse-Tabellen. COPY führt eine Datenerfassung mit hohem Durchsatz aus einem externen Azure-Speicherkonto durch, wobei sie flexibel Quelldateiformatoptionen konfigurieren können, einen Speicherort zum Speichern abgelehnter Zeilen, das Überspringen von Headerzeilen und andere Optionen bietet.

Dieses Tutorial zeigt Beispiele für die Datenerfassung für eine Warehouse-Tabelle mit der T-SQL COPY-Anweisung. Es verwendet die Bing-COVID-19-Beispieldaten aus den Azure Open Datasets. Ausführliche Informationen zu diesem Dataset, einschließlich des Schemas und der Nutzungsrechte, finden Sie unter Bing COVID-19.

Hinweis

Weitere Informationen zur T-SQL COPY-Anweisung, einschließlich weiterer Beispiele und der vollständigen Syntax, finden Sie unter COPY (Transact-SQL).

Wichtig

Microsoft Fabric befindet sich derzeit in der VORSCHAU. Diese Informationen beziehen sich auf eine Vorabversion des Produkts, an der vor der Veröffentlichung noch wesentliche Änderungen vorgenommen werden können. Microsoft übernimmt keine Garantie, weder ausdrücklich noch stillschweigend, für die hier bereitgestellten Informationen.

Erstellen einer Tabelle

Bevor Sie die COPY-Anweisung verwenden, muss die Zieltabelle erstellt werden. Führen Sie die folgenden Schritte aus, um die Zieltabelle für dieses Beispiel zu erstellen:

  1. Suchen und öffnen Sie in Ihrem Microsoft Fabric-Arbeitsbereich Ihr Warehouse.

  2. Wechseln Sie zur Registerkarte Start , und wählen Sie Neue SQL-Abfrage aus.

    Screenshot des oberen Abschnitts des Arbeitsbereichs des Benutzers mit der Schaltfläche

  3. Führen Sie den folgenden Code aus, um die Tabelle zu erstellen, die in diesem Tutorial als Ziel verwendet wird:

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

Erfassen von Parquet-Daten mithilfe der COPY-Anweisung

Im ersten Beispiel laden wir Daten mithilfe einer Parquet-Quelle. Da dieses Dataset öffentlich verfügbar ist und keine Authentifizierung erfordert, können Sie diese Daten einfach kopieren, indem Sie die Quelle und das Ziel angeben. Es sind keine Authentifizierungsdetails erforderlich. Sie müssen nur das FILE_TYPE Argument angeben.

Verwenden Sie den folgenden Code, um die COPY-Anweisung mit einer Parquet-Quelle auszuführen:

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

Erfassen von CSV-Daten mithilfe der COPY-Anweisung und Überspringen einer Headerzeile

Es ist üblich, dass CSV-Dateien (Durch Trennzeichen getrennte Werte) über eine Kopfzeile verfügen, die die Spaltennamen enthält, die die Tabelle in einer CSV-Datei darstellen. Die COPY-Anweisung kann Daten aus CSV-Dateien kopieren und eine oder mehrere Zeilen aus dem Quelldateiheader überspringen.

Wenn Sie das vorherige Beispiel ausgeführt haben, um Daten aus Parquet zu laden, sollten Sie erwägen, alle Daten aus Ihrer Tabelle zu löschen:

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

Verwenden Sie den folgenden Code, um Daten aus einer CSV-Datei zu laden, die eine Headerzeile überspringt:

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

Überprüfen der Ergebnisse

Die COPY-Anweisung wird abgeschlossen, indem 4.766.736 Zeilen in Ihrer neuen Tabelle erfasst werden. Sie können bestätigen, dass der Vorgang erfolgreich ausgeführt wurde, indem Sie eine Abfrage ausführen, die die Gesamtanzahl der Zeilen in Ihrer Tabelle zurückgibt:

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

Wenn Sie beide Beispiele ausgeführt haben, ohne die Zeilen zwischen den Ausführungen zu löschen, wird das Ergebnis dieser Abfrage mit doppelt so vielen Zeilen angezeigt. Dies funktioniert in diesem Fall zwar für die Datenerfassung, aber erwägen Sie, alle Zeilen zu löschen und Daten nur einmal zu erfassen, wenn Sie mit diesen Daten weiter experimentieren möchten.

Nächste Schritte