Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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:
- Abilitare l'accesso ai dati esterni per il metastore. Vedere Abilitare l'accesso ai dati esterni nel metastore.
- Concedere al ruolo principale che configura l'integrazione il privilegio
EXTERNAL USE SCHEMAnello schema contenente gli oggetti. Vedi Concedere privilegi del catalogo Unity a un'entità di sicurezza. - Eseguire l'autenticazione con uno dei metodi seguenti:
- Autenticazione da computer a computer OAuth (M2M): supporta l'aggiornamento automatico delle credenziali e dei token per i processi Spark a esecuzione prolungata (>1 ora). Vedere Autorizzare l'accesso dell'entità servizio ad Azure Databricks con OAuth.
- Token di accesso personale (PAT): vedere Autorizzare l'accesso alle risorse di Azure Databricks.
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:
- Client Spark di Unity Catalog versione 0.3.1 o successiva (
io.unitycatalog:unitycatalog-spark) - Apache Spark 4.0 o versione successiva
- Delta Lake Spark 4.0.1 o versione successiva con il supporto di OAuth
- Principale del servizio OAuth M2M con autorizzazioni corrette. Vedere Autorizzare l'accesso dell'entità servizio ad Azure Databricks con OAuth.
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:
-
<uc-catalog-name>: nome del catalogo in Unity Catalog che contiene le tabelle. -
<oauth-token-endpoint>: URL dell'endpoint del token OAuth. Per costruire questo URL:- Individuare l'ID dell'account Azure Databricks. Vedi Trova l'ID del tuo account.
- Usare il formato:
https://accounts.cloud.databricks.com/oidc/accounts/<account-id>/v1/token
-
<oauth-client-id>: ID client OAuth per il principale del servizio. Vedere Autorizzare l'accesso dell'entità servizio ad Azure Databricks con OAuth. -
<oauth-client-secret>: segreto client OAuth per il principale del servizio. Vedere Autorizzare l'accesso dell'entità servizio ad Azure Databricks con OAuth.
-
<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-awsfornisce il supporto del file system S3. -
Azure:
org.apache.hadoop:hadoop-azure: offre il supporto di Azure Data Lake Storage Gen2. -
GCP: JAR:
gcs-connectoroffre il supporto di Google Cloud Storage. Scaricare il file JAR separatamente e farvi riferimento usandospark.jars.
-
AWS: —
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.