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.
I destinatari dei dati della federazione Open ID Connect (OIDC) possono utilizzare un client Iceberg REST Catalog (IRC), come OSS Spark o Snowflake, per accedere alle condivisioni OpenSharing create in Azure Databricks.
Se invece si usano token di connessione per gestire l'autenticazione, vedere Creare un oggetto destinatario per gli utenti non Databricks usando token di connessione (condivisione da Databricks a Open).
Questa pagina è destinata ai destinatari. Per informazioni su come i provider possono abilitare la federazione OIDC per i destinatari in Azure Databricks, vedere Abilitare la federazione OIDC (Open ID Connect) per i destinatari OpenSharing.
Scarica il profilo Iceberg per connettori OAuth
Vai all'URL del portale del profilo OIDC fornito dal provider di Azure Databricks.
Richiedi l'URL se non l'hai ancora ricevuto.
Nella pagina del portale, seleziona la condivisione a cui vuoi accedere dal menu a tendina.
Clicca su scarica file.
Nel file scaricato sostituire
clientId,clientSecretescopecon i valori.Usa il nome della quota selezionata come magazzino nella tua configurazione.
Importa il file del profilo di condivisione con il codice del client.
Accedere ai dati condivisi
Accedi ai dati utilizzando qualsiasi Catalogo REST di Iceberg.
Snowflake
Nel foglio di lavoro Snowflake eseguire il comando seguente per creare un'integrazione del catalogo. È anche possibile copiare il comando SQL dal portale del profilo OIDC condiviso dal provider. Assicurati di selezionare la condivisione a cui vuoi accedere.
Sostituire i valori segnaposto prima di eseguirlo:
-
<catalog-integration-name>: nome per l'integrazione del catalogo. -
<catalog-uri>: Il punto finale del catalogo REST di Iceberg. Trovalo nel portale profilo OIDC o nel file profilo scaricato. -
<share-name>: Il nome della condivisione che hai selezionato nel portale profili OIDC. -
<oauth-token-uri>: endpoint del token OAuth del tuo IdP. -
<oauth-client-id>e<oauth-client-secret>: credenziali OAuth. -
<oauth-scope>: Il tuo ambito OAuth.
USE ROLE ACCOUNTADMIN;
CREATE OR REPLACE CATALOG INTEGRATION <catalog-integration-name>
CATALOG_SOURCE = ICEBERG_REST
TABLE_FORMAT = ICEBERG
REST_CONFIG = (
CATALOG_URI = '<catalog-uri>'
WAREHOUSE = '<share-name>'
ACCESS_DELEGATION_MODE = VENDED_CREDENTIALS
)
REST_AUTHENTICATION = (
TYPE = OAUTH
OAUTH_TOKEN_URI = '<oauth-token-uri>'
OAUTH_CLIENT_ID = '<oauth-client-id>'
OAUTH_CLIENT_SECRET = '<oauth-client-secret>'
OAUTH_ALLOWED_SCOPES = ('<oauth-scope>')
)
REFRESH_INTERVAL_SECONDS = 30 -- Optional
ENABLED = TRUE;
Creare un database collegato che usa l'integrazione del catalogo. Sostituire <database-name> con un nome per il database.
CREATE DATABASE <database-name>
LINKED_CATALOG = (
CATALOG = <catalog-integration-name>
);
OSS Spark
L'esempio seguente legge i dati condivisi da un catalogo REST di Iceberg usando OSS Spark. Eseguirlo da un'installazione spark che include il runtime di Iceberg Spark e i JAR del bundle AWS.
Sostituire i valori segnaposto prima di eseguirlo:
-
<spark-home>: percorso dell'installazione di Spark. -
<iceberg-jars-path>: Il percorso dei tuoi file JAR Iceberg. -
<catalog-uri>: Il punto finale del catalogo REST di Iceberg. Trovalo nel portale profilo OIDC o nel file profilo scaricato. -
<share-name>: Il nome della condivisione che hai selezionato nel portale profili OIDC. -
<oauth-token-uri>: endpoint del token OAuth del tuo IdP. -
<oauth-client-id>e<oauth-client-secret>: credenziali OAuth. -
<oauth-scope>: Il tuo ambito OAuth. -
<spark-script>: percorso dello script Scala da eseguire.
JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 PATH=/usr/lib/jvm/java-17-openjdk-amd64/bin:$PATH <spark-home>/bin/spark-shell \
--jars <iceberg-jars-path>/iceberg-spark-runtime-4.0_2.13-1.10.2.jar,<iceberg-jars-path>/iceberg-aws-bundle-1.10.2.jar \
--conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions \
--conf spark.sql.catalog.databricks=org.apache.iceberg.spark.SparkCatalog \
--conf spark.sql.catalog.databricks.type=rest \
--conf spark.sql.catalog.databricks.uri=<catalog-uri> \
--conf spark.sql.catalog.databricks.warehouse=<share-name> \
--conf spark.sql.catalog.databricks.rest.auth.type=oauth2 \
--conf spark.sql.catalog.databricks.oauth2-server-uri=<oauth-token-uri> \
--conf spark.sql.catalog.databricks.credential=<oauth-client-id>:<oauth-client-secret> \
--conf spark.sql.catalog.databricks.scope=<oauth-scope> \
--conf spark.sql.catalog.databricks.io-impl=org.apache.iceberg.aws.s3.S3FileIO \
< <spark-script>