Organiser le contenu du catalogue

Cette rubrique fournit des instructions sur la création d’espaces de noms et de tables pour un catalogue interne dans Snowflake Open Catalog.

Important

Pour garantir que les privilèges d’accès définis pour un catalogue sont appliqués correctement, les conditions suivantes doivent être remplies :

  • Un répertoire contient uniquement les fichiers de données appartenant à une seule table.

  • Une hiérarchie de répertoires correspond à la hiérarchie de l’espace de noms du catalogue.

Par exemple, si un catalogue comprend les éléments suivants :

  • Espace de noms de niveau supérieur namespace1

  • Espace de noms imbriqué namespace1a

  • Une table customers regroupée sous un espace de noms imbriqué namespace1a

  • Une table orders regroupée sous un espace de noms imbriqué namespace1a

La hiérarchie de répertoires du catalogue doit être la suivante :

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

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

Organisation du contenu du catalogue

Un administrateur de catalogue peut utiliser Open Catalog ou un moteur de requêtes tiers pour organiser le contenu du catalogue comme suit :

Objet

Utilisation

Espace de noms

<ul><li>Open Catalog</li><li>Moteur de requêtes tiers</li></ul>

Table

Moteur de requêtes tiers

Remarque

Les tables et les espaces de noms d’un catalogue externe sont en lecture seule dans Open Catalog. Si vous devez organiser le contenu d’un catalogue pour un catalogue externe, vous devez utiliser Snowflake. Pour plus d’informations, voir Apache Iceberg™ géré par Snowflake.

L’exemple de code de cette rubrique montre comment utiliser Apache Spark pour organiser le contenu du catalogue. L’exemple de code est dans PySpark.

Création d’un espace de noms

Cette section fournit des instructions pour créer des espaces de noms de niveau supérieur ou imbriqués.

Important

Lorsque vous créez un espace de noms, n’utilisez pas de points ni d’espaces dans le nom de l’espace de noms.

Création d’un espace de noms de niveau supérieur

Pour créer un espace de noms de niveau supérieur, vous pouvez utiliser Apache Spark ou Open Catalog.

Exemple : créer un espace de noms de niveau supérieur à l’aide d’Apache Spark

L’exemple de code suivant crée un espace de noms de niveau supérieur nommé namespace1 dans le catalogue catalog1 :

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

Création d’un espace de noms de niveau supérieur à l’aide d’Open Catalog

  1. Connectez-vous à Open Catalog.

  2. Dans le menu de gauche, sélectionnez Catalogues.

  3. Dans la liste des catalogues, sélectionnez le catalogue dans lequel vous souhaitez créer un espace de noms de niveau supérieur.

  4. Sélectionnez + Espace de noms.

  5. Pour Nom, saisissez un nom pour l’espace de noms, puis sélectionnez Soumettre.

Création d’un espace de noms imbriqué

Pour créer un espace de noms imbriqué, vous pouvez utiliser Apache Spark ou Open Catalog.

Exemple : créer un espace de noms imbriqué à l’aide d’Apache Spark

L’exemple de code suivant crée un espace de noms imbriqué nommé namespace1a dans le catalogue catalog1. Cet espace de noms imbriqué est créé sous l’espace de noms de niveau supérieur existant namespace1 :

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

Création d’un espace de noms imbriqué à l’aide d’Open Catalog

  1. Connectez-vous à Open Catalog.

  2. Dans le menu de gauche, sélectionnez Catalogues.

  3. Dans la liste des catalogues, sélectionnez le catalogue dans lequel vous souhaitez créer un espace de noms imbriqué.

  4. Dans l’onglet Espaces de noms, accédez à l’espace de noms parent dans lequel vous souhaitez créer l’espace de noms imbriqué.

  5. Sélectionnez + Espace de noms.

  6. Pour Nom, saisissez un nom pour l’espace de noms imbriqué, puis sélectionnez Soumettre.

Créer une table

Cette section fournit des exemples pour créer des tables à l’aide d’Apache Spark.

Exemple : Créer une table

L’exemple de code suivant crée une table customers sous un espace de noms imbriqué namespace1a dans le catalogue catalog1. Elle est créée avec les colonnes id et custnum, et le type de données pour les deux colonnes est 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

Exemple : Insérer des lignes dans une table

L’exemple de code suivant insère une ligne dans la table customers :

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