Delen via


Gegevens laden met COPY INTO met een service-principal

In dit artikel wordt beschreven hoe u de COPY INTO opdracht gebruikt om gegevens te laden uit een Azure Data Lake Storage Gen2-container (ADLS Gen2) in uw Azure-account in een tabel in Databricks SQL.

In de stappen in dit artikel wordt ervan uitgegaan dat uw beheerder een SQL Warehouse heeft geconfigureerd voor het gebruik van een Azure Databricks-service-principal, zodat u toegang hebt tot uw bronbestanden in ADLS Gen2. Als uw beheerder een externe locatie voor Unity Catalog heeft geconfigureerd met een opslagreferentie, raadpleegt u In plaats daarvan gegevens laden met COPY INTO met Unity Catalog-volumes of externe locaties . Als uw beheerder u tijdelijke referenties (een Blob SAS-token) heeft gegeven, volgt u de stappen in Gegevens laden met behulp van COPY INTO met tijdelijke referenties .

Databricks raadt u aan de opdracht COPY INTO te gebruiken voor incrementeel en bulksgewijs laden van gegevens met Databricks SQL.

Notitie

COPY INTO werkt goed voor gegevensbronnen die duizenden bestanden bevatten. Databricks raadt u aan automatisch laden te gebruiken voor het laden van miljoenen bestanden. Dit wordt niet ondersteund in Databricks SQL.

Voordat u begint

Voordat u gegevens in Azure Databricks laadt, moet u het volgende hebben:

  • Toegang tot gegevens in ADLS Gen2. Uw beheerder moet eerst de stappen in Gegevenstoegang configureren voor opname voltooien, zodat uw Databricks SQL Warehouse uw bronbestanden kan lezen.
  • Een Databricks SQL Warehouse.
  • De machtiging Kan beheren voor het SQL-warehouse.
  • Het pad naar uw gegevens in een ADLS Gen2-container.
  • Bekendheid met de Sql-gebruikersinterface van Databricks.

Stap 1: Toegang tot gegevens in cloudopslag bevestigen

Ga als volgt te werk om te bevestigen dat u toegang hebt tot de juiste gegevens in de opslag van cloudobjecten:

  1. Klik in de zijbalk op Query maken>.

  2. Selecteer een SQL-warehouse in de menubalk van de SQL-editor.

  3. Plak de volgende code in de SQL-editor:

    select * from csv.<path>
    

    Vervang <path> door het ADLS Gen2-containerpad dat u van uw beheerder hebt ontvangen. Bijvoorbeeld abfss://<container>@<storage-account>.dfs.core.windows.net/<folder>.

  4. Klik op Uitvoeren .

Stap 2: Een tabel maken

In deze stap wordt beschreven hoe u een tabel maakt in uw Azure Databricks-werkruimte om de binnenkomende gegevens op te slaan.

  1. Plak de volgende code in de SQL-editor:

    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. Klik op Uitvoeren .

Stap 3: Gegevens uit cloudopslag laden in de tabel

In deze stap wordt beschreven hoe u gegevens uit een ADLS Gen2-container laadt in de tabel in uw Azure Databricks-werkruimte.

  1. Klik in de zijbalk op Query maken>.

  2. Selecteer in de menubalk van de SQL-editor een SQL-warehouse en zorg ervoor dat het SQL Warehouse wordt uitgevoerd.

  3. Plak de volgende code in de SQL-editor. Vervang in deze code:

    • <container> met de naam van uw ADLS Gen2-container in uw opslagaccount.
    • <storage-account> met de naam van uw ADLS Gen2-opslagaccount.
    • <folder> met de naam van de map die uw gegevens bevat.
    • <blob-sas-token> met de waarde van het Blob SAS-token dat u hebt ontvangen van uw beheerder.
    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>;
    

    Notitie

    FORMAT_OPTIONSFILEFORMATverschilt per . In dit geval geeft de header optie Azure Databricks opdracht om de eerste rij van het CSV-bestand als koptekst te behandelen. Met de inferSchema opties wordt Azure Databricks geïnstrueerd om automatisch het gegevenstype van elk veld in het CSV-bestand te bepalen.

  4. Klik op Uitvoeren .

    Notitie

    Als u nogmaals op Uitvoeren klikt, worden er geen nieuwe gegevens in de tabel geladen. Dit komt doordat de COPY INTO opdracht alleen verwerkt wat het als nieuwe gegevens beschouwt.

Opschonen

U kunt de bijbehorende resources in uw werkruimte opschonen als u ze niet meer wilt behouden.

De tabellen verwijderen

  1. Klik in de zijbalk op Query maken>.

  2. Selecteer een SQL-warehouse en zorg ervoor dat het SQL Warehouse wordt uitgevoerd.

  3. Plakt de onderstaande code:

    DROP TABLE <catalog-name>.<schema-name>.<table-name>;
    
  4. Klik op Uitvoeren .

  5. Beweeg de muisaanwijzer over het tabblad voor deze query en klik vervolgens op het X-pictogram .

De query's verwijderen in de SQL-editor

  1. Klik in de zijbalk op SQL Editor.
  2. Beweeg in de menubalk van de SQL-editor de muisaanwijzer over het tabblad voor elke query die u voor deze zelfstudie hebt gemaakt en klik vervolgens op het X-pictogram .

Aanvullende bronnen