Konfigurieren der Apache Iceberg™ REST-Katalogintegration mit ausgehender privater Konnektivität¶
Unter diesem Thema wird erklärt, wie Sie eine Katalogintegration für Apache Iceberg™-Tabellen konfigurieren, die in einem Remote-Katalog verwaltet werden, der mit der Open Source Apache Iceberg™ REST OpenAPI-Spezifikation übereinstimmt.
Mit dieser Konfiguration können Sie die Katalogintegration verwenden, um eine Verbindung zu einem Iceberg REST-Remote-Katalog über eine private IP-Adresse statt über das öffentliche Internet herzustellen.
Die folgende Abbildung zeigt, wie eine Iceberg-Tabelle eine Katalogintegration mit einem externen Iceberg-Katalog verwendet.
Allgemeine Informationen über ausgehende private Konnektivität in Snowflake, einschließlich Kosten für ausgehende private Konnektivität, finden Sie unter Private Konnektivität für ausgehenden Netzwerkdatenverkehr.
Dieses Thema behandelt die Konfigurationsschritte für die folgenden Katalogtypen:
Allgemeine Iceberg REST-Kataloge
AWS Glue-Datenkatalog
Databricks Unity-Katalog
Bemerkung
Private Konnektivität wird nur für Katalogintegrationen auf AWS, die AWS PrivateLink verwenden, und Azure, die Azure Private Link verwenden, unterstützt.
Private Konnektivität ist nur innerhalb desselben Cloudanbieters verfügbar. Der Katalog und die Snowflake-Bereitstellung müssen beim gleichen Cloudanbieter ausgeführt werden.
Anmeldeinformationen über den Katalog werden nicht unterstützt, wenn Sie eine Katalogintegration mit ausgehender privater Konnektivität konfigurieren.
Schritt 1: Informationen zur private Konnektivität für Ihren Katalog sammeln¶
Sie müssen Informationen zur privaten Konnektivität sammeln, um diese später bei der Bereitstellung eines entsprechenden privaten Konnektivitätsendpunkt in der Snowflake VPC oder von VNet anzugeben. Wenn Sie einen entsprechenden privaten Konnektivitätsendpunkt bereitstellen, erstellen Sie einen AWS PrivateLink-Endpunkt in Snowflake, wenn Ihr Snowflake-Konto in AWS gehostet wird, oder erstellen Sie einen privaten Azure-Endpunkt, wenn Ihr Snowflake-Konto in Azure gehostet wird.
Um Informationen zur privaten Konnektivität für Ihren Katalog zu sammeln, lesen Sie die Dokumentation für den Iceberg REST-Remote-Katalog.
Das folgende Beispiel ist eine AWS VPC-Endpunktdienst-ID in AWS:
com.amazonaws.vpce.us-west-2.vpce-svc-0123456789abcdef.
Sie müssen den Namen des Anbieterdienstes und den Hostnamen für Ihren AWS Glue-Datenkatalog finden:
Um den Namen des Anbieterdienstes zu erhalten (
<provider_service_name>), copy `` Sie com.amazonaws<region>glue`` into your text editor where<region>die AWS-Region ist, in der Ihre Iceberg-Tabellen gespeichert sind.Ein Beispiel für den Namen eines Anbieterdienstes ist
com.amazonaws.us-west-2.glue. Weitere Informationen dazu finden Sie im Abschnitt zum Erstellen eines VPC-Schnittstellenendpunkts für AWS Glue in der AWS-Dokumentation.Um den Hostnamen zu erhalten (
<host_name>), copy `` Sie glue.<region>.amazonaws.com`` into your text editor where<region>die AWS-Region ist, in der Ihre Iceberg-Tabellen gespeichert sind.Ein Beispiel für einen Hostnamen ist
glue.us-west-2.amazonaws.com. Weitere Informationen dazu finden Sie im Abschnitt zum Herstellen einer Verbindung mit dem Datenkatalog über den AWS Glue Iceberg REST-Endpunkt in der AWS-Dokumentation.
Bemerkung
Alternativ können Sie zum Abrufen dieser Werte den Unterbefehl describe-vpc-endpoint-services über die AWS-Befehlszeile verwenden. Weitere Informationen dazu finden Sie unter Bereitstellung privater Konnektivitätsendpunkte.
Sie müssen die PrivateLink VPC-Endpunktdienst-ID für Ihren Databricks Unity-Katalog und den Hostnamen Ihres Databricks-Arbeitsbereichs finden:
Informationen zum Auffinden Ihrer PrivateLink VPC -Endpunktdienst-ID (
<vpc_endpoint_service_id>) finden Sie im Abschnitt zu PrivateLink VPC-Endpunktdiensten in der Databricks-Dokumentation.Dieses Thema enthält die Liste der VPC-Endpunktdienst-IDs für die einzelnen AWS-Regionen.
Kopieren Sie die Endpunktdienst-ID für die Region, in der Ihre Tabellen gehostet werden, in einen Texteditor. Dies ist der Wert für den Arbeitsbereich (einschließlich REST API).
Ein Beispiel für eine VPC-Endpunktdienst-ID ist
com.amazonaws.vpce.us-west-2.vpce-svc-0129f463fcfbc46c5.Weitere Informationen zu PrivateLink bei Databricks finden Sie im Abschnitt zum Konfigurieren von Frontend-PrivateLinks in der Databricks-Dokumentation.
Um den Hostnamen für Ihren Databricks-Arbeitsbereich (
<databricks_workspace_host_name>) zu finden, gehen Sie wie folgt vor:Rufen Sie Ihre Databricks-Arbeitsbereichs-URL ab.
Eine Anweisung hierzu finden Sie im Abschnitt zum Abrufen von Bezeichnern für Arbeitsbereichsobjekte in der Databricks-Dokumentation.
Dieses Thema enthält ein Beispiel für eine Databricks-Arbeitsbereichs-URL.
Kopieren Sie Ihre Databricks-Arbeitsbereichs-URL in einen Texteditor.
Entfernen Sie
https://aus Ihrer Databricks-Arbeitsbereichs-URL.Der resultierende Wert ist der Hostname Ihres Databricks-Arbeitsbereichs.
Wenn beispielsweise Ihre arbeitsbereichsspezifische Databricks-URL
https://dbc-a1a11111-1a11.cloud.databricks.comist, lautet der Hostname für Ihren Databricks-Arbeitsbereichdbc-a1a11111-1a11.cloud.databricks.com.
Sie müssen die Ressourcen-ID für Ihren Databricks-Arbeitsbereich im Azure-Portal und den Hostnamen Ihres Databricks-Arbeitsbereichs finden:
Um die Ressourcen-ID für Ihren Databricks-Arbeitsbereich im Azure-Portal (
<databricks_workspace_resource_id>) zu finden, gehen Sie wie folgt vor:Navigieren Sie im Azure-Portal zu Ihrem Databricks-Arbeitsbereich.
Wählen Sie auf der Seite Overview im Abschnitt Essentials den Link JSON View.
Die Ressourcen-ID für Ihren Databricks-Arbeitsbereich wird im Feld Resource ID angezeigt. Ein Beispiel für diese Ressourcen-ID ist
/subscriptions/1111-22-333-4444-55555/resourceGroups/my-rg/providers/Microsoft.Databricks/workspaces/my-databricks-workspace.Kopieren Sie die Ressourcen-ID in einen Texteditor.
Um den Hostnamen für Ihren Databricks-Arbeitsbereich (
<databricks_workspace_host_name>) zu finden, gehen Sie wie folgt vor:Rufen Sie Ihre arbeitsbereichsspezifische Databricks-URL ab.
Eine Anweisung dazu finden Sie im Abschnitt zum Bestimmen einer arbeitsbereichsspezifischen URL in der Azure Databricks-Dokumentation.
Kopieren Sie Ihre arbeitsbereichsspezifische Databricks-URL in einen Texteditor.
Entfernen Sie
https://aus Ihrer arbeitsbereichsspezifischen Databricks-URL.Der resultierende Wert ist der Hostname Ihres Databricks-Arbeitsbereichs.
Wenn beispielsweise Ihre arbeitsbereichsspezifische Databricks-URL
https://adb-1234567890123456.12.azuredatabricks.netist, lautet der Hostname für Ihren Databricks-Arbeitsbereichadb-1234567890123456.12.azuredatabricks.net.
Schritt 2: Privaten Konnektivitätsendpunkt bereitstellen¶
In diesem Schritt stellen Sie einen privaten Konnektivitätsendpunkt in der Snowflake VPC oder in VNet bereit, damit Snowflake über private Konnektivität eine Verbindung zum externen Iceberg REST-Katalog herstellen kann.
Um einen privaten Konnektivitätsendpunkt bereitzustellen, rufen Sie die Systemfunktion SYSTEM$PROVISION_PRIVATELINK_ENDPOINT auf.
Anweisungen zum Angeben der Argumente für diese Systemfunktion finden Sie in der Dokumentation für die den Iceberg REST-Remote-Katalog, mit dem Sie über private Konnektivität eine Verbindung herstellen möchten.
Der folgende Codeblock zeigt ein Beispiel für die Bereitstellung eines AWS PrivateLink-Endpunkts:
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( 'com.amazonaws.vpce.us-west-2.vpce-svc-0123456789abcdef', 'my.catalog.com' );
Um einen privaten Konnektivitätsendpunkt bereitzustellen, rufen Sie die Systemfunktion SYSTEM$PROVISION_PRIVATELINK_ENDPOINT auf:
USE ROLE ACCOUNTADMIN; SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( '<provider_service_name>', '<host_name>' );
Wobei:
<provider_service_name>ist der Name des Anbieterdienstes, den Sie beim Sammeln von Informationen zur privaten Konnektivität Ihres Katalogs kopiert haben.<host_name>ist der Hostname, den Sie beim Sammeln von Informationen zur privaten Konnektivität Ihres Katalogs kopiert haben.
Beispiel:
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( 'com.amazonaws.<region>.glue', 'glue.<region>.amazonaws.com' );
Bemerkung
Sie müssen nur einen privaten Konnektivitätsendpunkt in der Snowflake VPC bereitstellen. Dies liegt daran, dass Sie bei AWS Glue einen privaten Glue-Konnektivitätsendpunkt verwenden können, um auf alles zuzugreifen, was vom AWS Glue-Datenkatalog in derselben Region verwaltet wird. Weitere Informationen dazu finden Sie im Abschnitt zum Erstellen eines VPC-Schnittstellenendpunkts für AWS Glue in der AWS-Dokumentation.
Sie müssen nur einen privaten Konnektivitätsendpunkt bereitstellen. Unity benötigt nur einen privaten Konnektivitätsendpunkt, um auf alles zuzugreifen, was vom Unity-Datenkatalog in derselben Region verwaltet wird.
Um einen privaten Konnektivitätsendpunkt bereitzustellen, rufen Sie die Systemfunktion SYSTEM$PROVISION_PRIVATELINK_ENDPOINT auf:
USE ROLE ACCOUNTADMIN; SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( '<vpc_endpoint_service_id>', '<databricks_workspace_host_name>' );
Wobei:
<vpc_endpoint_service_id>ist die PrivateLink VPC-Endpunktdienst-ID, die Sie beim Sammeln von Informationen zur privaten Konnektivität Ihres Katalogs kopiert haben.<databricks_workspace_host_name>ist der Hostname des Databricks-Arbeitsbereichs, den Sie beim Sammeln von Informationen zur privaten Konnektivität Ihres Katalogs abgerufen haben.Bemerkung
Wenn Sie mehrere Databricks-Arbeitsbereiche in derselben AWS-Region haben, können Sie einen Platzhalter für Ihre Databricks-Arbeitsbereichs-URL verwenden.
Beispiel:
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( 'com.amazonaws.vpce.us-west-2.vpce-svc-0129f463fcfbc46c5', 'dbc-a1a11111-1a11.cloud.databricks.com' );
Um einen privaten Konnektivitätsendpunkt bereitzustellen, rufen Sie die Systemfunktion SYSTEM$PROVISION_PRIVATELINK_ENDPOINT auf:
USE ROLE ACCOUNTADMIN; SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( '<databricks_workspace_resource_id>', '<databricks_workspace_host_name>', 'databricks_ui_api' );
Wobei:
<<databricks_workspace_resource_id>>ist die Ressourcen-ID für Ihren Databricks-Arbeitsbereich im Azure-Portal, die Sie beim Sammeln von Informationen zur privaten Konnektivität Ihres Katalogs kopiert haben.<databricks_workspace_host_name>ist der Hostname des Databricks-Arbeitsbereichs, den Sie beim Sammeln von Informationen zur privaten Konnektivität Ihres Katalogs abgerufen haben.databricks_ui_apist der Wert der Unterressource für einen Azure Databricks-Arbeitsbereich.
Beispiel:
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( '/subscriptions/1111-22-333-4444-55555/resourceGroups/my-rg/providers/Microsoft.Databricks/workspaces/my-databricks-workspace', 'adb-1234567890123456.12.azuredatabricks.net', 'databricks_ui_api' );
Schritt 3: Endpunktstatus überprüfen¶
In diesem Schritt überprüfen Sie den Endpunktstatus des privaten Konnektivitätsendpunkts in der Snowflake VPC oder in VNet, die Sie im vorherigen Schritt bereitgestellt haben.
Um den Status des Endpunkts zu überprüfen, rufen Sie die Systemfunktion SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO auf:
SELECT SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO();
Der Endpunkt ist einsatzbereit, wenn der
statussich vonpendinginavailableändert.
Schritt 4: Zusätzliche katalogspezifische Konfiguration¶
Führen Sie die zusätzlichen Konfigurationsschritte für Ihren Katalogtyp durch.
Bemerkung
Für einige Kataloge oder einige Arten von privaten Konnektivitätsendpunkten müssen Sie auch die Verbindung genehmigen oder die privaten Konnektivitätsendpunkte auf der Seite des Katalogservers auf die Zulassungsliste setzen.
Informationen zu den zusätzlichen Konfigurationsschritten finden Sie in der Dokumentation zum Iceberg REST-Remote-Katalog. Fahren Sie dann mit dem nächsten Schritt fort.
Eine zusätzliche Konfiguration ist nicht erforderlich. Fahren Sie mit dem nächsten Schritt fort.
In diesem Schritt registrieren Sie den Snowflake-Endpunkt in Databricks, um den Datenverkehr vom VPC-Endpunkt zu akzeptieren.
Konfigurationsschritte in Databricks abschließen
Bevor Sie den Snowflake VPC-Endpunkt registrieren, stellen Sie sicher, dass Sie die folgenden Konfigurationen in Databricks abschließen:
Ihr Arbeitsbereich muss sich in einer kundenseitig verwalteten VPC befinden.
Ihr Databricks-Konto muss über ein Enterprise-Abonnement verfügbar sein.
Sie müssen eine private Zugriffskonfiguration einrichten.
Weitere Informationen finden Sie unter Azure Databricks: Frontend-PrivateLink konfigurieren in der Databricks-Dokumentation.
Snowflake VPC-Endpunkt registrieren
Um den VPC-Endpunkt zu registrieren, führen Sie die folgenden Schritte aus:
Rufen Sie in Snowflake die Systemfunktion SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO auf und kopieren Sie dann den Wert für
snowflake_endpoint_namein der Antwort:SELECT SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO();
Die zu kopierende Ausgabe sieht zum Beispiel folgendermaßen aus:
vpce-11111aaaa11aaaa11. Dieser Wert ist die VPC-Endpunkt-ID in Ihrem Snowflake Konto.Registrieren Sie in Databricks die Snowflake VPC-Endpunkt-ID, indem Sie den Wert für die VPC-Endpunkt-ID angeben, den Sie im vorherigen Schritt kopiert haben.
Eine Anweisung dazu finden Sie im Abschnitt zum Verwalten von VPC-Endpunktregistrierungen in der Databricks-Dokumentation.
Fügen Sie unter Databricks eine Einstellung für den privaten Zugriff hinzu und geben Sie dann den VPC-Endpunkt an, den Sie im vorherigen Schritt registriert haben.
Eine Anweisung dazu finden Sie im Abschnitt zum Verwalten der Einstellungen für den privaten Zugriff in der Databricks-Dokumentation.
Konfigurationsschritte in Databricks abschließen
Bevor Sie den Snowflake VPC-Endpunkt registrieren, stellen Sie sicher, dass Sie die erforderlichen Konfigurationen in Databricks vervollständigen, was die Bereitstellung von Azure Databricks in Ihrem virtuellen Azure-Netzwerk einschließt. Informationen zu allen erforderlichen Konfigurationen finden Sie im Abschnitt mit den Anforderungen für die Konfiguration des Frontend-Private Links in der Azure Databricks-Dokumentation.
Private Konnektivität von Snowflake genehmigen
Um die private Konnektivität von Snowflake zu genehmigen, führen Sie die folgenden Schritte aus:
Navigieren Sie im Azure-Portal zu Ihrem Azure Databricks-Arbeitsbereich.
Klicken Sie in der Seitenleiste auf Networking.
Klicken Sie auf Private endpoint connections.
Klicken Sie in der Liste der privaten Endpunktverbindungen auf checkbox neben der privaten Endpunktverbindung, die Sie genehmigen möchten.
Klicken Sie über der Liste auf die Schaltfläche Approve.
Schritt 5: Katalogintegration erstellen¶
In diesem Schritt konfigurieren Sie zur Aktivierung der privaten Konnektivität eine Katalogintegration für den Katalog-REST-Endpunkt.
Um diese Katalogintegration zu konfigurieren, führen Sie den Befehl CREATE CATALOG INTEGRATION aus.
Beispiel:
CREATE OR REPLACE CATALOG INTEGRATION iceberg_rest_catalog_cat_int_private CATALOG_SOURCE = ICEBERG_REST TABLE_FORMAT = ICEBERG REST_CONFIG = ( CATALOG_URI = '<rest_api_endpoint_url>' CATALOG_API_TYPE = PRIVATE CATALOG_NAME = '<catalog_name>' ) REST_AUTHENTICATION = ( TYPE = OAUTH OAUTH_TOKEN_URI = '<token_server_uri>' OAUTH_CLIENT_ID = '<oauth_client_id>' OAUTH_CLIENT_SECRET = '<oauth_client_secret>' OAUTH_ALLOWED_SCOPES = ('all-apis', 'sql') ) ENABLED = true;
Wichtig
Um ausgehende private Konnektivität zu verwenden, müssen Sie
CATALOG_API_TYPE=PRIVATEangeben, wenn Sie die Integration erstellen.Weitere Informationen, einschließlich der unterstützten Authentifizierungsmethoden, finden Sie unter CREATE CATALOG INTEGRATION (Apache Iceberg™ REST).
Um diese Katalogintegration zu konfigurieren, folgen Sie den Schritten unter Konfigurieren Sie eine Katalogintegration für AWS Glue Iceberg REST.
Wichtig
Um ausgehende private Konnektivität zu verwenden, müssen Sie
CATALOG_API_TYPE = AWS_PRIVATE_GLUEanstatt vonCATALOG_API_TYPE = AWS_GLUEangeben, wenn Sie die Integration erstellen.Beispiel:
CREATE CATALOG INTEGRATION glue_rest_catalog_int CATALOG_SOURCE = ICEBERG_REST TABLE_FORMAT = ICEBERG REST_CONFIG = ( CATALOG_URI = 'https://glue.us-west-2.amazonaws.com/iceberg' CATALOG_API_TYPE = AWS_PRIVATE_GLUE CATALOG_NAME = '123456789012' ) REST_AUTHENTICATION = ( TYPE = SIGV4 SIGV4_IAM_ROLE = 'arn:aws:iam::123456789012:role/my-role' SIGV4_SIGNING_REGION = 'us-west-2' ) ENABLED = TRUE;
Um eine REST-Katalogintegration für die Verbindung zum Databricks Unity-Katalog zu erstellen, verwenden Sie den Befehl CREATE CATALOG INTEGRATION (Apache Iceberg™ REST).
Wichtig
Um ausgehende private Konnektivität zu verwenden, müssen Sie
CATALOG_API_TYPE = PRIVATEals einen derREST_CONFIG-Parameter angeben, wenn Sie die Integration erstellen.Für
CATALOG_URIundOAUTH_TOKEN_URI`müssen Sie den öffentlichen Standard-Hostnamen verwenden, der Ihrer Databricks-Arbeitsbereichs-URL entspricht, *nicht* den Namen des privaten Endpunkts. Snowflake leitet den Datenverkehr automatisch über den bereitgestellten privaten Endpunkt, wenn :code:`CATALOG_API_TYPEaufPRIVATEgesetzt ist. Anweisungen zum Auffinden Ihrer Databricks-Arbeitsbereichs-URL finden Sie im Abschnitt zum Abrufen von Bezeichnern für Arbeitsbereichsobjekte in der Databricks-Dokumentation.
Beispiel: Authentifizierung mit Bearer-Token
Informationen zum Erstellen eines Bearer-Tokens, das in Databricks als persönliches Zugriffstoken (PAT) bezeichnet wird, finden Sie unter Databricks auf AWS: Persönliches Zugriffstoken für Arbeitsbereichsbenutzende erstellen in der Databricks-Dokumentation.
CREATE OR REPLACE CATALOG INTEGRATION unity_catalog_int_private_pat CATALOG_SOURCE = ICEBERG_REST TABLE_FORMAT = ICEBERG REST_CONFIG = ( CATALOG_URI = 'https://dbc-a1a11111-1a11.cloud.databricks.com/api/2.1/unity-catalog/iceberg-rest' CATALOG_NAME = '<catalog_name>' CATALOG_API_TYPE = PRIVATE ) REST_AUTHENTICATION = ( TYPE = BEARER BEARER_TOKEN = 'eyAbCD...eyDeF...' ) ENABLED = TRUE;
Beispiel: OAuth-Authentifizierung mit Dienstprinzipal
Im folgenden Beispiel wird die OAuth-Authentifizierung mit einem Databricks-Dienstprinzipal verwendet. Sie müssen einen in Databricks konfigurierten Dienstprinzipal mit den erforderlichen Anmeldeinformationen haben, nämlich
client_idundclient_secret. Anweisungen zum Hinzufügen eines Dienstprinzipals finden Sie unter Databricks auf AWS: Dienstprinzipale zu Ihrem Konto hinzufügen in der Databricks-Dokumentation.USE ROLE ACCOUNTADMIN; CREATE OR REPLACE CATALOG INTEGRATION unity_catalog_int_private_oauth CATALOG_SOURCE = ICEBERG_REST TABLE_FORMAT = ICEBERG REST_CONFIG = ( CATALOG_API_TYPE = PRIVATE CATALOG_URI = '<databricks_workspace_url>/api/2.1/unity-catalog/iceberg-rest' CATALOG_NAME = '<catalog_name>' ) REST_AUTHENTICATION = ( TYPE = OAUTH OAUTH_TOKEN_URI = '<databricks_workspace_url>/oidc/v1/token' OAUTH_CLIENT_ID = '<your_databricks_client_id>'' OAUTH_CLIENT_SECRET = '<your_databricks_client_secret>' OAUTH_ALLOWED_SCOPES = ('all-apis', 'sql') ) ENABLED = TRUE;
Wobei:
<databricks_workspace_url>ist Ihre Databricks-Arbeitsbereichs-URL, die Sie beim Sammeln von Informationen zur privaten Konnektivität Ihres Katalogs abgerufen haben. Beispielsweise isthttps://dbc-a1a11111-1a11.cloud.databricks.comeine Databricks-Arbeitsbereichs-URL.
Um eine REST-Katalogintegration für die Verbindung zum Databricks Unity-Katalog zu erstellen, verwenden Sie den Befehl CREATE CATALOG INTEGRATION (Apache Iceberg™ REST).
Wichtig
Um ausgehende private Konnektivität zu verwenden, müssen Sie
CATALOG_API_TYPE = PRIVATEals einen derREST_CONFIG-Parameter angeben, wenn Sie die Integration erstellen.Für
CATALOG_URIundOAUTH_TOKEN_URI`müssen Sie den öffentlichen Standard-Hostnamen verwenden, der Ihrer Databricks-Arbeitsbereichs-URL entspricht, *nicht* den Namen des privaten Endpunkts. Snowflake leitet den Datenverkehr automatisch über den bereitgestellten privaten Endpunkt, wenn :code:`CATALOG_API_TYPEaufPRIVATEgesetzt ist. Anweisungen zum Auffinden Ihrer arbeitsbereichsspezifischen Databricks-URL finden Sie im Abschnitt zum Bestimmen einer arbeitsbereichsspezifischen URL in der Azure Databricks-Dokumentation.
Beispiel: Authentifizierung mit Bearer-Token
Informationen zum Erstellen eines Bearer-Tokens, das in Databricks als persönliches Zugriffstoken (PAT) bezeichnet wird, finden Sie unter Azure Databricks: Persönliches Zugriffstoken für Arbeitsbereichsbenutzende erstellen in der Databricks-Dokumentation.
CREATE OR REPLACE CATALOG INTEGRATION unity_catalog_int_private_pat CATALOG_SOURCE = ICEBERG_REST TABLE_FORMAT = ICEBERG REST_CONFIG = ( CATALOG_URI = 'https://my-workspace.azuredatabricks.net/api/2.1/unity-catalog/iceberg-rest' CATALOG_NAME = '<catalog_name>' CATALOG_API_TYPE = PRIVATE ) REST_AUTHENTICATION = ( TYPE = BEARER BEARER_TOKEN = 'eyAbCD...eyDeF...' ) ENABLED = TRUE;
Beispiel: OAuth-Authentifizierung mit Dienstprinzipal
Im folgenden Beispiel wird die OAuth-Authentifizierung mit einem Databricks-Dienstprinzipal verwendet. Sie müssen einen in Databricks konfigurierten Dienstprinzipal mit den erforderlichen Anmeldeinformationen haben, nämlich
client_idundclient_secret. Anweisungen zum Hinzufügen eines Dienstprinzipals finden Sie unter `Azure Databricks:: Dienstprinzipale zu Ihrem Konto hinzufügen `_ in der Databricks-Dokumentation.USE ROLE ACCOUNTADMIN; CREATE OR REPLACE CATALOG INTEGRATION unity_catalog_int_private_oauth CATALOG_SOURCE = ICEBERG_REST TABLE_FORMAT = ICEBERG REST_CONFIG = ( CATALOG_API_TYPE = PRIVATE CATALOG_URI = '<databricks_per_workspace_url>/api/2.1/unity-catalog/iceberg-rest' CATALOG_NAME = '<catalog_name>' ) REST_AUTHENTICATION = ( TYPE = OAUTH OAUTH_TOKEN_URI = '<databricks_per_workspace_url>/oidc/v1/token' OAUTH_CLIENT_ID = '<your_databricks_client_id>' OAUTH_CLIENT_SECRET = '<your_databricks_client_secret>' OAUTH_ALLOWED_SCOPES = ('all-apis', 'sql') ) ENABLED = TRUE;
Wobei:
<databricks_per_workspace_url>ist Ihre arbeitsbereichsspezifische Databricks-URL, die Sie beim Sammeln von Informationen zur privaten Konnektivität Ihres Katalogs abgerufen haben. Beispielsweise isthttps://adb-1234567890123456.12.azuredatabricks.neteine arbeitsbereichsspezifische Databricks-URL.
Schritt 6: Katalogintegration überprüfen¶
Um Ihre Katalogintegrationskonfiguration zu überprüfen, rufen Sie die Funktion SYSTEM$VERIFY_CATALOG_INTEGRATION auf.
Weitere Informationen dazu finden Sie unter SYSTEM$VERIFY_CATALOG_INTEGRATION zum Überprüfen Ihrer Katalogintegrationskonfiguration verwenden.
(Optional) Schritt 7: Katalogkonfiguration aktualisieren¶
Wir empfehlen, dass Sie die Konfiguration für Ihren Remote-Katalog aktualisieren, sodass er nur über eine private Konnektivität zugänglich ist.
Um den öffentlichen Zugriff auf Ihren Katalog zu deaktivieren, lesen Sie die Dokumentation für den Remote-Katalog, mit dem Sie sich über eine private Konnektivität verbinden möchten.
Der AWS Glue-Datenkatalog unterstützt keine Beschränkung des Zugriffs auf ausschließlich zugelassene VPC-Endpunkte.
Informationen zum Deaktivieren des öffentlichen Zugriffs auf Ihren Katalog finden Sie unter Databricks auf AWS: Frontend-PrivateLink konfigurieren in der Databricks-Dokumentation.
Informationen zum Deaktivieren des öffentlichen Zugriffs auf Ihren Katalog finden Sie unter Frontend-Private Link konfigurieren in der Azure Databricks-Dokumentation.
Nächste Schritte¶
Dieser Abschnitt enthält einige Aufgaben, die Sie ausführen können, nachdem Sie Ihre Katalogintegration konfiguriert haben:
Ihre privaten Konnektivitätsendpunkte überwachen¶
Informationen zum Überwachen Ihrer privaten Konnektivitätsendpunkte finden Sie unter Ansicht OUTBOUND_PRIVATELINK_ENDPOINTS im Schema ACCOUNT_USAGE.
Informationen zu den Kosten Ihrer privaten Konnektivitätsendpunkte finden Sie unter Kosten für ausgehende private Konnektivität.
Konfigurieren Sie ein externes Volume mit ausgehender privater Konnektivität:¶
Um private Konnektivität zwischen Snowflake und Ihren Speicher-Buckets zu aktivieren, konfigurieren Sie ein externes Volumen mit ausgehender privater Konnektivität.
Weitere Informationen zu externen Volumen finden Sie unter Externes Volume konfigurieren.
Bemerkung
Anmeldeinformationen über den Katalog werden nicht unterstützt, wenn Sie eine Katalogintegration mit ausgehender privater Konnektivität konfigurieren.
Um ein externes Volumen mit ausgehender privater Konnektivität zu konfigurieren, folgen Sie den Anweisungen für Ihren Cloudanbieter:
Eine mit dem Katalog verbundene Datenbank erstellen¶
Um eine Snowflake-Datenbank zu erstellen, die mit Ihrem externen Iceberg REST-Katalog verbunden ist, erstellen Sie eine mit einem Katalog verknüpfte Datenbank.
Weitere Informationen dazu finden Sie unter Eine mit dem Katalog verbundene Datenbank erstellen.
Bemerkung
Wenn Sie die mit dem Katalog verknüpfte Datenbank erstellen, geben Sie eine Katalogintegration an, die mit ausgehender privater Konnektivität konfiguriert ist.
In den Remote-Katalog schreiben¶
Nachdem Sie eine Katalogintegration für Apache Iceberg™ REST konfiguriert und eine mit dem Katalog verknüpfte Datenbank erstellt haben, können Sie in Ihren Remote-Katalog schreiben.
Informationen zum Schreiben in Ihren Remote-Katalog finden Sie unter In den Remote-Katalog schreiben.