Utilisation des tables Apache Iceberg™ avec Snowflake Open Catalog dans Snowflake¶
Utilisez des Apache Iceberg™ tables dans Snowflake pour travailler avec Snowflake Open Catalog.
Qu’est-ce que Snowflake Open Catalog ?¶
Open Catalog est une implémentation de catalogue pour Iceberg construit sur le protocole REST Apache Iceberg open source. Pour en savoir plus, consultez la documentation Snowflake Open Catalog.
Snowflake prend en charge les options suivantes pour travailler avec Open Catalog :
Considérations¶
Lorsque vous utilisez Snowflake avec Open Catalog, tenez compte des considérations suivantes :
Stockage
Tout comme les tables Iceberg gérées par Snowflake, vous stockez les tables Iceberg gérées par Open Catalog dans un stockage Cloud externe.
Les tables Iceberg dans Snowflake utilisent un volume externe pour donner accès à votre stockage Cloud, tandis que les tables gérées par Open Catalog utilisent une configuration de stockage.
Configuration pour la synchronisation des tables Iceberg gérées par Snowflake
Pour synchroniser une table gérée par Snowflake avec Open Catalog, vous devez d’abord créer un volume externe dans Snowflake, puis créer un catalogue externe dans Open Catalog qui pointe vers le même emplacement que le volume externe. Pour plus d’informations, voir Synchronisation d’une table gérée par Snowflake avec Snowflake Open Catalog.
Accès aux tables
Les tables Iceberg gérées par Snowflake que vous synchronisez avec Open Catalog sont en lecture seule dans Open Catalog.
Snowflake peut effectuer des requêtes mais ne peut pas écrire dans les tables gérées par Open Catalog.
Différences terminologiques¶
Cette section résume les différences clés de terminologie entre Snowflake et Open Catalog.
Terme Snowflake |
Terme Open Catalog |
---|---|
Open Catalog utilise des catalogues, qui sont comme des bases de données dans Snowflake. Dans Open Catalog, vous créez une ou plusieurs ressources de catalogue pour organiser les tables Iceberg sous des espaces de noms. Pour plus d’informations, consultez Catalogue dans la documentation Open Catalog. Lorsque vous synchronisez une table gérée par Snowflake avec Open Catalog, Snowflake synchronise la table avec le catalogue associé à l’intégration du catalogue de la table en utilisant deux espaces de noms parents. Les espaces de noms correspondent à la base de données et au schéma de la table dans Snowflake. Par exemple, si vous avez une table Iceberg |
|
Dans Open Catalog, les notions de schéma et d’espace de noms sont synonymes et peuvent être utilisées de manière interchangeable. Namespace est affiché dans l’interface utilisateur de Open Catalog. Open Catalog utilise des espaces de noms pour contenir une collection d’objets et le terme _namespace_ est principalement utilisé dans la documentation de Open Catalog. Pour plus d’informations sur les espaces de noms, voir Espace de noms. Toutefois, si vous utilisez un moteur de requête tiers, comme Apache Spark, et que vous exécutez la commande CREATE SCHEMA ou CREATE DATABASE, vous créez un espace de noms dans Open Catalog. Vous pouvez également exécuter la commande CREATE NAMESPACE pour créer un espace de noms. |
|
Comme Snowflake, Open Catalog utilise également des espaces de noms, mais avec des différences clés par rapport à la façon dont Snowflake utilise les espaces de noms. Dans Open Catalog, un catalogue comprend des espaces de noms de premier niveau, que vous définissez, ainsi qu’un nombre quelconque d’espaces de noms imbriqués, que vous définissez également. Les espaces de noms imbriqués vous permettent d’enregistrer des tables portant le même nom dans le même catalogue. Par exemple, un catalogue nommé
De même, dans Open Catalog, vous pouvez regrouper des tables sous n’importe quel espace de noms dans la hiérarchie des espaces de noms, y compris les espaces de noms de premier niveau. Pour de plus amples informations sur les espaces de noms, y compris un diagramme conceptuel d’un échantillon de la structure Open Catalog, voir concepts clés d’Open Catalog. |
|
Dans Open Catalog, les rôles principaux sont semblables aux rôles dans Snowflake mais avec des différences clés. Vous n’accordez pas de privilèges à un rôle principal. Au lieu de cela, vous accordez des privilèges à un rôle de catalogue, que vous accordez ensuite à un rôle principal, puis vous accordez le rôle principal à un principal de service, conférant ainsi les privilèges au principal de service. De même, vous ne pouvez pas attribuer de rôles principaux à d’autres rôles principaux. Vous ne pouvez accorder qu’un seul rôle principal à un principal de service. Vous pouvez utiliser un rôle principal pour regrouper logiquement des principaux de service. Le champ d’application d’un rôle principal s’étend à tous les catalogues. De même, il n’y a pas différents types de rôles principaux. Pour plus d’informations, voir Rôle principal dans la documentation Open Catalog. |
|
Open Catalog utilise des rôles de catalogue, qui sont comme les rôles de base de données dans Snowflake. Les rôles de catalogue spécifient un ensemble d’autorisations pour des actions sur un catalogue ou des objets du catalogue. Le champ d’application d’un rôle de catalogue est le catalogue dans lequel il est créé. Dans Open Catalog, vous accordez des privilèges aux rôles de catalogue. Ensuite, vous accordez des rôles de catalogue à des rôles principaux, puis vous accordez des rôles principaux à des principaux de service, ce qui permet d’accéder aux ressources. Vous pouvez attribuer plusieurs rôles de catalogue à un rôle principal, mais un seul rôle principal à un principal de service. Pour plus d’informations, voir Rôle de catalogue dans la documentation Open Catalog. |
|
Dans le contexte du contrôle d’accès, il n’y a pas de notion d’utilisateur dans Open Catalog. Dans Open Catalog, les privilèges sont accordés aux principaux de service et non aux utilisateurs. Les moteurs de requête utilisent des principaux de service pour se connecter aux catalogues. Pour plus d’informations, voir Service principal dans la documentation Open Catalog. |
Avis juridiques¶
Apache®, Apache Iceberg™, Apache Spark™, Apache Flink® et Flink® sont des marques déposées ou des marques commerciales d’Apache Software Foundation aux États-Unis et/ou dans d’autres pays.