Udostępnij za pośrednictwem


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:

  1. Na pasku bocznym kliknij pozycję Utwórz > zapytanie.

  2. Na pasku menu edytora SQL select magazyn SQL.

  3. 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ład abfss://<container>@<storage-account>.dfs.core.windows.net/<folder>.

  4. 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.

  1. 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
    );
    
  2. 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.

  1. Na pasku bocznym kliknij pozycję Utwórz > zapytanie.

  2. Na pasku menu edytora SQL wybierz usługę SQL Warehouse select i upewnij się, że jest ona uruchomiona.

  3. 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ę od FILEFORMAT. W takim przypadku opcja instruuje usługę header Azure Databricks, aby traktować pierwszy wiersz pliku CSV jako nagłówek, a inferSchema opcje instruują usługę Azure Databricks, aby automatycznie określić typ danych każdego pola w pliku CSV.

  4. 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

  1. Na pasku bocznym kliknij pozycję Utwórz > zapytanie.

  2. Select magazyn SQL i upewnij się, że magazyn SQL jest uruchomiony.

  3. Wklej następujący kod:

    DROP TABLE <catalog-name>.<schema-name>.<table-name>;
    
  4. Kliknij Uruchom.

  5. Umieść kursor na karcie dla tego zapytania, a następnie kliknij ikonę X .

Usuwanie zapytań w edytorze SQL

  1. Na pasku bocznym kliknij pozycję Edytor SQL.
  2. 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