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:
W obszarze roboczym usługi Microsoft Fabric znajdź i otwórz magazyn.
Przejdź do karty Narzędzia główne i wybierz pozycję Nowe zapytanie SQL.
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.