CREATE CATALOG INTEGRATION

Bemerkung

Eine Katalogintegration ist nur erforderlich, wenn Sie eine schreibgeschützte Iceberg-Tabelle mit einem externen Katalog oder aus Quelldateien im Objektspeicher erstellen möchten. Sie benötigen keine Katalogintegration, um eine Iceberg-Tabelle zu erstellen, die Snowflake als Iceberg-Katalog verwendet. Um Snowflake als Katalog zu verwenden, setzen Sie den Parameter CATALOG im Befehl CREATE ICEBERG TABLE auf SNOWFLAKE.

Erstellt eine neue Katalogintegration für Iceberg-Tabellen im Konto oder ersetzt eine bestehende Katalogintegration.

Siehe auch:

DROP CATALOG INTEGRATION, SHOW CATALOG INTEGRATIONS, DESCRIBE CATALOG INTEGRATION

Syntax

CREATE [ OR REPLACE ] CATALOG INTEGRATION [IF NOT EXISTS]
  <name>
  CATALOG_SOURCE = { GLUE | OBJECT_STORE }
  TABLE_FORMAT = { ICEBERG }
  [ catalogParams ]
  ENABLED = { TRUE | FALSE }
  [ COMMENT = '{string_literal}' ]
Copy

Wobei:

catalogParams (for AWS Glue)::=
  GLUE_AWS_ROLE_ARN = '<arn-for-AWS-role-to-assume>'
  GLUE_CATALOG_ID = '<glue-catalog-id>'
  [ GLUE_REGION = '<AWS-region-of-the-glue-catalog>' ]
  CATALOG_NAMESPACE = '<catalog-namespace>'
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 Details dazu finden Sie unter Anforderungen an Bezeichner.

CATALOG_SOURCE = { GLUE | OBJECT_STORE }

Gibt den Typ der Katalogquelle an.

AWS Glue

GLUE: Erstellt eine Integration zwischen Snowflake und AWS Glue.

Iceberg-Metadaten im Objektspeicher

OBJECT_STORE: Erstellt eine Integration für Iceberg-Metadatendateien in einem externen Cloudspeicherort, den Sie mit einem externen Volume verknüpfen.

TABLE_FORMAT = { ICEBERG }

Gibt das vom Katalog bereitgestellte Tabellenformat an.

ICEBERG: Gibt Glue-Iceberg-Tabellen oder Iceberg-Tabellen aus Metadaten in einem externen Cloudspeicherort an.

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.

Katalogparameter (catalogParams)

AWS Glue

Wichtig

Wenn Sie eine Katalogintegration für AWS Glue erstellen, müssen Sie zusätzliche Schritte ausführen, um eine Vertrauensstellung zwischen Snowflake und dem Glue Data Catalog einzurichten. Weitere Details dazu finden Sie unter Katalogintegration für Iceberg-Tabellen konfigurieren.

GLUE_AWS_ROLE_ARN = 'arn-for-AWS-role-to-assume'

Gibt den Amazon Resource Name (ARN) der AWS-Rolle für Identitäts- und Zugriffsverwaltung (IAM) an, die übernommen werden soll.

GLUE_CATALOG_ID = 'glue-catalog-id'

Gibt die ID Ihres AWS-Kontos an.

[ GLUE_REGION = 'AWS-region-of-the-glue-catalog' ]

Gibt die AWS-Region Ihres AWS Glue-Datenkatalogs an. Sie müssen einen Wert für diesen Parameter angeben, wenn Ihr Snowflake-Konto nicht auf AWS gehostet wird. Andernfalls ist die Standardregion die Snowflake-Bereitstellungsregion für das Konto.

CATALOG_NAMESPACE = 'catalog-namespace'

Gibt den Namespaces Ihres AWS Glue-Datenkatalogs an (zum Beispiel my_glue_database). Dies ist der Standard-Namespace für alle Iceberg-Tabellen, die Sie mit dieser Katalogintegration verknüpfen. Sie können diesen Wert überschreiben, indem Sie den Namespace auf Tabellenebene angeben, d. h. beim Erstellen einer Tabelle.

Optionale Parameter

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.

  • 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.

Beispiele

AWS Glue

Im folgenden Beispiel wird eine Katalogintegration erstellt, die eine AWS Glue-Katalogquelle verwendet. Wenn Sie eine Katalogintegration für Glue erstellen, müssen Sie zusätzliche Schritte ausführen, um eine Vertrauensstellung zwischen Snowflake und dem Glue Data Catalog einzurichten. Weitere Details dazu finden Sie unter Katalogintegration für Iceberg-Tabellen konfigurieren.

CREATE CATALOG INTEGRATION glueCatalogInt
  CATALOG_SOURCE=GLUE
  CATALOG_NAMESPACE='my.catalogdb'
  TABLE_FORMAT=ICEBERG
  GLUE_AWS_ROLE_ARN='<arn-for-aws-role-to-assume>'
  GLUE_CATALOG_ID='<catalog-id>'
  GLUE_REGION='<optional-aws-region-of-the-glue-catalog>'
  ENABLED=TRUE;
Copy

Iceberg-Metadaten im Objektspeicher

Im folgenden Beispiel wird eine Integration erstellt, die Iceberg-Metadaten in einem externen Cloudspeicher verwendet. OBJECT_STORE entspricht dem Objektspeicher, den Sie mit einem externen Volume verknüpfen.

CREATE CATALOG INTEGRATION myCatalogInt
  CATALOG_SOURCE=OBJECT_STORE
  TABLE_FORMAT=ICEBERG
  ENABLED=TRUE;
Copy