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")
Création d’un espace de noms de niveau supérieur à l’aide d’Open Catalog¶
Connectez-vous à Open Catalog.
Dans le menu de gauche, sélectionnez Catalogues.
Dans la liste des catalogues, sélectionnez le catalogue dans lequel vous souhaitez créer un espace de noms de niveau supérieur.
Sélectionnez + Espace de noms.
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")
Création d’un espace de noms imbriqué à l’aide d’Open Catalog¶
Connectez-vous à Open Catalog.
Dans le menu de gauche, sélectionnez Catalogues.
Dans la liste des catalogues, sélectionnez le catalogue dans lequel vous souhaitez créer un espace de noms imbriqué.
Dans l’onglet Espaces de noms, accédez à l’espace de noms parent dans lequel vous souhaitez créer l’espace de noms imbriqué.
Sélectionnez + Espace de noms.
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")
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)")