Condividi tramite


Configurare Azure Databricks nell'attività di copia

Questo articolo illustra come usare l'attività di copia in una pipeline per copiare dati da e in Azure Databricks.

Prerequisiti

Per usare questo connettore Azure Databricks, è necessario configurare un cluster in Azure Databricks.

  • Per copiare dati in Azure Databricks, l'attività di copia richiama il cluster Azure Databricks per leggere i dati da un'archiviazione di Azure, ovvero l'origine originale o un'area di gestione temporanea in cui il servizio scrive innanzitutto i dati di origine tramite una copia a fasi predefinita. Per altre informazioni, vedere Azure Databricks come destinazione.
  • Analogamente, per copiare dati da Azure Databricks, l'attività di copia richiama il cluster Azure Databricks per scrivere dati in un'archiviazione di Azure, ovvero la destinazione originale o un'area di gestione temporanea da cui il servizio continua a scrivere i dati nella destinazione finale tramite una copia a fasi predefinita. Altre informazioni sono disponibili in Azure Databricks come origine.

Il cluster Databricks deve avere accesso ad Azure Blob Storage o all'account Azure Data Lake Storage Gen2, sia al contenitore di archiviazione/file system utilizzato per l'origine, la destinazione e lo staging che al contenitore/file system su cui si vogliono scrivere le tabelle di Azure Databricks.

  • Per usare Azure Data Lake Storage Gen2, è possibile configurare un'entità servizio nel cluster Databricks come parte della configurazione di Apache Spark. Seguire la procedura descritta in Accedere direttamente con un'entità servizio.

  • Per usare Archiviazione BLOB di Azure, è possibile configurare una chiave di accesso dell'account di archiviazione o un token di firma di accesso condiviso nel cluster Databricks come parte della configurazione di Apache Spark. Seguire la procedura descritta in Accedere all'archiviazione BLOB di Azure usando l'API RDD.

Durante l'esecuzione dell'attività Copy, se il cluster configurato è stato terminato, il servizio lo avvia automaticamente. Se si crea una pipeline usando l'interfaccia utente di creazione, per operazioni come l'anteprima dei dati, è necessario avere un cluster attivo, perché il servizio non avvierà il cluster per conto dell'utente.

Specificare la configurazione del cluster

  1. Nell'elenco a discesa Modalità cluster selezionare Standard.

  2. Nell'elenco a discesa Versione di Databricks Runtime selezionare una versione del runtime di Databricks.

  3. Attivare Ottimizzazione automatica aggiungendo le proprietà seguenti alla configurazione di Spark:

    spark.databricks.delta.optimizeWrite.enabled true
    spark.databricks.delta.autoCompact.enabled true
    
  4. Configurare il cluster in base alle esigenze di integrazione e scalabilità.

Per informazioni dettagliate sulla configurazione dei cluster, vedere Configurare cluster.

Configurazione supportata

Per la configurazione di ogni scheda nell'attività di copia, vai rispettivamente alle sezioni seguenti.

Generale

Per configurazione della scheda Generale, passare a Generale.

Fonte

Le proprietà seguenti sono supportate per Azure Databricks nella scheda Origine di un'attività di copia.

Screenshot che mostra la scheda origine e l'elenco delle proprietà.

Le proprietà seguenti sono necessarie:

  • Connessione: selezionare una connessione di Azure Databricks dall'elenco delle connessioni. Se non esiste alcuna connessione, creare una nuova connessione di Azure Databricks.

  • Usa query: selezionare Tabella o Query.

    • Se si seleziona Tabella:

      • Catalogo: un catalogo funge da contenitore di livello più alto all'interno del framework di Catalogo Unity, che consente di organizzare i dati in database e tabelle.

      • Database: selezionare il database dall'elenco a discesa o digitare il database.

      • Tabella: specificare il nome della tabella per leggere i dati. Selezionare la tabella dall'elenco a discesa o digitare il nome della tabella.

    • Se si seleziona Query:

      • Query: specificare la query SQL per leggere i dati. Per il controllo dello spostamento cronologico, seguire il modello seguente:
        • SELECT * FROM events TIMESTAMP AS OF timestamp_expression
        • SELECT * FROM events VERSION AS OF version

      Screenshot che mostra la query.

Sotto Avanzate, è possibile specificare i campi seguenti:

  • Formato data: formattare la data come stringa utilizzando un formato data. I formati di data personalizzati seguono i formati del modello datetime. Se non viene specificato, usa il valore predefinito yyyy-MM-dd.

  • Formato timestamp: formattare il tipo di timestamp in stringa con un formato timestamp. I formati di data personalizzati seguono i formati del modello datetime. Se non viene specificato, usa il valore predefinito yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX].

Copia diretta da Azure Databricks

Se l'archivio dati di destinazione e il formato soddisfano i criteri descritti in questa sezione, è possibile usare l'attività Di copia per copiare direttamente da Azure Databricks a destinazione. Il servizio controlla le impostazioni e, se i criteri seguenti non vengono soddisfatti, l'esecuzione dell'attività Copy non riesce:

  • La connessione di destinazione è Archiviazione BLOB di Azure o Azure Data Lake Storage Gen2. Le credenziali dell'account devono essere preconfigurate nella configurazione del cluster di Azure Databricks. Per altre informazioni, vedere Prerequisiti.

  • Il formato dei dati di destinazione è Parquet, DelimitedText o Avro con le configurazioni seguenti e punta a una cartella anziché a un file.

    • Per il formato Parquet , il codec di compressione è None, snappy o gzip.
    • Per Formato DelimitedText :
      • rowDelimiter è qualsiasi carattere singolo.
      • compression può essere None, bzip2, gzip.
      • encodingName UTF-7 non è supportato.
    • Per il formato Avro , il codec di compressione è None, deflate o snappy.
  • Se si copiano dati in DelimitedText, nel sink dell'attività di copia deve fileExtension essere ".csv".

  • Nel mapping delle attività Copy la conversione dei tipi non è abilitata.

Copia temporanea da Azure Databricks

Quando l'archivio dati sink o il formato non corrisponde ai criteri di copia diretta, come indicato nell'ultima sezione, abilitare la copia con staging predefinita usando un'istanza di archiviazione di Azure temporanea. La funzionalità copia di staging assicura inoltre una migliore velocità effettiva. Il servizio esporta i dati da Azure Databricks nell'archiviazione di staging, quindi copia i dati nel sink e infine pulisce i dati temporanei dall'archiviazione di staging.

Per usare questa funzionalità, creare un archivio BLOB di Azure o Azure Data Lake Storage Gen2 che faccia riferimento all'account di archiviazione come staging temporaneo. Specificare quindi le proprietà enableStaging e stagingSettings nell'attività Copia.

Annotazioni

Le credenziali dell'account di archiviazione di staging devono essere preconfigurate nella configurazione del cluster di Azure Databricks. Per altre informazioni, vedere Prerequisiti.

Destinazione

Le proprietà seguenti sono supportate per Azure Databricks nella scheda Destinazione di un'attività di copia.

Screenshot che mostra la scheda di destinazione.

Le proprietà seguenti sono necessarie:

  • Connessione: selezionare una connessione di Azure Databricks dall'elenco delle connessioni. Se non esiste alcuna connessione, creare una nuova connessione di Azure Databricks.

  • Catalogo: un catalogo funge da contenitore di livello più alto all'interno del framework di Catalogo Unity, che consente di organizzare i dati in database e tabelle.

  • Database: selezionare il database dall'elenco a discesa o digitare il database.

  • Tabella: specificare il nome della tabella per scrivere dati. Selezionare la tabella dall'elenco a discesa o digitare il nome della tabella.

Sotto Avanzate, è possibile specificare i campi seguenti:

  • Script di pre-copia: specificare uno script per l'attività di copia da eseguire prima di scrivere i dati nella tabella di destinazione in ogni esecuzione. È possibile utilizzare questa proprietà per pulire i dati precaricati.

  • Formato timestamp: formattare il tipo di timestamp in stringa con un formato timestamp. I formati di data personalizzati seguono i formati del modello datetime. Se non viene specificato, usa il valore predefinito yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX].

Copia diretta in Azure Databricks

Se l'archivio dati di origine e il formato soddisfano i criteri descritti in questa sezione, è possibile usare l'attività Copia per copiare direttamente dall'origine ad Azure Databricks. Il servizio controlla le impostazioni e, se i criteri seguenti non vengono soddisfatti, l'esecuzione dell'attività Copy non riesce:

  • La connessione di origine è Archiviazione BLOB di Azure o Azure Data Lake Storage Gen2. Le credenziali dell'account devono essere preconfigurate nella configurazione del cluster di Azure Databricks. Per altre informazioni, vedere Prerequisiti.

  • Il formato dei dati di origine è Parquet, DelimitedText o Avro con le configurazioni seguenti e punta a una cartella anziché a un file.

    • Per il formato Parquet , il codec di compressione è None, snappy o gzip.
    • Per Formato DelimitedText :
      • rowDelimiter è il valore predefinito, o qualsiasi singolo carattere.
      • compression può essere None, bzip2, gzip.
      • encodingName UTF-7 non è supportato.
    • Per il formato Avro , il codec di compressione è None, deflate o snappy.
  • Nell'origine dell'attività Copy:

    • wildcardFileName contiene solo il carattere jolly *, ma non ?e wildcardFolderName non è specificato.
    • prefix, modifiedDateTimeStart, modifiedDateTimeEnd e enablePartitionDiscovery non sono specificati.
  • Nel mapping delle attività Copy la conversione dei tipi non è abilitata.

Operazione di staging su Azure Databricks

Quando l'archivio dati di origine o il formato non corrisponde ai criteri di copia diretta, come indicato nell'ultima sezione, abilitare la copia con staging predefinita usando un'istanza di archiviazione di Azure temporanea. La funzionalità copia di staging assicura inoltre una migliore velocità effettiva. Il servizio converte automaticamente i dati per soddisfare i requisiti di formato dei dati prima di trasferirli nell'archiviazione di staging; successivamente, carica i dati da lì in Azure Databricks. Infine, pulisce i dati temporanei dall'archiviazione.

Per usare questa funzionalità, creare un archivio BLOB di Azure o Azure Data Lake Storage Gen2 che faccia riferimento all'account di archiviazione come staging temporaneo. Specificare quindi le proprietà enableStaging e stagingSettings nell'attività Copia.

Annotazioni

Le credenziali dell'account di archiviazione di staging devono essere preconfigurate nella configurazione del cluster di Azure Databricks. Per altre informazioni, vedere Prerequisiti.

Mappatura

Per la configurazione della scheda Mapping, passare a Configurare i mapping nella stessa scheda.

Impostazioni

Per la configurazione della scheda Impostazioni, vedere Configurare le altre impostazioni nella scheda Impostazioni.

Riepilogo della tabella

Le tabelle seguenti contengono altre informazioni su un'attività di copia in Azure Databricks.

Informazioni sull'origine

Nome Descrizione Valore Obbligatorio Proprietà dello script JSON
Connessione La tua connessione all'archivio dati di origine. < la tua connessione di Azure Databricks > connessione
Usa la query Modalità di lettura dei dati. Applicare Tabella per leggere i dati dalla tabella specificata o applicare Query per leggere i dati usando le query. Tabella
Query
NO /
Per tabella
catalogo Un catalogo funge da contenitore di livello più alto all'interno del framework di Catalogo Unity, che consente di organizzare i dati in database e tabelle. < il tuo catalogo > No (scegliere il catalogo predefinito se è Null) catalogo
Banca dati Il tuo database che utilizzi come fonte. < il tuo database > NO banca dati
Tabella Tabella di dati di origine per la lettura dei dati. < il nome della tabella > NO tabella
Per query
Quesito Specificare la query SQL per leggere i dati. Per il controllo dello spostamento cronologico, seguire il modello seguente:
- SELECT * FROM events TIMESTAMP AS OF timestamp_expression
- SELECT * FROM events VERSION AS OF version
< > della query NO quesito
Formato data Formattare la stringa con un tipo di data con un formato di data. I formati di data personalizzati seguono i formati del modello datetime. Se non viene specificato, usa il valore predefinito yyyy-MM-dd. < il tuo formato data > NO dateFormat
Formato timestamp Formattare la stringa con un tipo di timestamp con un formato di timestamp. I formati di data personalizzati seguono i formati del modello datetime. Se non viene specificato, usa il valore predefinito yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]. < il tuo formato timestamp > NO formato timestamp

Informazioni sulla destinazione

Nome Descrizione Valore Obbligatorio Proprietà dello script JSON
Connessione La tua connessione all'archivio dati di destinazione. < la tua connessione di Azure Databricks > connessione
catalogo Un catalogo funge da contenitore di livello più alto all'interno del framework di Catalogo Unity, che consente di organizzare i dati in database e tabelle. < il tuo catalogo > No (scegliere il catalogo predefinito se è Null) catalogo
Banca dati Il tuo database che usi come destinazione. < il tuo database > banca dati
Tabella Tabella dati di destinazione dove scrivere i dati. < il nome della tabella > tabella
Script di pre-copia Specificare uno script per l'attività di copia da eseguire prima di scrivere i dati nella tabella di destinazione in ogni esecuzione. È possibile utilizzare questa proprietà per pulire i dati precaricati. < script di pre-copia> NO preCopyScript
Formato timestamp Formattare la stringa con un tipo di timestamp con un formato di timestamp. I formati di data personalizzati seguono i formati del modello datetime. Se non viene specificato, usa il valore predefinito yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]. < il tuo formato timestamp > NO formato timestamp