Caricare dati usando COPY INTO con un'entità servizio
Questo articolo descrive come usare il COPY INTO
comando per caricare dati da un contenitore di Azure Data Lake Storage Gen2 (ADLS Gen2) nell'account Azure in una tabella in Databricks SQL.
I passaggi descritti in questo articolo presuppongono che l'amministratore abbia configurato un'entità servizio sql warehouse per l'uso di un'entità servizio di Azure Databricks in modo da poter accedere ai file di origine in ADLS Gen2. Se l'amministratore ha configurato una posizione esterna di Unity Catalog con credenziali di archiviazione, vedere Caricare i dati usando COPY INTO con volumi del catalogo Unity o posizioni esterne. Se l'amministratore ha fornito credenziali temporanee (un token di firma di accesso condiviso BLOB), seguire la procedura descritta in Caricare i dati usando COPY INTO con credenziali temporanee .
Databricks consiglia di usare il comando COPY INTO per il caricamento incrementale e bulk dei dati con Databricks SQL.
Nota
COPY INTO
funziona bene per le origini dati che contengono migliaia di file. Databricks consiglia di usare il caricatore automatico per il caricamento di milioni di file, che non è supportato in Databricks SQL.
Operazioni preliminari
Prima di caricare i dati in Azure Databricks, assicurarsi di disporre degli elementi seguenti:
- Accesso ai dati in ADLS Gen2. L'amministratore deve prima completare i passaggi descritti in Configurare l'accesso ai dati per l'inserimento in modo che Databricks SQL Warehouse possa leggere i file di origine.
- Databricks SQL Warehouse.
- L'autorizzazione Può gestire per SQL Warehouse.
- Percorso dei dati in un contenitore ADLS Gen2.
- Familiarità con l'interfaccia utente di Databricks SQL.
Passaggio 1: Confermare l'accesso ai dati nell'archiviazione cloud
Per verificare di avere accesso ai dati corretti nell'archiviazione di oggetti cloud, eseguire le operazioni seguenti:
Nella barra laterale fare clic su Crea > query.
Nella barra dei menu dell'editor SQL selezionare un'istanza di SQL Warehouse.
Nell'editor SQL incollare il codice seguente:
select * from csv.<path>
Sostituire
<path>
con il percorso del contenitore ADLS Gen2 ricevuto dall'amministratore. Ad esempio,abfss://<container>@<storage-account>.dfs.core.windows.net/<folder>
.Fai clic su Esegui.
Passaggio 2: Creare una tabella
Questo passaggio descrive come creare una tabella nell'area di lavoro di Azure Databricks per contenere i dati in ingresso.
Nell'editor SQL incollare il codice seguente:
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 );
Fai clic su Esegui.
Passaggio 3: Caricare i dati dall'archiviazione cloud nella tabella
Questo passaggio descrive come caricare dati da un contenitore ADLS Gen2 nella tabella nell'area di lavoro di Azure Databricks.
Nella barra laterale fare clic su Crea > query.
Nella barra dei menu dell'editor SQL selezionare un'istanza di SQL Warehouse e assicurarsi che SQL Warehouse sia in esecuzione.
Nell'editor SQL incollare il codice seguente. In questo codice sostituire:
<container>
con il nome del contenitore ADLS Gen2 all'interno dell'account di archiviazione.<storage-account>
con il nome dell'account di archiviazione DILS Gen2.<folder>
con il nome della cartella che contiene i dati.<blob-sas-token>
con il valore del token di firma di accesso condiviso BLOB ricevuto dall'amministratore.
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>;
Nota
FORMAT_OPTIONS
differisce daFILEFORMAT
. In questo caso, l'opzioneheader
indica ad Azure Databricks di considerare la prima riga del file CSV come intestazione e leinferSchema
opzioni indicano ad Azure Databricks di determinare automaticamente il tipo di dati di ogni campo nel file CSV.Fai clic su Esegui.
Nota
Se si fa di nuovo clic su Esegui , nella tabella non vengono caricati nuovi dati. Questo perché il
COPY INTO
comando elabora solo ciò che considera come nuovi dati.
Eseguire la pulizia
È possibile pulire le risorse associate nell'area di lavoro se non si vogliono più mantenerle.
Eliminare le tabelle
Nella barra laterale fare clic su Crea > query.
Selezionare un'istanza di SQL Warehouse e assicurarsi che SQL Warehouse sia in esecuzione.
Incolla il codice seguente:
DROP TABLE <catalog-name>.<schema-name>.<table-name>;
Fai clic su Esegui.
Passare il puntatore del mouse sulla scheda per questa query e quindi fare clic sull'icona X .
Eliminare le query nell'editor SQL
- Nella barra laterale fare clic su Editor SQL.
- Nella barra dei menu dell'editor SQL passare il puntatore del mouse sulla scheda per ogni query creata per questa esercitazione e quindi fare clic sull'icona X .
Risorse aggiuntive
- Articolo di riferimento su COPY INTO