Udostępnij za pośrednictwem


Pozyskiwanie danych do magazynu przy użyciu instrukcji COPY

Dotyczy: Magazyn w usłudze Microsoft Fabric

Instrukcja COPY to podstawowy sposób pozyskiwania danych do tabel magazynu. Funkcja COPY wykonuje pozyskiwanie danych o wysokiej przepływności z zewnętrznego konta magazynu platformy Azure z elastycznością konfigurowania opcji formatowania pliku źródłowego, lokalizacji do przechowywania odrzuconych wierszy, pomijania wierszy nagłówka i innych opcji.

W tym samouczku przedstawiono przykłady pozyskiwania danych dla tabeli Magazynu przy użyciu instrukcji T-SQL COPY. Korzysta z przykładowych danych Bing COVID-19 z zestawów danych Azure Open Datasets. Aby uzyskać szczegółowe informacje o tych danych, w tym ich schemat i prawa użytkowania, zobacz Bing COVID-19.

Uwaga

Aby dowiedzieć się więcej na temat instrukcji T-SQL COPY, w tym więcej przykładów i pełnej składni, zobacz COPY (Transact-SQL).

Utwórz tabelę

Przed użyciem instrukcji COPY należy utworzyć tabelę docelową. Aby utworzyć tabelę docelową dla tego przykładu, wykonaj następujące kroki:

  1. W obszarze roboczym usługi Microsoft Fabric znajdź i otwórz magazyn.

  2. Przejdź do karty Narzędzia główne i wybierz pozycję Nowe zapytanie SQL.

    Zrzut ekranu przedstawiający górną sekcję obszaru roboczego użytkownika z przyciskiem Nowe zapytanie SQL.

  3. Aby utworzyć tabelę używaną jako miejsce docelowe w tym samouczku, uruchom następujący kod:

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

Pozyskiwanie danych Parquet przy użyciu instrukcji COPY

W pierwszym przykładzie dane są ładowane przy użyciu źródła Parquet. Ponieważ te dane są publicznie dostępne i nie wymagają uwierzytelniania, można łatwo skopiować te dane, określając źródło i miejsce docelowe. Nie są potrzebne żadne szczegóły uwierzytelniania. Wystarczy określić FILE_TYPE argument.

Użyj następującego kodu, aby uruchomić instrukcję COPY ze źródłem Parquet:

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

Pozyskiwanie danych CSV przy użyciu instrukcji COPY i pomijanie wiersza nagłówka

Często pliki wartości rozdzielanych przecinkami (CSV) mają wiersz nagłówka zawierający nazwy kolumn reprezentujące tabelę w pliku CSV. Instrukcja COPY może kopiować dane z plików CSV i pomijać jeden lub więcej wierszy z nagłówka pliku źródłowego.

Jeśli uruchomisz poprzedni przykład, aby załadować dane z parquet, rozważ usunięcie wszystkich danych z tabeli:

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

Aby załadować dane z pliku CSV pomijając wiersz nagłówka, użyj następującego kodu:

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

Sprawdzanie wyników

Instrukcja COPY kończy się przez pozyskiwanie 4766 736 wierszy do nowej tabeli. Możesz potwierdzić, że operacja została pomyślnie uruchomiona, uruchamiając zapytanie zwracające całkowitą liczbę wierszy w tabeli:

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

Jeśli uruchomisz oba przykłady bez usuwania wierszy między przebiegami, zobaczysz wynik tego zapytania z dwukrotnie większą liczbą wierszy. Mimo że działa to w przypadku pozyskiwania danych, rozważ usunięcie wszystkich wierszy i pozyskiwanie danych tylko raz, jeśli zamierzasz dalej eksperymentować z danymi.