Interrogation d’une table dans Snowflake Open Catalog à l’aide de Snowflake¶
Pour interroger une table enregistrée dans Snowflake Open Catalog à l’aide de Snowflake, vous pouvez créer une table Apache Iceberg™ qui utilise un catalogue externe.
Le tableau représente la table Iceberg dans Snowflake Open Catalog et fournit un accès en lecture seule.
Conditions préalables¶
Avant de commencer, vous avez besoin des éléments suivants :
Une table Iceberg enregistrée auprès d”Open Catalog.
Une connexion de service que Snowflake peut utiliser pour se connecter à Open Catalog. Vous pouvez utiliser une connexion de service existante pour laquelle vous avez configuré des rôles et des privilèges, ou Configuration d’une connexion de service pour Snowflake. Si vous configurez une nouvelle connexion de service, vous devez également configurer le contrôle d’accès pour celle-ci.
Étape 1 : Créer un volume externe dans Snowflake¶
Si vous n’en avez pas déjà un, commencez par créer un volume externe dans Snowflake qui donne accès à l’emplacement de stockage Cloud où vous stockez vos données de table et vos métadonnées.
Suivez les instructions relatives à votre service de stockage dans le Cloud :
Étape 2 : Créer une intégration de catalogue pour Open Catalog¶
Utilisez ensuite la commande CREATE CATALOG INTEGRATION pour créer une intégration de catalogue dans Snowflake qui utilise OAuth pour se connecter à Open Catalog à l’aide de vos identifiants de connexion de service.
CREATE OR REPLACE CATALOG INTEGRATION open_catalog_int
CATALOG_SOURCE = POLARIS
TABLE_FORMAT = ICEBERG
CATALOG_NAMESPACE= 'myOpenCatalogNamespace'
REST_CONFIG = (
CATALOG_URI ='https://my_account.snowflakecomputing.com/polaris/api/catalog'
WAREHOUSE = 'myOpenCatalogName'
)
REST_AUTHENTICATION = (
TYPE = OAUTH
OAUTH_CLIENT_ID = 'my-client-id'
OAUTH_CLIENT_SECRET = 'my-client-secret'
OAUTH_ALLOWED_SCOPES = ( 'PRINCIPAL_ROLE:ALL' )
)
ENABLED = TRUE;
Étape 3 : Créer une table gérée en externe¶
Créez une table Iceberg dans Snowflake à l’aide du volume externe et de l’intégration de catalogue que vous avez précédemment configurés.
Pour CATALOG_TABLE_NAME, spécifiez le nom de la table tel qu’il apparaît dans Open Catalog.
CREATE ICEBERG TABLE open_catalog_iceberg_table
CATALOG = 'open_catalog_int'
EXTERNAL_VOLUME = 'my_external_volume'
CATALOG_TABLE_NAME = 'my_iceberg_table';
Vous pouvez éventuellement activer les actualisations automatiques des métadonnées de la table en spécifiant AUTO_REFRESH = TRUE
. Pour plus d’informations, voir Actualisation automatique des tables Apache Iceberg™.
Note
Pour récupérer une liste de tables ou d’espaces de noms dans votre catalogue distant, vous pouvez utiliser les fonctions suivantes :
Étape 4 : Interroger la table à l’aide de Snowflake¶
Vous pouvez désormais utiliser Snowflake pour interroger la table dans Open Catalog. Vous pouvez également joindre les résultats de la requête à d’autres tables Snowflake.
SELECT id, date
FROM open_catalog_iceberg_table
LIMIT 10;