CREATE CATALOG INTEGRATION (Snowflake Open Catalog)

Erstellt eine neue Katalogintegration für Apache Iceberg™-Tabellen, die mit Snowflake Open Catalog im Konto integriert sind, oder ersetzt eine bestehende Katalogintegration.

Siehe auch:

ALTER CATALOG INTEGRATION , DROP CATALOG INTEGRATION , SHOW CATALOG INTEGRATIONS, DESCRIBE CATALOG INTEGRATION

Syntax

CREATE [ OR REPLACE ] CATALOG INTEGRATION [ IF NOT EXISTS ]
  <name>
  CATALOG_SOURCE = POLARIS
  TABLE_FORMAT = ICEBERG
  CATALOG_NAMESPACE = '<open_catalog_namespace>'
  REST_CONFIG = (
    CATALOG_URI = '<open_catalog_account_url>'
    WAREHOUSE = '<open_catalog_catalog_name>'
  )
  REST_AUTHENTICATION = (
    TYPE = OAUTH
    OAUTH_CLIENT_ID = '<oauth_client_id>'
    OAUTH_CLIENT_SECRET = '<oauth_secret>'
    OAUTH_ALLOWED_SCOPES = ('<scope 1>', '<scope 2>')
  )
  ENABLED = { TRUE | FALSE }
  [ REFRESH_INTERVAL_SECONDS = <value> ]
  [ COMMENT = '<string_literal>' ]
Copy

Erforderliche Parameter

name

Zeichenfolge, die den Bezeichner (den Namen) für die Katalogintegration angibt. Muss in Ihrem Konto eindeutig sein.

Darüber hinaus muss der Bezeichner mit einem Buchstaben beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B. "My object"). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.

Weitere Informationen dazu finden Sie unter Anforderungen an Bezeichner.

CATALOG_SOURCE = POLARIS

Gibt Snowflake Open Catalog als Katalogquelle an.

TABLE_FORMAT = ICEBERG

Legt Apache Iceberg™ als das vom Katalog gelieferte Tabellenformat fest.

CATALOG_NAMESPACE = 'open_catalog_namespace'

Gibt den Namespace in Open Catalog an. Snowflake verwendet diesen Namespace für alle Iceberg-Tabellen, die mit dieser Katalogintegration verbunden.

Sie können diesen Wert außer Kraft setzen, indem Sie einen Namespace auf Tabellenebene angeben, wenn Sie eine Tabelle erstellen.

REST_CONFIG = ( ... )

Gibt Informationen über Ihr Open Catalog-Konto und den Katalognamen an.

CATALOG_URI = 'https://open_catalog_account_url'

Ihr Open Catalog-Konto-Locator-URL.

WAREHOUSE = 'open_catalog_name'

Der WAREHOUSE-Parameter gibt den Namen des Katalogs an, der in Open Catalog verwendet werden soll.

REST_AUTHENTICATION = ( ... )

Gibt die Authentifizierung an, die Snowflake für die Verbindung mit Open Catalog verwendet.

TYPE = OAUTH

Gibt OAuth als Typ der zu verwendenden Authentifizierung an.

OAUTH_CLIENT_ID = 'oauth_client_id'

Die Client-ID der Anmeldeinformationen von OAuth2, die mit Ihrer Open Catalog-Dienstverbindung verbunden sind.

OAUTH_CLIENT_SECRET = 'oauth_secret'

Das Geheimnis der OAuth2-Anmeldeinformationen, die mit Ihrer Open Catalog-Dienstverbindung verbunden sind.

OAUTH_ALLOWED_SCOPES = ( 'scope_1', 'scope_2')

Der Bereich des OAuth-Tokens. In der Iceberg REST API-Spezifikation ist nur ein Bereich enthalten, aber Kataloge können mehr als einen Bereich in ihrer Implementierung unterstützen.

ENABLED = {TRUE | FALSE}

Gibt an, ob die Katalogintegration für Iceberg-Tabellen verwendet werden kann.

  • TRUE ermöglicht Benutzern das Erstellen neuer Iceberg-Tabelle, die auf diese Integration verweisen. Vorhandene Iceberg-Tabellen, die auf diese Integration verweisen, funktionieren normal.

  • FALSE verhindert, dass Benutzer neue Iceberg-Tabelle erstellen, die auf diese Integration verweisen. Bestehende Iceberg-Tabellen, die auf diese Integration verweisen, können nicht auf den Katalog in der Tabellendefinition zugreifen.

Optionale Parameter

REFRESH_INTERVAL_SECONDS = value

Legt die Anzahl der Sekunden fest, die Snowflake zwischen den Versuchen wartet, den externen Iceberg-Katalog nach Aktualisierungen der Metadaten für die automatische Aktualisierung abzufragen.

Werte: 30 bis einschließlich 86.400

Standard: 30 Sekunden.

COMMENT = 'string_literal'

Zeichenfolge (Literal), die einen Kommentar zur Integration enthält.

Standard: Kein Wert

Anforderungen an die Zugriffssteuerung

Eine Rolle, die zur Ausführung dieses SQL-Befehls verwendet wird, muss mindestens die folgenden Berechtigungen haben:

Berechtigung

Objekt

Anmerkungen

CREATE INTEGRATION

Konto

Only the ACCOUNTADMIN role has this privilege by default. The privilege can be granted to additional roles as needed.

Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.

Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.

Nutzungshinweise

  • Sie können eine bestehende Katalogintegration nicht ändern; verwenden Sie stattdessen eine CREATE OR REPLACE CATALOG INTEGRATION-Anweisung.

  • Sie können eine Katalogintegration nicht löschen oder ersetzen, wenn eine oder mehrere Apache Iceberg™-Tabellen mit der Katalogintegration verbunden sind.

    Um die Tabellen anzuzeigen, die von einer Katalogintegration abhängen, können Sie den Befehl SHOW ICEBERG TABLES und eine Abfrage mit RESULT_SCAN verwenden, die nach der Spalte catalog_name filtert.

    Bemerkung

    Beim Spaltenbezeichner (catalog_name) wird zwischen Groß- und Kleinschreibung unterschieden. Geben Sie den Spaltenbezeichner genau so an, wie er in der Ausgabe von SHOW ICEBERG TABLES erscheint.

    Beispiel:

    SHOW ICEBERG TABLES;
    
    SELECT * FROM TABLE(
      RESULT_SCAN(
          LAST_QUERY_ID()
        )
      )
      WHERE "catalog_name" = 'my_catalog_integration_1';
    
    Copy
  • Metadaten:

    Achtung

    Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „Benutzer“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.

  • CREATE OR REPLACE <Objekt>-Anweisungen sind atomar. Das heißt, wenn ein Objekt ersetzt wird, erfolgt das Löschen des alten Objekts und das Erstellen des neuen Objekts in einer einzigen Transaktion.

  • Informationen zur Behebung von Problemen bei der Erstellung einer Katalogintegration finden Sie unter Sie können keine Katalogintegration für Open Catalog erstellen.

Beispiele

Im folgenden Beispiel eine Katalogintegration für Open Catalog für einen bestimmten Namespace in einem Katalog erstellt.

CREATE OR REPLACE CATALOG INTEGRATION open_catalog_int
  CATALOG_SOURCE = POLARIS
  TABLE_FORMAT = ICEBERG
  CATALOG_NAMESPACE = 'my_catalog_namespace'
  REST_CONFIG = (
    CATALOG_URI = 'https://my_account.snowflakecomputing.com/polaris/api/catalog'
    WAREHOUSE = 'my_catalog_name'
  )
  REST_AUTHENTICATION = (
    TYPE = OAUTH
    OAUTH_CLIENT_ID = 'my_client_id'
    OAUTH_CLIENT_SECRET = 'my_client_secret'
    OAUTH_ALLOWED_SCOPES = ('PRINCIPAL_ROLE:ALL')
  )
  ENABLED = TRUE;
Copy