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
Genau wie Snowflake-verwaltete Iceberg-Tabellen speichern Sie von Open Catalog verwaltete Iceberg-Tabellen in einem externen Cloud-Speicher.
Iceberg-Tabellen in Snowflake verwenden ein externes Volume für den Zugriff auf Ihren Cloud-Speicher, während von Open Catalog verwaltete Tabellen eine Speicherkonfiguration verwenden.
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- |
---|---|
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 |
|
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. |
|
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
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. |
|
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. |
|
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. |
|
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. |
Rechtliche Hinweise¶
Apache®, Apache Iceberg™, Apache Spark™, Apache Flink® und Flink® sind entweder eingetragene Marken oder Marken der Apache Software Foundation in den USA und/oder anderen Ländern.