Wczytywanie danych przy użyciu COPY INTO z zasadą usługi
W tym artykule opisano sposób użycia polecenia COPY INTO
w celu załadowania danych z kontenera usługi Azure Data Lake Storage Gen2 (ADLS Gen2) na koncie platformy Azure do table w usłudze Databricks SQL.
W krokach opisanych w tym artykule założono, że administrator skonfigurował usługę SQL Warehouse do używania jednostki usługi Azure Databricks w celu uzyskania dostępu do plików źródłowych w usłudze ADLS Gen2. Jeśli administrator skonfigurował lokalizację zewnętrzną Unity Catalog z poświadczeniami magazynu, zobacz Ładowanie danych przy użyciu COPY INTO z Unity Catalogvolumes lub lokalizacji zewnętrznych. Jeśli administrator udzielił Ci tymczasowego credentials (tokenu SAS obiektu blob), wykonaj kroki opisane w Ładowanie danych przy użyciu COPY INTO z tymczasowym credentials.
Usługa Databricks zaleca użycie polecenia COPY INTO w celu przyrostowego i zbiorczego ładowania danych za pomocą usługi Databricks SQL.
Uwaga
COPY INTO
dobrze sprawdza się w przypadku źródeł danych, które zawierają tysiące plików. Usługa Databricks zaleca użycie automatycznego modułu ładującego do ładowania milionów plików, który nie jest obsługiwany w usłudze Databricks SQL.
Zanim rozpoczniesz
Przed załadowaniem danych do usługi Azure Databricks upewnij się, że masz następujące elementy:
- Dostęp do danych w usłudze ADLS Gen2. Administrator musi najpierw wykonać kroki opisane w temacie Konfigurowanie dostępu do danych na potrzeby pozyskiwania , aby usługa Databricks SQL Warehouse mogła odczytywać pliki źródłowe.
- Usługa Databricks SQL Warehouse.
- Uprawnienie Może zarządzać w usłudze SQL Warehouse.
- Ścieżka do danych w kontenerze usługi ADLS Gen2.
- Znajomość interfejsu użytkownika sql usługi Databricks.
Krok 1. Potwierdzenie dostępu do danych w magazynie w chmurze
Aby potwierdzić, że masz dostęp do odpowiednich danych w magazynie obiektów w chmurze, wykonaj następujące czynności:
Na pasku bocznym kliknij pozycję Utwórz > zapytanie.
Na pasku menu edytora SQL select magazyn SQL.
W edytorze SQL wklej następujący kod:
select * from csv.<path>
Zastąp ciąg
<path>
ścieżką kontenera usługi ADLS Gen2 otrzymaną od administratora. Na przykładabfss://<container>@<storage-account>.dfs.core.windows.net/<folder>
.Kliknij Uruchom.
Krok 2. Tworzenie table
W tym kroku opisano sposób tworzenia table w obszarze roboczym usługi Azure Databricks w celu przechowywania danych przychodzących.
W edytorze SQL wklej następujący kod:
CREATE TABLE <catalog_name>.<schema_name>.<table_name> ( tpep_pickup_datetime TIMESTAMP, tpep_dropoff_datetime TIMESTAMP, trip_distance DOUBLE, fare_amount DOUBLE, pickup_zip INT, dropoff_zip INT );
Kliknij Uruchom.
Krok 3. Ładowanie danych z magazynu w chmurze do table
W tym kroku opisano sposób ładowania danych z kontenera usługi ADLS Gen2 do table w obszarze roboczym usługi Azure Databricks.
Na pasku bocznym kliknij pozycję Utwórz > zapytanie.
Na pasku menu edytora SQL wybierz usługę SQL Warehouse select i upewnij się, że jest ona uruchomiona.
W edytorze SQL wklej następujący kod. W tym kodzie zastąp:
-
<container>
z nazwą kontenera usługi ADLS Gen2 na koncie magazynu. -
<storage-account>
przy użyciu nazwy konta magazynu usługi ADLS Gen2. -
<folder>
z nazwą folderu zawierającego dane. -
<blob-sas-token>
z wartością tokenu SAS obiektu blob otrzymanego od administratora.
COPY INTO <catalog-name>.<schema-name>.<table-name> FROM 'abfss://<container>@<storage-account>.dfs.core.windows.net/<folder>' FILEFORMAT = CSV FORMAT_OPTIONS ( 'header' = 'true', 'inferSchema' = 'true' ); SELECT * FROM <catalog-name>.<schema-name>.<table-name>;
Uwaga
FORMAT_OPTIONS
różni się odFILEFORMAT
. W takim przypadku opcja instruuje usługęheader
Azure Databricks, aby traktować pierwszy wiersz pliku CSV jako nagłówek, ainferSchema
opcje instruują usługę Azure Databricks, aby automatycznie określić typ danych każdego pola w pliku CSV.-
Kliknij Uruchom.
Uwaga
Jeśli ponownie klikniesz Uruchom, żadne nowe dane nie są ładowane do table. Dzieje się tak, ponieważ
COPY INTO
polecenie przetwarza tylko to, co uważa za nowe dane.
Czyszczenie
Jeśli nie chcesz już ich przechowywać, możesz wyczyścić skojarzone zasoby w obszarze roboczym.
Usuń tables
Na pasku bocznym kliknij pozycję Utwórz > zapytanie.
Select magazyn SQL i upewnij się, że magazyn SQL jest uruchomiony.
Wklej następujący kod:
DROP TABLE <catalog-name>.<schema-name>.<table-name>;
Kliknij Uruchom.
Umieść kursor na karcie dla tego zapytania, a następnie kliknij ikonę X .
Usuwanie zapytań w edytorze SQL
- Na pasku bocznym kliknij pozycję Edytor SQL.
- Na pasku menu edytora SQL umieść kursor na karcie dla każdego zapytania utworzonego na potrzeby tego samouczka, a następnie kliknij ikonę X .
Dodatkowe zasoby
- Artykuł referencyjny COPY INTO