Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Auf dieser Seite wird beschrieben, wie Open ID Connect (OIDC)-Verbunddatenempfänger einen Iceberg REST Catalog (IRC)-Client wie OSS Spark oder Snowflake verwenden können, um auf openSharing-Freigaben zuzugreifen, die in Azure Databricks erstellt wurden.
Wenn Sie stattdessen Bearer-Token zum Verwalten der Authentifizierung verwenden, siehe Erstellen eines Empfängerobjekts für Nicht-Databricks-Benutzer mit Bearer-Token (Databricks-zu-Open-Freigabe).
Diese Seite ist für Empfänger vorgesehen. Informationen dazu, wie Anbieter den OIDC-Partnerverbund für Empfänger in Azure Databricks aktivieren können, finden Sie unter Enable Open ID Connect (OIDC)-Partnerverbund für OpenSharing-Empfänger.
Holen Sie sich Ihr Iceberg-Profil aus dem OIDC-Portal
Wechseln Sie zur OIDC-Profilportal-URL, die der Azure Databricks Anbieter für Sie freigegeben hat.
Fordern Sie die URL an, wenn Sie sie noch nicht erhalten haben.
Klicken Sie auf der Portalseite auf " Datei herunterladen".
Ersetzen Sie in der heruntergeladenen Datei
clientId,clientSecretundscopedurch Ihre Werte.Importieren Sie die Freigabeprofildatei mit Ihrem Clientcode.
Zugreifen auf die freigegebenen Daten
Sie können über einen beliebigen Iceberg REST-Katalog auf die Daten zugreifen.
Schneeflocke
Führen Sie in Ihrem Snowflake-Arbeitsblatt den folgenden Befehl aus, um eine Katalogintegration zu erstellen. Sie können den SQL-Befehl auch aus dem OIDC-Profilportal kopieren, das Ihr Anbieter für Sie freigegeben hat.
Ersetzen Sie die Platzhalterwerte, bevor Sie sie ausführen:
-
<catalog-integration-name>: Ein Name für die Katalogintegration. -
<catalog-uri>: Der Iceberg REST Catalog-Endpunkt aus Ihrer heruntergeladenen Profildatei. -
<share-name>: Der Ihnen gewährte Freigabename. -
<oauth-token-uri>: Der OAuth-Tokenendpunkt Ihres IdP. -
<oauth-client-id>und<oauth-client-secret>: Ihre OAuth-Anmeldeinformationen. -
<oauth-scope>: Ihr OAuth-Bereich.
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
ENABLED = TRUE;
Erstellen Sie eine verknüpfte Datenbank, die die Katalogintegration verwendet. Ersetzen Sie <database-name> durch einen Namen für die Datenbank.
CREATE DATABASE <database-name>
LINKED_CATALOG = (
CATALOG = <catalog-integration-name>
);
OSS Spark
Im folgenden Beispiel werden freigegebene Daten aus einem Iceberg-REST-Katalog mit OSS Spark gelesen. Führen Sie sie aus einer Spark-Installation aus, die die Iceberg Spark Runtime und AWS Bundle JARs enthält.
Ersetzen Sie die Platzhalterwerte, bevor Sie sie ausführen:
-
<spark-home>: Der Pfad zu Ihrer Spark-Installation. -
<iceberg-jars-path>: Der Pfad zu Ihren Iceberg JAR Dateien. -
<catalog-uri>: Der Iceberg REST Catalog-Endpunkt aus Ihrer heruntergeladenen Profildatei. -
<share-name>: Der Ihnen gewährte Freigabename. -
<oauth-token-uri>: Der OAuth-Tokenendpunkt Ihres IdP. -
<oauth-client-id>und<oauth-client-secret>: Ihre OAuth-Anmeldeinformationen. -
<oauth-scope>: Ihr OAuth-Bereich. -
<spark-script>: Der Pfad zum auszuführenden Scala-Skript.
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>