Apache Iceberg™-Tabellen mit Snowflake Open Catalog in Snowflake verwenden

Verwenden Sie Apache Iceberg™-Tabellen in Snowflake, um mit Snowflake Open Catalog zu arbeiten.

Was ist Snowflake Open Catalog ?

Open Catalog ist eine Katalogimplementierung für Iceberg, die auf dem Open-Source-Protokoll Apache Iceberg REST basiert. Weitere Informationen finden Sie in der Dokumentation Snowflake Open Catalog.

Snowflake unterstützt die folgenden Optionen für die Arbeit mit Open Catalog:

Hinweise

Wenn Sie Snowflake mit Open Catalog verwenden, beachten Sie bitte die folgenden Punkte:

Speicher

Konfiguration für die Synchronisierung von Snowflake-verwalteten Iceberg-Tabellen

  • Um eine von Snowflake verwaltete Tabelle mit Open Catalog zu synchronisieren, müssen Sie zunächst ein externes Volume in Snowflake erstellen und dann einen externen Katalog in Open Catalog erstellen, der auf denselben Speicherort wie das externe Volume verweist. Weitere Informationen dazu finden Sie unter Eine Snowflake-verwaltete Tabelle mit Snowflake Open Catalog synchronisieren.

Zugriff auf Tabellen

  • Snowflake-verwaltete Iceberg-Tabellen, die Sie mit Open Catalog synchronisieren, sind in Open Catalog schreibgeschützt.

  • Snowflake kann abfragen, aber nicht in die von Open Catalog verwalteten Tabellen schreiben.

Unterschiede in der Terminologie

In diesem Abschnitt werden die wichtigsten Unterschiede in der Terminologie zwischen Snowflake und Open Catalog zusammengefasst.

Snowflake-Begriff

Open Catalog-

Datenbank

Open Catalog verwendet Kataloge, die wie Datenbanken in Snowflake sind. In Open Catalog erstellen Sie eine oder mehrere Katalogressourcen, um Iceberg-Tabellen in Namespaces zu organisieren. Weitere Informationen finden Sie unter Katalog in der Dokumentation Open Catalog.

Wenn Sie eine von Snowflake verwaltete Tabelle mit Open Catalog synchronisieren, synchronisiert Snowflake die Tabelle mit dem Katalog, der mit der Katalogintegration der Tabelle verknüpft ist, wobei zwei übergeordnete Namespaces verwendet werden. Die Namespaces entsprechen der Datenbank und dem Schema der Tabelle in Snowflake. Wenn Sie zum Beispiel eine db1.public.table1 Iceberg-Tabelle in Snowflake registriert haben und catalog1 in der Katalogintegration angeben, wird sie mit dem folgenden vollqualifizierten Namen mit Open Catalog synchronisiert: catalog1.db1.public.table1.

Schema

In Open Catalog sind die Begriffe Schema und Namespace synonym und können austauschbar verwendet werden.

Namespace wird in der Weboberfläche von Open Catalog angezeigt. Open Catalog verwendet Namespaces, um eine Sammlung von Objekten zu speichern, und der Begriff _namespace_ wird hauptsächlich in der Dokumentation von Open Catalog verwendet. Weitere Informationen über Namespaces finden Sie unter Namespace.

Wenn Sie jedoch eine Abfrage-Engine eines Drittanbieters verwenden, z. B. Apache Spark, und den Befehl CREATE SCHEMA oder CREATE DATABASE ausführen, erstellen Sie einen Namespace in Open Catalog. Sie können auch den Befehl CREATE NAMESPACE ausführen, um einen Namespace zu erstellen.

Namespace

Wie Snowflake verwendet auch Open Catalog Namespaces, allerdings mit wesentlichen Unterschieden zur Verwendung von Namespaces in Snowflake.

Ein Katalog in Open Catalog besteht aus Namespaces der obersten Ebene, die Sie definieren, und einer beliebigen Anzahl von verschachtelten Namespaces darunter, die Sie ebenfalls definieren.

Verschachtelte Namespaces ermöglichen es Ihnen, Tabellen mit demselben Namen innerhalb desselben Katalogs zu registrieren. Ein Katalog mit dem Namen customers kann beispielsweise die folgenden customerdata-Tabellen enthalten, die unter einem Top-Level Namespace <Region> und einem verschachtelten Namespace <Staat> gruppiert sind:

  • customers.northeast.maine.customerdata

  • customers.northeast.vermont.customerdata

Außerdem können Sie in Open Catalog Tabellen unter jedem beliebigen Namespace in der Namespace-Hierarchie gruppieren, einschließlich Namespaces der obersten Ebene.

Weitere Informationen über Namespaces, einschließlich eines konzeptionellen Diagramms einer Beispielstruktur von Open Catalog, finden Sie unter Schlüsselkonzepte in Open Catalog.

Rollen

In Open Catalog, sind die Prinzipalrollen wie die Rollen in Snowflake, jedoch mit wichtigen Unterschieden. Sie gewähren keine Berechtigungen für eine Prinzipalrolle. Stattdessen erteilen Sie einer Katalogrolle Berechtigungen, die Sie dann einer Prinzipalrolle erteilen, und dann erteilen Sie die Prinzipalrolle einem Dienstprinzipal, wodurch die Berechtigungen dem Dienstprinzipal übertragen werden. Außerdem können Sie anderen Prinzipalrollen keine Prinzipalrollen zuweisen. Sie können einem Dienstprinzipal nur eine Prinzipalrolle zuweisen.

Sie können eine Prinzipalrolle verwenden, um Dienstprinzipale logisch zusammenzufassen. Der Bereich einer Prinzipalrolle erstreckt sich auf alle Kataloge. Außerdem gibt es keine verschiedenen Arten von Prinzipalrollen. Weitere Informationen finden Sie unter Prinzipalrolle in der Dokumentation Open Catalog.

Datenbankrollen

Open Catalog verwendet Katalogrollen, die wie Datenbankrollen in Snowflake sind. Katalogrollen legen eine Reihe von Berechtigungen für Aktionen auf einem Katalog oder Objekte im Katalog fest. Der Bereich einer Katalogrolle ist der Katalog, in dem sie erstellt wird.

Unter Open Catalog erteilen Sie Berechtigungen für Katalogrollen. Als Nächstes weisen Sie Prinzipalrollen Katalogrollen zu und dann Dienstprinzipalen Prinzipalrollen, was den Zugriff auf Ressourcen ermöglicht. Sie können einer Prinzipalrolle mehrere Katalogrollen zuweisen, aber einem Dienstprinzipal nur eine Prinzipalrolle. Weitere Informationen finden Sie unter Katalogrolle in der Dokumentation Open Catalog.

Benutzer

Im Zusammenhang mit der Zugriffssteuerung gibt es kein Konzept eines Benutzers in Open Catalog.

In Open Catalog werden Berechtigungen an Dienstprinzipale vergeben, nicht an Benutzer. Abfrage-Engines verwenden Dienstprinzipale, um eine Verbindung zu Katalogen herzustellen. Weitere Informationen finden Sie unter Dienstprinzipal in der Dokumentation Open Catalog.

OSZAR »