Kataloginhalt organisieren

In diesem Thema finden Sie Anweisungen, wie Sie Namespaces und Tabellen für einen internen Katalog in Snowflake Open Catalog erstellen.

Wichtig

Um sicherzustellen, dass die für einen Katalog definierten Zugriffsrechte korrekt durchgesetzt werden, müssen die folgenden Bedingungen erfüllt sein:

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

  • Eine 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 Kunden-Tabelle, gruppiert unter verschachteltem Namespace namespace1a

  • Eine Tabelle mit Bestellungen, gruppiert unter verschachteltem Namespace namespace1a

Die Hierarchie des Verzeichnisses für den Katalog muss lauten:

  • /namespace1/namespace1a/customers/<files for the customers table *only*>

  • /namespace1/namespace1a/orders/<files for the orders table *only*>

Organisieren von Kataloginhalten

Ein Katalog-Administrator kann Open Catalog oder eine Abfrage-Engine eines Drittanbieters verwenden, um den Inhalt des Katalogs wie folgt zu organisieren:

Objekt

Verwendung

Namespace

<ul><li>Open Catalog</li><li>Abfrage von Drittanbietern</li></ul>

Tabelle

Abfrage-Engine eines Drittanbieters

Hinweis

Die Tabellen und Namespaces für einen externen Katalog sind in Open Catalog schreibgeschützt. Wenn Sie Kataloginhalte für einen externen Katalog organisieren müssen, müssen Sie Snowflake verwenden. Weitere Informationen finden Sie unter von Snowflake verwaltete Apache Iceberg™-Tabellen.

Der Beispielcode in diesem Thema zeigt, wie Sie Apache Spark verwenden, um Kataloginhalte zu organisieren. Der Beispielcode ist unter PySpark zu finden.

Einen Namespace erstellen

Dieser Abschnitt enthält Anweisungen zum Erstellen von Namespaces der obersten Ebene oder von verschachtelten Namespaces.

Wichtig

Wenn Sie einen Namespace erstellen, sollten Sie keine Punkte oder Leerzeichen im Namen des Namespaces verwenden.

Erstellen Sie einen Namespace der obersten Ebene

Um einen Top-Level-Namespace zu erstellen, können Sie Apache Spark oder Open Catalog verwenden.

Beispiel: Erstellen eines Top-Level-Namespace mit Apache Spark

Der folgende Beispielcode erstellt einen Top-Level-Namespace namens namespace1 im Katalog catalog1:

spark.sql("use catalog1").show()
spark.sql("CREATE NAMESPACE namespace1")
Copy

Erstellen Sie einen Namespace der obersten Ebene mit Open Catalog

  1. Melden Sie sich an, um den Katalog zu öffnen.

  2. Wählen Sie im Menü auf der linken Seite Kataloge.

  3. Wählen Sie in der Auflistung der Kataloge den Katalog aus, in dem Sie einen Namespace der obersten Ebene erstellen möchten.

  4. Wählen Sie + Namespace.

  5. Geben Sie unter Name einen Namen für den Namespace ein, und wählen Sie dann Senden.

Einen verschachtelten Namespace erstellen

Um einen verschachtelten Namespace zu erstellen, können Sie Apache Spark oder Open Catalog verwenden.

Beispiel: Erstellen eines verschachtelten Namespace mit Apache Spark

Der folgende Beispielcode erstellt einen verschachtelten Namespace namens namespace1a im Katalog catalog1. Dieser verschachtelte Namespace wird unter dem bestehenden Top-Level-Namespace namespace1 erstellt:

spark.catalog.setCurrentCatalog("catalog1")
spark.sql("use catalog1").show()
spark.sql("CREATE NAMESPACE namespace1.namespace1a")
Copy

Erstellen Sie einen verschachtelten Namespace mit Open Catalog

  1. Melden Sie sich an, um den Katalog zu öffnen.

  2. Wählen Sie im Menü auf der linken Seite Kataloge.

  3. Wählen Sie in der Auflistung der Kataloge den Katalog aus, in dem Sie einen verschachtelten Namespace erstellen möchten.

  4. Navigieren Sie auf der Registerkarte Namespaces zu dem übergeordneten Objekt, in dem Sie den verschachtelten Namespace erstellen möchten.

  5. Wählen Sie + Namespace.

  6. Geben Sie unter Name einen Namen für den verschachtelten Namespace ein, und wählen Sie dann Senden.

Tabelle erstellen

In diesem Abschnitt finden Sie Beispiele für die Erstellung von Tabellen mit Apache Spark.

Beispiel: Eine Tabelle erstellen

Der folgende Beispielcode erstellt eine Kunden-Tabelle unter dem verschachtelten Namespace namespace1a im Katalog catalog1. Sie wird mit den Spalten id und custnum erstellt, und der Datentyp für beide Spalten ist integer:

spark.sql("use catalog1").show()
spark.sql ("use namespace1.namespace1a")
spark.sql("CREATE OR REPLACE TABLE customers (id int, custnum int) using iceberg")
Copy

Beispiel: Zeilen in eine Tabelle einfügen

Der folgende Beispielcode fügt eine Zeile in die Kunden-Tabelle ein:

spark.sql("use catalog1").show()
spark.sql ("use namespace1.namespace1a")
spark.sql("INSERT INTO customers VALUES (123,456)")
Copy