Übersicht zu Snowflake Open Catalog

Snowflake Open Catalog ist eine Katalogimplementierung für Apache Iceberg™-Tabellen und basiert auf dem Open-Source-REST-Protokoll von Apache Iceberg™.

Mit Open Catalog können Sie zentralisierten, sicheren Lese- und Schreibzugriff auf Ihre Iceberg-Tabellen über verschiedene REST-kompatible Abfrage-Engines hinweg anbieten.

Open Catalog wird derzeit als Dienst angeboten, der in einer von Snowflake verwalteten Infrastruktur gehostet wird.

!(Konzeptdiagramm von Open Catalog.)(img/overview.svg „Übersicht zu Open Catalog“)

Anmelden

Open Catalog bietet die folgenden Anmeldemöglichkeiten:

  • Für bestehende Snowflake-Kunden: Melden Sie sich bei einem bestehenden Snowflake-Konto als Administrator einer Organisation an, und erstellen Sie ein neues Open Catalog-Konto in Ihrer Snowflake-Organisation. Benutzer mit der Rolle ORGADMIN in Snowflake können das Open Catalog-Konto von Snowflake aus verwalten. Anweisungen finden Sie unter Ein Snowflake Open Catalog-Konto erstellen.

  • Wenn Sie noch kein Kunde von Snowflake sind: Sie können Snowflake Open Catalog 30 Tage lang kostenlos testen, indem Sie sich für ein Snowflake-Testkonto anmelden. Anweisungen finden Sie unter Snowflake Open Catalog kostenlos testen.

Die wichtigsten Konzepte

In diesem Abschnitt werden Schlüsselkonzepte im Zusammenhang mit der Verwendung des in Snowflake gehosteten Open Catalog vorgestellt.

Im folgenden Diagramm sehen Sie ein Beispiel für eine Open Catalog-Struktur mit verschachtelten Namespaces für Catalog1. Es wurden noch keine Tabellen oder Namespaces für Catalog2 oder Catalog3 erstellt.

Diagramm, das eine beispielhafte Open Catalog-Struktur zeigt.

Katalog

In Open Catalog können Sie eine oder mehrere Katalogressourcen erstellen, um Iceberg-Tabellen zu organisieren.

Konfigurieren Sie Ihren Katalog, indem Sie die Werte in der Konfiguration des Speichers für S3, Azure oder Google Cloud Storage einstellen. Ein Iceberg-Katalog ermöglicht es einer Abfrage-Engine, Tabellen zu verwalten und zu organisieren. Der Katalog bildet die erste architektonische Schicht in der Apache Iceberg™-Tabellenspezifikation und muss die folgenden Aufgaben unterstützen:

  • Speichern des aktuellen Metadatenzeigers für eine oder mehrere Iceberg-Tabellen. Ein Metadatenzeiger weist den Namen einer Tabelle dem Speicherort der aktuellen Metadatendatei dieser Tabelle zu.

  • Durchführung von atomaren Operationen, sodass Sie den aktuellen Metadatenzeiger für eine Tabelle auf den Metadatenzeiger einer neuen Version der Tabelle aktualisieren können.

Um mehr über Iceberg-Kataloge zu erfahren, lesen Sie die Apache Iceberg™-Dokumentation.

Katalog-Typen

Ein Katalog kann einer der beiden folgenden Typen sein:

  • Intern: Der Katalog wird von Open Catalog verwaltet. Tabellen aus diesem Katalog können in Open Catalog gelesen und geschrieben werden.

  • Extern: Der Katalog wird extern von einem anderen Iceberg-Kataloganbieter verwaltet (z. B. Snowflake, Glue, Dremio Arctic). Tabellen aus diesem Katalog werden mit Open Catalog synchronisiert. Diese Tabellen sind in Open Catalog schreibgeschützt. Im aktuellen Release wird nur ein externer Snowflake-Katalog bereitgestellt.

Ein Katalog wird mit einer Speicherkonfiguration konfiguriert, die auf S3, Azure Storage oder GCS verweisen kann.

Wie Sie einen neuen Katalog erstellen, erfahren Sie unter Einen Katalog erstellen.

Namespace

Sie erstellen Namespaces, um Iceberg-Tabellen innerhalb eines Katalogs logisch zu gruppieren. Ein Katalog kann mehrere Namespaces haben. Sie können auch verschachtelte Namespaces erstellen. Iceberg-Tabellen gehören zu Namespaces.

Apache Iceberg™-Tabellen und -Kataloge

In einem internen Katalog wird eine Iceberg-Tabelle in Open Catalog registriert, aber über Abfrage-Engines gelesen und geschrieben. Die Tabellendaten und Metadaten werden in Ihrem externen Cloud-Speicher gespeichert. Die Tabelle verwendet Open Catalog als Iceberg-Katalog.

Wenn Sie Tabellen haben, die Snowflake als Iceberg-Katalog verwenden (von Snowflake verwaltete Tabellen), können Sie diese Tabellen mit einem externen Katalog in Open Catalog synchronisieren. Wenn Sie diesen Katalog mit Open Catalog synchronisieren, erscheint er als externer Katalog in Open Catalog. Die Tabellendaten und Metadaten werden in Ihrem externen Cloud-Speicher gespeichert. Die Abfrage-Engine von Snowflake kann aus diesen Tabellen lesen oder in sie schreiben. Die anderen Abfrageprogramme können jedoch nur aus diesen Tabellen lesen.

Wichtig

Damit die für einen Katalog definierten Zugriffsrechte korrekt durchgesetzt werden können, müssen die folgenden Bedingungen erfüllt sein:

  • Das Verzeichnis enthält nur die Datendateien, die zu einer einzigen Tabelle gehören.

  • Die Verzeichnis-Hierarchie entspricht der Namespace-Hierarchie des Katalogs.

Wenn ein Katalog zum Beispiel die folgenden Artikel enthält:

  • Top-Level Namespace Namespace1

  • Verschachtelter Namespace Namespace1a

  • Eine Kundentabelle, die unter dem verschachtelten Namespace Namespace1a gruppiert ist

  • Eine Auftragstabelle, die unter dem verschachtelten Namespace Namespace1a gruppiert ist

Die Verzeichnis-Hierarchie für den Katalog muss dieser Struktur folgen:

  • /namespace1/namespace1a/customers/<nur Dateien für die Kundentabelle>

  • /namespace1/namespace1a/orders/<nur Dateien für die Auftragstabelle>

Dienstprinzipal

Ein Dienstprinzipal ist eine Entität, die Sie in Open Catalog erstellen. Jeder Dienstprinzipal kapselt Anmeldeinformationen, mit denen Sie eine Verbindung zu Open Catalog herstellen können.

Abfrage-Engines verwenden Dienstprinzipale, um eine Verbindung zu Katalogen herzustellen.

Open Catalog erzeugt für jeden Dienstprinzipal ein Paar aus Client-ID und Clientgeheimnis.

Die folgende Tabelle zeigt Beispiele für Dienstprinzipale, die Sie in Open Catalog erstellen können:

Name der Dienstverbindung

Zweck

Flink-Datenaufnahme

Für Apache Flink® zur Aufnahme von Streamingdaten in Apache Iceberg™-Tabellen.

Spark ETL-Pipeline

Für Apache Spark™ zur Ausführung von ETL-Pipeline-Jobs auf Iceberg-Tabellen.

Snowflake-Datenpipelines

Für Snowflake zur Ausführung von Datenpipelines zur Umwandlung von Daten in Apache Iceberg™-Tabellen.

Trino BI-Dashboard

Für Trino zum Ausführen von BI-Abfragen für die Verwendung eines Dashboards.

Snowflake AI-Team

Damit Snowflake AI-Jobs auf Daten in Apache Iceberg™-Tabellen ausführen kann.

Dienstverbindung

Eine Dienstverbindung repräsentiert eine REST-kompatible Engine (wie z. B. Apache Spark™, Apache Flink®, oder Trino), die von Open Catalog lesen und darin schreiben kann. Beim Erstellen einer neuen Dienstverbindung gewährt der Open Catalog-Administrator dem Dienstprinzipal, der mit der neuen Dienstverbindung erstellt wird, entweder eine neue oder eine bestehende Prinzipalrolle. Eine Prinzipalrolle ist eine Ressource in Open Catalog, mit der Sie Open Catalog-Dienstprinzipale logisch gruppieren und Berechtigungen für sicherheitsrelevante Objekte erteilen können. Weitere Informationen finden Sie unter Prinzipalrolle. Open Catalog verwendet ein Modell der rollenbasierten Zugriffssteuerung (RBAC), um Dienstprinzipalen Zugriff auf Ressourcen zu gewähren. Weitere Informationen finden Sie unter Zugriffssteuerung. Ein Diagramm dieses Modells finden Sie unter RBAC-Modell.

Wenn der Open Catalog-Administrator dem Dienstprinzipal für die neue Verbindung eine neue Prinzipalrolle zuweist, hat der Dienstprinzipal noch keine Berechtigungen dafür. Bei der Sicherung des Katalogs, mit dem sich die neue Dienstverbindung verbinden wird, gewährt der Open Catalog-Administrator Berechtigungen für Katalogrollen und weist diese Katalogrollen dann der neuen Prinzipalrolle zu. Daher verfügt der Dienstprinzipal für die neue Dienstverbindung über diese Berechtigungen. Weitere Informationen über Katalogrollen finden Sie unter Katalogrolle.

Wenn der Open Catalog-Administrator dem Dienstprinzipal für die neue Verbindung eine bestehende Prinzipalrolle zuweist, wird der Dienstprinzipal mit den Berechtigungen ausgestattet, die für die Katalogrollen gewährt werden, die der bestehenden Prinzipalrolle zugewiesen werden. Bei Bedarf kann der Open Catalog-Administrator der bestehenden Prinzipalrolle zusätzliche Katalogrollen zuweisen oder Katalogrollen entfernen, um die Berechtigungen des Dienstprinzipals anzupassen. Ein Beispiel dafür, wie RBAC in Open Catalog funktioniert, finden Sie unter RBAC-Beispiel.

Konfiguration des Speichers

Eine Speicherkonfiguration speichert eine generierte Entität für die Identitäts- und Zugriffsverwaltung (IAM) für Ihren externen Cloudspeicher und wird erstellt, wenn Sie einen Katalog erstellen. Die Speicherkonfiguration wird verwendet, um die Werte für die Verbindung von Open Catalog mit Ihrem Cloudspeicher einzustellen. Während des Prozesses der Katalogerstellung wird eine IAM-Entität erzeugt und verwendet, um eine vertrauenswürdige Beziehung zwischen dem Anbieter des Cloudspeichers und Open Catalog herzustellen.

Wenn Sie einen Katalog erstellen, geben Sie die folgenden Informationen über Ihren externen Cloudspeicher an:

Anbieter des Cloudspeichers

Informationen

Amazon S3

<ul><li>Standard-Speicherort für Ihren Amazon S3-Bucket</li><li>Speicherorte für Ihren Amazon S3-Bucket</li><li>S3-Rolle ARN</li><li>Externe ID (optional)</li></ul>

Google Cloud Storage (GCS)

<ul><li>Standard-Speicherort für Ihren GCS-Bucket</li><li>Speicherorte für Ihren GCS-Bucket</li></ul>

Azure

<ul><li>Standard-Speicherort für Ihren Microsoft Azure Container</li><li>Speicherorte für Ihren Microsoft Azure Container</li><li>Azure-Mandanten-ID</li></ul>

Beispiel-Workflow

Im folgenden Beispiel-Workflow erstellt Bob eine Apache Iceberg™-Tabelle mit dem Namen Table1 und Alice liest Daten aus Table1.

  1. Bob verwendet Apache Spark™ um die Tabelle Table1 unter dem Namespace Namespace1 im Katalog Catalog1 zu erstellen und Werte in Table1 einzufügen.

    Bob kann Table1 erstellen und Daten darin einfügen, weil er eine Dienstverbindung mit einem Dienstprinzipal verwendet, der über die Berechtigungen zur Durchführung dieser Aktionen verfügt.

  2. Alice verwendet Snowflake, um Daten aus Table1 zu lesen.

    Alice kann Daten aus Table1 lesen, weil sie eine Verbindung mit einem Dienstprinzipal mit einer Katalogintegration verwendet, der über die Berechtigungen zur Durchführung dieser Aktion verfügt. Alice erstellt eine nicht verwaltete Tabelle in Snowflake, um Daten aus Table1 zu lesen.

Diagramm, das einen Beispiel-Workflow für Open Catalog zeigt

Sicherheit und Zugriffssteuerung

Dieser Abschnitt beschreibt die Sicherheit und die Zugriffssteuerung.

Automatische Erzeugung von Anmeldeinformationen

Um die Interaktion mit den Dienstverbindungen zu sichern, gibt Open Catalog während der Ausführung der Abfrage temporäre Anmeldeinformationen an die Abfragemaschine weiter. Diese Anmeldeinformationen ermöglichen es der Abfrage-Engine, die Abfrage auszuführen, ohne auf Ihren externen Cloudspeicher für Iceberg-Tabellen zugreifen zu müssen. Dieser Vorgang wird als Automatische Erzeugung von Anmeldeinformationen bezeichnet.

Identitäts- und Zugangsverwaltung (IAM)

Open Catalog verwendet die Identitäts- und Zugriffsverwaltungs(IAM)-Entität, um eine sichere Verbindung zu Ihrem Speicher für den Zugriff auf Tabellendaten, Iceberg-Metadaten und Manifestdateien, in denen das Tabellenschema, Partitionen und andere Metadaten gespeichert sind, herzustellen. Open Catalog behält die IAM-Entität für Ihren Speicherort bei.

Zugriffssteuerung

Open Catalog setzt die Zugriffssteuerung, die Sie konfigurieren, für alle mit dem Dienst registrierten Tabellen durch und regelt die Sicherheit für alle Abfragen von Abfrage-Engines auf einheitliche Weise.

Open Catalog verwendet ein Modell der rollenbasierten Zugriffssteuerung (RBAC), mit dem Sie den Zugriff für Open Catalog-Dienstprinzipale auf Kataloge, Namespaces und Tabellen zentral konfigurieren können.

Open Catalog RBAC verwendet zwei verschiedene Rollentypen, um Berechtigungen zu delegieren:

  • Prinzipalrollen: Werden Open Catalog-Dienstprinzipalen gewährt und sind analog zu Rollen in anderen Systemen zur Zugriffssteuerung, die Sie Dienstprinzipalen gewähren.

  • Katalogrollen: Mit bestimmten Berechtigungen auf Open Catalog-Ressourcen konfiguriert und an Prinzipalrollen vergeben.

Weitere Informationen finden Sie unter Zugriffssteuerung.

Rechnungsstellung

Open Catalog ist in den ersten sechs Monaten nach der allgemeinen Verfügbarkeit kostenlos. Die Abrechnung wird am 30. April 2025 beginnen.

Wenn die Abrechnung beginnt, stellt Snowflake Ihrem Konto die Anfragen an REST APIs in Rechnung, die von dem Open Catalog Service unterstützt werden. Weitere Informationen finden Sie in der Tabelle „Serverless Feature Credits Table“ in der [Snowflake Service Consumption Table] (https://www.snowflake.com/legal-files/CreditConsumptionTable. pdf).

Snowflake stellt Ihrem Konto keine Kosten für die Speicherung der Iceberg-Tabellen in Rechnung. Ihr Cloudspeicheranbieter stellt Ihnen die Nutzung des Datenspeichers direkt in Rechnung.