> ## 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 d’exécution du lakehouse (BigLake Metastore)

> Dans ce guide, nous vous expliquons les étapes à suivre pour interroger vos données dans Google Cloud Storage à l’aide de ClickHouse et du catalogue d’exécution du lakehouse (BigLake Metastore).

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.). Ce guide vous explique comment interroger vos tables Iceberg dans [catalogue d’exécution du lakehouse aka BigLake Metastore](https://docs.cloud.google.com/biglake/docs/) via ClickHouse.

<Note>
  Cette fonctionnalité étant en bêta, vous devrez l’activer à l’aide de :
  `SET allow_database_iceberg = 1;`
</Note>

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

Avant de créer une connexion entre ClickHouse et le catalogue d’exécution du lakehouse (BigLake Metastore), assurez-vous de disposer des éléments suivants :

* Un **projet Google Cloud** avec le catalogue d’exécution du lakehouse activé
* Des **identifiants Application Default** (ID client OAuth et secret client) pour une application, créés via [Google Cloud Console](https://docs.cloud.google.com/docs/authentication/provide-credentials-adc)
* Un **jeton d'actualisation** obtenu en suivant le flux OAuth avec les scopes appropriés (par ex. `https://www.googleapis.com/auth/bigquery` et le scope de stockage pour GCS)
* Un **chemin de warehouse** : un bucket GCS (et un préfixe facultatif) où vos tables sont stockées, par ex. `gs://your-bucket` ou `gs://your-bucket/prefix`

<div id="creating-a-connection">
  ## Créer une connexion entre le catalogue d’exécution du lakehouse et ClickHouse
</div>

Une fois les identifiants OAuth configurés, créez une base de données dans ClickHouse qui utilise le moteur de base de données [DataLakeCatalog](/docs/fr/reference/engines/database-engines/datalake) :

```sql theme={null}
SET allow_database_iceberg = 1;

CREATE DATABASE lakehouse_runtime_catalog
ENGINE = DataLakeCatalog('https://biglake.googleapis.com/iceberg/v1/restcatalog')
SETTINGS
    catalog_type = 'biglake',
    google_adc_client_id = '<client-id>',
    google_adc_client_secret = '<client-secret>',
    google_adc_refresh_token = '<refresh-token>',
    google_adc_quota_project_id = '<gcp-project-id>',
    warehouse = 'gs://<bucket_name>/<optional-prefix>';
```

<div id="querying-lakehouse-runtime-tables">
  ## Interroger les tables du catalogue d’exécution du lakehouse avec ClickHouse
</div>

Une fois la connexion établie, vous pouvez interroger les tables enregistrées dans le catalogue d’exécution du lakehouse.

```sql theme={null}
USE LAKEHOUSE_RUNTIME_CATALOG;

SHOW TABLES;
```

Exemple de sortie :

```response theme={null}
┌─name──────────────────────────────────────┐
│lakehouse_runtime_catalog.my_iceberg_table │   
└───────────────────────────────────────────┘
```

```sql theme={null}
SELECT count(*) FROM `lakehouse_runtime_catalog.my_iceberg_table`;
```

<Info>
  **Backticks requis**

  Les backticks sont requis, car ClickHouse ne prend pas en charge plus d’un espace de noms.
</Info>

Pour afficher la définition de la table :

```sql theme={null}
SHOW CREATE TABLE `lakehouse_runtime_catalog.my_iceberg_table`;
```

<div id="loading-data-into-clickhouse">
  ## Chargement de données du Lakehouse dans ClickHouse
</div>

Pour charger les données d'une table du Lakehouse runtime catalog dans une table ClickHouse locale afin d'accélérer les requêtes répétées, créez une table MergeTree et insérez les données depuis le catalogue :

```sql theme={null}
CREATE TABLE clickhouse_table
(
    `id` Int64,
    `event_time` DateTime64(3),
    `user_id` String,
    `payload` String
)
ENGINE = MergeTree
ORDER BY (event_time, id);

INSERT INTO local_events
SELECT * FROM lakehouse_runtime_catalog.`icebench.my_iceberg_table`;
```

Après le chargement initial, interrogez `clickhouse_table` afin de réduire la latence. Réexécutez `INSERT INTO ... SELECT` pour actualiser les données depuis BigLake lorsque nécessaire.
