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:
Klik in de zijbalk op Query maken>.
Selecteer een SQL-warehouse in de menubalk van de SQL-editor.
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. Bijvoorbeeldabfss://<container>@<storage-account>.dfs.core.windows.net/<folder>
.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.
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 );
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.
Klik in de zijbalk op Query maken>.
Selecteer in de menubalk van de SQL-editor een SQL-warehouse en zorg ervoor dat het SQL Warehouse wordt uitgevoerd.
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_OPTIONS
FILEFORMAT
verschilt per . In dit geval geeft deheader
optie Azure Databricks opdracht om de eerste rij van het CSV-bestand als koptekst te behandelen. Met deinferSchema
opties wordt Azure Databricks geïnstrueerd om automatisch het gegevenstype van elk veld in het CSV-bestand te bepalen.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
Klik in de zijbalk op Query maken>.
Selecteer een SQL-warehouse en zorg ervoor dat het SQL Warehouse wordt uitgevoerd.
Plakt de onderstaande code:
DROP TABLE <catalog-name>.<schema-name>.<table-name>;
Klik op Uitvoeren .
Beweeg de muisaanwijzer over het tabblad voor deze query en klik vervolgens op het X-pictogram .
De query's verwijderen in de SQL-editor
- Klik in de zijbalk op SQL Editor.
- 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 .