> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8c05c8a2.mintlify.site/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 galaxyOnClick = eventName => () => {
  try {
    if (typeof window !== "undefined" && window.galaxy && eventName) {
      window.galaxy.track(eventName, {
        interaction: "click"
      });
    }
  } catch (e) {}
};

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/beta-and-experimental-features#beta-features">
                        En savoir plus.
                    </a>
                </u>
            </span>
        </div>;
};

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 Polaris Catalog 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
* L’endpoint de stockage du stockage objet 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>
    ## Création d’une connexion entre Polaris et ClickHouse

    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>
    ## Interroger le catalogue Polaris avec ClickHouse

    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>
    ## Chargement de données depuis Polaris dans 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>
