> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Le moteur de base de données DataLakeCatalog vous permet de connecter ClickHouse à des catalogues de données externes et d’interroger des données dans un format de table ouvert

# DataLakeCatalog

Le moteur de base de données `DataLakeCatalog` vous permet de connecter ClickHouse à des
catalogues de données externes et d’interroger des données dans un format de table ouvert, sans avoir à dupliquer les données.
Cela transforme ClickHouse en un puissant moteur de requête qui s’intègre parfaitement à
votre infrastructure de lac de données existante.

## Catalogues pris en charge

Le moteur `DataLakeCatalog` prend en charge les catalogues de données suivants :

* **AWS Glue Catalog** - Pour les tables Iceberg dans des environnements AWS
* **Databricks Unity Catalog** - Pour les tables Delta Lake et Iceberg
* **Hive Metastore** - Catalogue traditionnel de l’écosystème Hadoop
* **Catalogues REST** - Tout catalogue compatible avec la spécification REST d’Iceberg

## Création d’une base de données

Vous devrez activer les paramètres appropriés ci-dessous pour utiliser le moteur `DataLakeCatalog` :

```sql theme={null}
SET allow_database_iceberg = 1;
SET allow_database_unity_catalog = 1;
SET allow_database_glue_catalog = 1;
SET allow_experimental_database_hms_catalog = 1;
SET allow_experimental_database_paimon_rest_catalog = 1;
```

Les bases de données utilisant le moteur `DataLakeCatalog` peuvent être créées selon la syntaxe suivante :

```sql theme={null}
CREATE DATABASE database_name
ENGINE = DataLakeCatalog(catalog_endpoint[, user, password])
SETTINGS
catalog_type,
[...]
```

Les paramètres suivants sont pris en charge :

| Setting | Description |
| - | - |
| `catalog_type` | Type de catalogue : `glue`, `unity` (Delta), `rest` (Iceberg), `hive`, `onelake` (Iceberg), `delta_sharing` (Iceberg, espaces de noms plats), `horizon` (Snowflake Horizon Iceberg REST) |
| `warehouse` | Nom du warehouse/de la base de données à utiliser dans le catalogue. |
| `catalog_credential` | Identifiants d’authentification pour le catalogue (par ex. clé API ou jeton) |
| `auth_header` | En-tête HTTP personnalisé pour l’authentification auprès du service de catalogue |
| `auth_scope` | Scope OAuth2 pour l’authentification (si vous utilisez OAuth) |
| `storage_endpoint` | URL du point de terminaison du stockage sous-jacent |
| `oauth_server_uri` | URI du serveur d’autorisation OAuth2 pour l’authentification |
| `vended_credentials` | Booléen indiquant s’il faut utiliser les identifiants fournis par le catalogue (compatible avec AWS S3 et Azure ADLS Gen2) |
| `aws_access_key_id` | ID de clé d’accès AWS pour l’accès à S3/Glue (si vous n’utilisez pas les identifiants fournis) |
| `aws_secret_access_key` | Clé d’accès secrète AWS pour l’accès à S3/Glue (si vous n’utilisez pas les identifiants fournis) |
| `aws_role_arn` | ARN du rôle IAM à assumer pour l’accès à AWS/Glue. Lorsqu’il est défini, ClickHouse utilise AWS STS `AssumeRole` avec les identifiants de base provenant de `aws_access_key_id` et `aws_secret_access_key` lorsque les deux sont fournis, ou de la chaîne d’identifiants AWS par défaut sinon (le rôle doit approuver l’identité sous laquelle le serveur s’exécute). |
| `aws_role_session_name` | Nom de session utilisé pour l’appel AWS STS `AssumeRole`. Facultatif ; la valeur par défaut est `ClickHouseSession`. |
| `aws_external_id` | ID externe transmis à AWS STS `AssumeRole`, correspondant à la condition `sts:ExternalId` de la stratégie d’approbation du rôle. Utilisez-le lorsque le rôle appartient à un tiers, comme ClickHouse Cloud. |
| `region` | Région AWS du service (par ex. `us-east-1`) |
| `dlf_access_key_id` | ID de clé d’accès pour l’accès à DLF |
| `dlf_access_key_secret` | Clé d’accès secrète pour l’accès à DLF |
| `force_add_bucket` | Lors de la construction des URL du stockage objet à partir de l’emplacement de table fourni par le catalogue et de `storage_endpoint`, ajoutez le nom du bucket/conteneur au début, même si le point de terminaison le contient déjà. Par défaut : `false`. Définissez cette valeur sur `true` pour les catalogues qui renvoient des chemins sans le bucket et nécessitent son ajout lors de l’étape de construction de l’URL (chemins de type Polaris). |

## Exemples

Consultez les sections ci-dessous pour voir des exemples d'utilisation du moteur `DataLakeCatalog` :

* [Unity Catalog](/fr/guides/use-cases/data-warehousing/unity-catalog)
* [Glue Catalog](/fr/guides/use-cases/data-warehousing/glue-catalog)
* Catalog OneLake
  Peut être utilisé en activant `allow_database_iceberg`.

```sql theme={null}
CREATE DATABASE database_name
ENGINE = DataLakeCatalog(catalog_endpoint)
SETTINGS
    catalog_type = 'onelake',
    warehouse = warehouse,
    onelake_tenant_id = tenant_id,
    oauth_server_uri = server_uri,
    auth_scope = auth_scope,
    onelake_client_id = client_id,
    onelake_client_secret = client_secret;
SHOW TABLES IN database_name;
SELECT count() from database_name.table_name;
```

Pour vous authentifier sans partager de secret client, définissez `onelake_bearer_token` sur un Bearer jeton obtenu au préalable
(limité à [https://storage.azure.com](https://storage.azure.com)) au lieu de
`onelake_client_id`/`onelake_client_secret`. ClickHouse ne renouvelle pas le jeton ; la
base de données doit donc être recréée après son expiration.
