> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# catalogue Polaris

> Dans ce guide, nous vous montrons comment interroger vos données avec ClickHouse et le catalogue Polaris de Snowflake.

export const BetaBadge = ({link, galaxyTrack, galaxyEvent}) => {
  if (link) {
    return <a href={link} target="_blank" rel="noopener noreferrer" className="betaBadge" onClick={galaxyTrack && galaxyEvent ? galaxyOnClick(galaxyEvent) : undefined}>
                <Icon />
                <span>Beta</span>
            </a>;
  }
  return <div className="betaBadge">
            <Icon />
            <span>
                Fonctionnalité en bêta. 
                <u>
                    <a href="/docs/docs/beta-and-experimental-features#beta-features">
                        En savoir plus.
                    </a>
                </u>
            </span>
        </div>;
};

<BetaBadge />

ClickHouse prend en charge l’intégration avec plusieurs catalogues (Unity, Glue, Polaris,
etc.). Dans ce guide, nous vous expliquons comment interroger vos données
avec ClickHouse et l’[Apache Polaris Catalog](https://polaris.apache.org/releases/1.1.0/getting-started/using-polaris/#setup).
Apache Polaris prend en charge les tables Iceberg et les tables Delta (via les tables génériques). Cette intégration ne prend en charge que les tables Iceberg pour l’instant.

<Note>
  Cette fonctionnalité étant expérimentale, vous devez l’activer à l’aide de :
  `SET allow_experimental_database_unity_catalog = 1;`
</Note>

<div id="prerequisites">
  ## Prérequis
</div>

Pour vous connecter au catalogue Polaris, vous aurez besoin des éléments suivants :

* Snowflake Open Catalog (Polaris hébergé) ou catalogue Polaris autohébergé
* L’URI de votre catalogue Polaris (par exemple, `https://<account-id>.<region>.aws.snowflakecomputing.com/polaris/api/catalog/v1` ou `http://polaris:8181/api/catalog/v1/oauth/tokens`)
* Les identifiants du catalogue (ID client et secret client)
* L’URI des tokens OAuth pour votre instance Polaris
* Le endpoint de stockage de l’object store où se trouvent vos données Iceberg (par exemple, S3)
* ClickHouse version 26.1+

Pour Open Catalog, l’offre Polaris managée de Snowflake, votre URI inclura `/polaris`, tandis que pour une instance autohébergée, ce ne sera pas nécessairement le cas.

<Steps>
  <Step title="Création d’une connexion entre Polaris et ClickHouse" id="connecting">
    Créez une base de données qui relie ClickHouse à votre catalogue Polaris :

    ```sql theme={null}
    CREATE DATABASE polaris_catalog
    ENGINE = DataLakeCatalog('https://<catalog_uri>/api/catalog/v1')
    SETTINGS
        catalog_type = 'rest',
        catalog_credential = '<client-id>:<client-secret>',
        warehouse = 'snowflake',
        auth_scope = 'PRINCIPAL_ROLE:ALL',
        oauth_server_uri = 'https://<catalog_uri>/api/catalog/v1/oauth/tokens',
        storage_endpoint = '<storage_endpoint>'
    ```
  </Step>

  <Step title="Interroger le catalogue Polaris avec ClickHouse" id="query-polaris-catalog">
    Une fois la connexion établie, vous pouvez interroger Polaris :

    ```sql title="Requête" theme={null}
    USE polaris_catalog;
    SHOW TABLES;
    ```

    Pour interroger une table :

    ```sql title="Requête" theme={null}
    SELECT count(*) FROM `polaris_db.my_iceberg_table`;
    ```

    <Note>
      Les backticks sont obligatoires, par exemple `schema.table`.
    </Note>

    Pour examiner le DDL de la table :

    ```sql theme={null}
    SHOW CREATE TABLE `polaris_db.my_iceberg_table`;
    ```
  </Step>

  <Step title="Chargement de données depuis Polaris dans ClickHouse" id="loading-data-into-clickhouse">
    Pour charger des données depuis Polaris dans une table ClickHouse, créez la table cible avec le schéma souhaité, puis insérez les données depuis la table Polaris :

    ```sql title="Requête" theme={null}
    CREATE TABLE my_clickhouse_table
    (
        -- définissez les colonnes pour qu’elles correspondent à votre table Iceberg
        `id` Int64,
        `name` String,
        `event_time` DateTime64(3)
    )
    ENGINE = MergeTree
    ORDER BY id;

    INSERT INTO my_clickhouse_table
    SELECT * FROM polaris_catalog.`polaris_db.my_iceberg_table`;
    ```
  </Step>
</Steps>
