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.
Open-ID-Connect (OIDC)-Föderationsdatenempfänger können einen Iceberg REST Catalog (IRC)-Client wie OSS Spark oder Snowflake nutzen, um auf OpenSharing-Anteile 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.
Laden Sie das Iceberg-Profil für OAuth-Verbinder herunter
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.
Auf der Portalseite wählen Sie im Dropdownmenü die Freigabe aus, auf die Sie zugreifen möchten.
Klicken Sie auf Datei herunterladen.
Ersetzen Sie in der heruntergeladenen Datei
clientId,clientSecretundscopedurch Ihre Werte.Verwenden Sie den ausgewählten Freigabenamen als Warehouse in Ihrer Konfiguration.
Importieren Sie die Freigabeprofildatei mit Ihrem Clientcode.
Zugreifen auf die freigegebenen Daten
Zugriff auf die Daten über jeden Iceberg REST-Katalog.
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. Stelle sicher, dass du das Share auswählst, auf das du Zugriff haben möchtest.
Ersetzen Sie die Platzhalterwerte, bevor Sie sie ausführen:
-
<catalog-integration-name>: Ein Name für die Katalogintegration. -
<catalog-uri>: Der Endpunkt des Iceberg REST Catalog. Finde es im OIDC-Profilportal oder in deiner heruntergeladenen Profildatei. -
<share-name>: Der Name der Aktie, die Sie im OIDC-Profilportal ausgewählt haben. -
<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 -- Optional
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 Endpunkt des Iceberg REST Catalog. Finde es im OIDC-Profilportal oder in deiner heruntergeladenen Profildatei. -
<share-name>: Der Name der Aktie, die Sie im OIDC-Profilportal ausgewählt haben. -
<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>