Accedere alle tabelle di Databricks dai client Delta

Questa pagina descrive come usare l'API REST di Unity per creare, leggere e scrivere in tabelle gestite ed esterne del catalogo Unity da client Delta esterni. Per un elenco completo delle integrazioni supportate, vedere Integrazioni del catalogo Unity.

Consiglio

Per informazioni su come leggere Azure Databricks dati usando Microsoft Fabric, vedere Microsoft Fabric con Azure Databricks.

Creare, leggere e scrivere usando l'API REST di Unity

Importante

La creazione e la scrittura in tabelle gestite da Unity Catalog tramite il client Delta sono in beta.

L'API REST di Unity fornisce ai client esterni l'accesso, la lettura e la scrittura alle tabelle registrate nel catalogo Unity. Configurare l'accesso usando l'URL dell'area di lavoro come endpoint. I tipi di tabella seguenti sono accessibili:

Tipo di tabella Leggi Scrittura Creazione
Delta Controllato Sì* Sì*
Delta esterno

* Supportato per le tabelle Delta gestite con commit del catalogo.

Requisiti

Azure Databricks supporta l'accesso alle tabelle tramite l'API REST di Unity come parte del Catalogo Unity. Per usare questi endpoint, è necessario abilitare Unity Catalog nell'area di lavoro.

È anche necessario completare i passaggi di configurazione seguenti per configurare l'accesso alle tabelle dai client Delta usando l'API REST di Unity:

Limitazioni

  • L'accesso esterno alle tabelle UniForm con IcebergCompatV3 non è attualmente supportato. Dopo la scrittura esterna in una tabella UniForm, è necessario eseguire MSCK REPAIR TABLE in Databricks per generare metadati Iceberg.
  • Le modifiche dello schema (ad esempio , ALTER TABLE), gli aggiornamenti delle proprietà della tabella e le modifiche delle funzionalità delle tabelle non sono attualmente supportate nelle tabelle gestite dai client esterni.
  • I client esterni non possono eseguire operazioni di manutenzione tabelle, ad esempio OPTIMIZE, VACUUMe ANALYZE, nelle tabelle Delta gestite.
  • I client esterni non possono creare cloni superficiali.
  • I client esterni non possono creare tabelle con colonne generate, colonne predefinite o colonne vincolo.
  • Quando si creano tabelle esterne, Azure Databricks consiglia di usare Apache Spark per assicurarsi che le definizioni di colonna siano in un formato compatibile con Apache Spark. L'API non convalida la correttezza della specifica della colonna. Se la specifica non è compatibile con Apache Spark, Databricks Runtime potrebbe non essere in grado di leggere le tabelle.

Accedere alle tabelle Delta con Apache Spark usando l'autenticazione PAT

L'autenticazione PAT per i client Spark esterni richiede:

  • Client Spark di Unity Catalog versione 0.4.1 o successiva (io.unitycatalog:unitycatalog-spark)
  • Apache Spark 4.0 o versione successiva
  • Delta Spark 4.2.0 o versione successiva
  • Un token di accesso personale per il soggetto che accede a Unity Catalog. Vedere Autorizzare l'accesso alle risorse di Azure Databricks.

La configurazione seguente è necessaria per leggere o scrivere in tabelle Delta gestite ed esterne del catalogo Unity con Apache Spark tramite l'autenticazione PAT:

"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_4.1_2.13:4.2.0,io.unitycatalog:unitycatalog-spark_2.13:0.4.1,org.apache.hadoop:hadoop-azure:3.4.2"

Sostituire le variabili seguenti:

  • <uc-catalog-name>: nome del catalogo in Unity Catalog che contiene le tabelle.
  • <token>: token di accesso personale (PAT) per l'entità che configura l'integrazione.
  • <workspace-url>: URL Azure Databricks workspace, 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.

Per altri dettagli sulla configurazione di Apache Spark per l'archiviazione di oggetti cloud, vedere la documentazione relativa al sistema operativo del catalogo Unity.

Importante

Databricks Runtime 16.4 e versioni successive sono necessari per leggere, scrivere o creare delle tabelle con i commit del catalogo abilitati. Sono necessari Databricks Runtime 18.0 e versioni successive per abilitare o disabilitare i commit del catalogo nelle tabelle esistenti.

Per creare tabelle Delta gestite con commit del catalogo, usare il codice SQL seguente:

CREATE TABLE <uc-catalog-name>.<schema-name>.<table-name> (id INT, desc STRING)
TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported') USING delta;

Per creare tabelle Delta esterne, usare il codice SQL seguente:

CREATE TABLE <uc-catalog-name>.<schema-name>.<table-name> (id INT, desc STRING)
USING delta
LOCATION <path>;

Accedere alle tabelle Delta con Apache Spark usando l'autenticazione OAuth

Azure Databricks supporta anche l'autenticazione da computer a computer (M2M) OAuth. OAuth gestisce automaticamente il rinnovo di token e credenziali per l'autenticazione del catalogo Unity.

L'autenticazione OAuth per i client Spark esterni richiede:

La configurazione seguente è necessaria per creare, leggere o scrivere in tabelle gestite del catalogo Unity e tabelle Delta 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.defaultCatalog": "<uc-catalog-name>",
"spark.jars.packages": "io.delta:delta-spark_4.1_2.13:4.2.0,io.unitycatalog:unitycatalog-spark_2.13:0.4.1,org.apache.hadoop:hadoop-azure:3.4.2"

Sostituire le variabili seguenti:

  • <workspace-url>: URL Azure Databricks workspace, 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.