Condividi tramite


Leggere le tabelle di Azure Databricks dai client Delta Lake

Questa pagina offre una panoramica dell'uso dell'API REST di Unity per accedere alle tabelle gestite ed esterne di Unity Catalog da client Delta Lake esterni. Per creare tabelle Delta Lake esterne da client esterni, vedere Creare tabelle Delta esterne da client esterni.

Usare il catalogo REST di Iceberg per leggere le tabelle registrate dal catalogo Unity in Azure Databricks dai client Iceberg supportati, tra cui Apache Spark e DuckDB.

Per un elenco completo delle integrazioni supportate, vedere Integrazioni del catalogo Unity.

Consiglio

Per informazioni su come leggere i dati di Azure Databricks con Microsoft Fabric, vedere Usare Microsoft Fabric per leggere i dati registrati in Unity Catalog.

Leggere e scrivere usando l'API REST di Unity

L'API REST di Unity fornisce ai client esterni l'accesso in lettura alle tabelle registrate nel catalogo unity. Alcuni client supportano anche la creazione di tabelle e la scrittura in tabelle esistenti.

Configurare l'accesso usando l'URL dell'area di lavoro. Il client Spark del catalogo Unity instrada automaticamente le richieste all'endpoint dell'API catalogo Unity appropriato.

Importante

L'URL dell'area di lavoro usato per l'endpoint DELL'API REST unity deve includere l'ID dell'area di lavoro. Senza l'ID dell'area di lavoro, le richieste API possono restituire un 303 reindirizzamento a una pagina di accesso anziché alla risposta prevista.

Per trovare l'URL e l'ID dell'area di lavoro, vedere Nomi, URL e ID dell'istanza dell'area di lavoro.

Requisiti

Azure Databricks supporta l'accesso alle tabelle tramite Unity REST API come parte di Unity Catalog. Per usare questi endpoint, è necessario abilitare Unity Catalog nell'area di lavoro. I tipi di tabella seguenti sono idonei per le letture dell'API REST di Unity:

  • Tabelle gestite di Unity Catalog.
  • Tabelle esterne del catalogo Unity.

È necessario completare i passaggi di configurazione seguenti per configurare l'accesso per leggere gli oggetti di Azure Databricks dai client Delta Lake usando l'API REST di Unity:

Leggere le tabelle Delta Lake con Apache Spark usando l'autenticazione OAuth

Azure Databricks supporta l'autenticazione da computer a computer OAuth (M2M). OAuth gestisce automaticamente il rinnovo dei token per l'autenticazione del catalogo Unity. Per i processi a esecuzione prolungata che richiedono anche il rinnovo automatico delle credenziali di archiviazione cloud, abilitare l'impostazione spark.sql.catalog.<uc-catalog-name>.renewCredential.enabled nella configurazione di Spark.

L'autenticazione OAuth per i client Apache Spark esterni richiede:

La configurazione seguente è necessaria per leggere le tabelle gestite di Unity Catalog e le tabelle Delta Lake esterne con Apache Spark usando l'autenticazione OAuth:

"spark.sql.extensions": "io.delta.sql.DeltaSparkSessionExtension",
"spark.sql.catalog.spark_catalog": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>.uri": "<workspace-url>",
"spark.sql.catalog.<uc-catalog-name>.auth.type": "oauth",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.uri": "<oauth-token-endpoint>",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.clientId": "<oauth-client-id>",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.clientSecret": "<oauth-client-secret>",
"spark.sql.catalog.<uc-catalog-name>.renewCredential.enabled": "true",
"spark.sql.defaultCatalog": "<uc-catalog-name>",
"spark.jars.packages": "io.delta:delta-spark_2.13:4.0.1,io.unitycatalog:unitycatalog-spark_2.13:0.3.1,org.apache.hadoop:hadoop-azure:3.3.6"

Sostituire le variabili seguenti:

  • <workspace-url>: URL dell'area di lavoro di Azure Databricks, incluso l'ID dell'area di lavoro. Ad esempio: adb-1234567890123456.12.azuredatabricks.net.

Annotazioni

Le versioni del pacchetto illustrate in precedenza sono correnti a partire dall'ultimo aggiornamento di questa pagina. Potrebbero essere disponibili versioni più recenti. Verificare che le versioni dei pacchetti siano compatibili con la versione di Spark.

Leggere le tabelle Delta Lake con Apache Spark usando l'autenticazione PAT

Importante

Databricks consiglia l'uso di OAuth invece delle reti PAT per l'autenticazione dell'account utente perché OAuth offre una sicurezza più avanzata. Per informazioni su come eseguire l'autenticazione con un account utente di Databricks usando OAuth, vedere Autorizzare l'accesso utente ad Azure Databricks con OAuth.

Configurazione

I pacchetti o i file JAR seguenti devono essere inclusi nella configurazione di Spark:

  • Delta Lake Spark (io.delta:delta-spark): fornisce supporto Delta Lake per Apache Spark.
  • Connettore Spark del catalogo Unity (io.unitycatalog:unitycatalog-spark): connette Apache Spark al catalogo Unity.
  • Connettore di archiviazione cloud: obbligatorio per accedere all'archiviazione degli oggetti cloud che supporta le tue tabelle. Il connettore dipende dal provider di servizi cloud:
    • AWS: — org.apache.hadoop:hadoop-aws fornisce il supporto del file system S3.
    • Azure: org.apache.hadoop:hadoop-azure : offre il supporto di Azure Data Lake Storage Gen2.
    • GCP: JAR: gcs-connector offre il supporto di Google Cloud Storage. Scaricare il file JAR separatamente e farvi riferimento usando spark.jars.

Per altre configurazioni specifiche del cloud, vedere la documentazione di Unity Catalog OSS.

"spark.sql.extensions": "io.delta.sql.DeltaSparkSessionExtension",
"spark.sql.catalog.spark_catalog": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>.uri": "<workspace-url>",
"spark.sql.catalog.<uc-catalog-name>.token": "<token>",
"spark.sql.defaultCatalog": "<uc-catalog-name>",
"spark.jars.packages": "io.delta:delta-spark_2.13:4.0.1,io.unitycatalog:unitycatalog-spark_2.13:0.3.1,org.apache.hadoop:hadoop-azure:3.3.6"

:::

Variabili

Sostituire le variabili seguenti nella configurazione:

  • <uc-catalog-name>: Il nome del catalogo di Unity Catalog che contiene le tabelle.
  • <token>: token di accesso personale (PAT) per l'entità che configura l'integrazione.
  • <workspace-url>: URL dell'area di lavoro di Azure Databricks, incluso l'ID dell'area di lavoro. Ad esempio: adb-1234567890123456.12.azuredatabricks.net.

Rinnovo delle credenziali

Per abilitare il rinnovo automatico delle credenziali per i processi a esecuzione prolungata, aggiungere la configurazione seguente:

"spark.sql.catalog.<catalog-name>.renewCredential.enabled": true

Annotazioni

Le versioni del pacchetto illustrate in precedenza sono correnti a partire dall'ultimo aggiornamento di questa pagina. Potrebbero essere disponibili versioni più recenti. Verificare che le versioni dei pacchetti siano compatibili con le versioni di Databricks Runtime e Spark.