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;
Copy

É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';
Copy

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;
Copy