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

> État de l'adaptateur ClickHouse dans dbt OSS, dbt v2 et la plateforme dbt

# dbt OSS, v2 et Platform (bêta)

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}>
                <span>Beta</span>
            </a>;
  }
  return <a href="https://clickhouse.com/docs/reference/settings/beta-and-experimental-features#beta-features" className="betaBadge">
            <span>Fonctionnalité en bêta</span>
        </a>;
};

export const ClickHouseSupportedBadge = () => {
  return <div className="ClickHouseSupportedBadge">
            <div className="ClickHouseSupportedIcon">
                <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                    <path d="M1.30762 1.39073C1.30762 1.3103 1.37465 1.22986 1.46849 1.22986H2.64824C2.72868 1.22986 2.80912 1.29689 2.80912 1.39073V14.4886C2.80912 14.5691 2.74209 14.6495 2.64824 14.6495H1.46849C1.38805 14.6495 1.30762 14.5825 1.30762 14.4886V1.39073Z" fill="currentColor" />
                    <path d="M4.2832 1.39073C4.2832 1.3103 4.35023 1.22986 4.44408 1.22986H5.62383C5.70427 1.22986 5.7847 1.29689 5.7847 1.39073V14.4886C5.7847 14.5691 5.71767 14.6495 5.62383 14.6495H4.44408C4.36364 14.6495 4.2832 14.5825 4.2832 14.4886V1.39073Z" fill="currentColor" />
                    <path d="M7.25977 1.39073C7.25977 1.3103 7.3268 1.22986 7.42064 1.22986H8.60039C8.68083 1.22986 8.76127 1.29689 8.76127 1.39073V14.4886C8.76127 14.5691 8.69423 14.6495 8.60039 14.6495H7.42064C7.3402 14.6495 7.25977 14.5825 7.25977 14.4886V1.39073Z" fill="currentColor" />
                    <path d="M10.2354 1.39073C10.2354 1.3103 10.3024 1.22986 10.3962 1.22986H11.576C11.6564 1.22986 11.7369 1.29689 11.7369 1.39073V14.4886C11.7369 14.5691 11.6698 14.6495 11.576 14.6495H10.3962C10.3158 14.6495 10.2354 14.5825 10.2354 14.4886V1.39073Z" fill="currentColor" />
                    <path d="M13.2256 6.6057C13.2256 6.52526 13.2926 6.44482 13.3865 6.44482H14.5662C14.6466 6.44482 14.7271 6.51186 14.7271 6.6057V9.27354C14.7271 9.35398 14.6601 9.43442 14.5662 9.43442H13.3865C13.306 9.43442 13.2256 9.36739 13.2256 9.27354V6.6057Z" fill="currentColor" />
                </svg>
            </div>
            Compatible avec ClickHouse
        </div>;
};

<ClickHouseSupportedBadge />

<BetaBadge link="https://github.com/ClickHouse/dbt-clickhouse/issues/660" />

dbt est en cours de refonte sur un nouveau moteur, et ClickHouse en fait partie dès le départ. ClickHouse fonctionne désormais avec le nouveau moteur dbt écrit en Rust, aussi bien dans dbt OSS que dans dbt v2, et vous pouvez pour la première fois vous connecter à ClickHouse depuis la plateforme dbt. Votre projet ne change pas : les mêmes modèles, tests et profils qui s'exécutent aujourd'hui sur dbt Core 1.x s'exécutent sur le nouveau moteur ; seul le binaire diffère.

ClickHouse est le premier adaptateur communautaire disponible sur dbt OSS, dbt v2 et la plateforme dbt. Les adaptateurs propriétaires de dbt sont lancés en même temps que le nôtre ; nous sommes les premiers en dehors de dbt Labs. L'adaptateur Python pour dbt Core 1.x, `dbt-clickhouse`, ne disparaît pas : nous le maintenons à jour au fil des releases dbt 1.x et assurons la maintenance des deux adaptateurs in parallel.

<Warning>
  **Pas prêt pour la production.** L'adaptateur ClickHouse pour dbt OSS et dbt v2, ainsi que la connexion à la plateforme dbt, ne sont pas encore generally available (GA). Ne les utilisez que dans des projets de development ou de staging.
</Warning>

<Note>
  **La documentation dbt Core 1.x s'applique également à dbt OSS et dbt v2.** L'adaptateur se comporte de la même manière sur les deux moteurs : les profils, configurations de modèles, materialization et macros décrits dans les autres pages dbt fonctionnent sans modification sur dbt OSS, dbt v2 et la plateforme dbt. Les exceptions sont documentées dans le tableau [parity v1 vs v2](#parity) ci-dessous.
</Note>

<Note>
  **dbt OSS** est le build open-source (Apache 2.0) du moteur v2. Consultez [terminologie et availability](#terminology) pour comprendre son lien avec dbt v2 et la plateforme dbt.
</Note>

L'état en temps réel est suivi dans [ClickHouse/dbt-clickhouse#660](https://github.com/ClickHouse/dbt-clickhouse/issues/660) (parity de la v2 avec la v1, un sous-issue par domaine) et [ClickHouse/dbt-clickhouse#555](https://github.com/ClickHouse/dbt-clickhouse/issues/555) (dbt v2).

<h4 id="request-access">
  Essayer ClickHouse dans la plateforme dbt
</h4>

Si vous souhaitez tester la bêta privée, inscrivez-vous via le [formulaire de bêta privée de dbt Labs](https://docs.google.com/forms/d/e/1FAIpQLScjHwRchnKarq_RpNM7hATjphNFxqBEePmAwRtSpMWG1snGHA/viewform). Ce formulaire appartient à dbt Labs : les informations que vous transmettez sont donc envoyées à dbt Labs, et non à ClickHouse. Une fois l'accès activé, suivez la page [Connect ClickHouse](https://docs.getdbt.com/docs/platform/connect-data-platform/connect-clickhouse) de la documentation dbt pour configurer la connexion.

<h2 id="terminology">
  Terminologie et disponibilité
</h2>

dbt existe sous plusieurs formes, et un même adapter peut fonctionner dans plusieurs d'entre elles. Ce tableau présente chaque nom ainsi que le niveau actuel de prise en charge de ClickHouse.

| Terme | De quoi il s'agit | Statut ClickHouse et comment l'obtenir |
| - | - | - |
| **dbt Core 1.x** | Le moteur dbt écrit en Python, open source (Apache 2.0). Notre adapter est `dbt-clickhouse`, maintenu au sein de l'[organisation GitHub ClickHouse](https://github.com/ClickHouse/dbt-clickhouse) et installé aux côtés de `dbt-core`. | **GA, maintenu.** Continue de recevoir des releases en parallèle de dbt v2. |
| **dbt OSS** | Réécriture complète du moteur dbt en Rust, open source (Apache 2.0). Cette nouvelle version reprend toutes les fonctionnalités de la v1 et y ajoute plusieurs améliorations de performance. | **Bêta.** Consultez le [guide de mise à niveau vers dbt v2](https://docs.getdbt.com/docs/dbt-versions/core-upgrade/upgrading-to-v2) et la [page de configuration ClickHouse pour la v2](https://docs.getdbt.com/docs/local/connect-data-platform/clickhouse-setup?version=2) dans la documentation dbt. L'adapter ClickHouse est intégré au binary dbt ; aucun paquet distinct n'est à installer. |
| **dbt v2** | dbt OSS auquel s'ajoutent des fonctionnalités supplémentaires de dbt Labs : compréhension du SQL, analyse statique, LSP, une extension VS Code et la column awareness. Code source fermé, sous licence [dbt Product Licensing Agreement](https://www.getdbt.com/dbt-fusion-engine-license-agreement). | **Bêta.** L'adapter fonctionne avec le binary v2, mais les nouvelles fonctionnalités SQL ne sont pas encore disponibles pour ClickHouse. |
| **plateforme dbt** | dbt hébergé, anciennement dbt Cloud : IDE Studio, jobs planifiés, environnements, Catalog, Semantic Layer. La plateforme n'exécute que dbt v2 : utiliser ClickHouse sur la plateforme revient donc à utiliser l'adapter v2. | **Bêta privée.** Voir [comment demander l'access](#request-access). Configuration : [Connect ClickHouse](https://docs.getdbt.com/docs/platform/connect-data-platform/connect-clickhouse) dans la documentation dbt. |

<h2 id="beta-status">
  Statut bêta
</h2>

Nous évaluons l'adaptateur dbt v2 à l'aide de la test suite d'intégration dbt Core 1.x de `dbt-clickhouse`. Le statut bêta signifie que les workflows dbt essentiels et l'ensemble des fonctionnalités de ClickHouse Cloud fonctionnent dans les limites documentées ; la parité complète avec la v1 et la prise en charge des clusters self-managed viendront ensuite.

**À ce jour,** l'adapter réussit plus de 81 % de la suite v1 complète et 92 % des tests applicables à ClickHouse Cloud. Toutes les materializations sont à parité (`view`, `table`, `incremental`, `materialized_view`, `dictionary`, `snapshot`, `seed`, `ephemeral`), avec l'ensemble complet des configs de table, des contrats de model, des tests de données et unit tests, la persistance de la documentation, `clickhouse_s3source()` et les settings de connection de dbt Core 1.x. Les échecs restants sont liés aux travaux sur les clusters self-managed listés ci-dessous, ainsi qu'à quelques différences côté engine. Consultez [parité v1 vs v2](#parity) pour un aperçu fonctionnalité par fonctionnalité.

**Prochaines étapes** : le DDL `ON CLUSTER` et les Distributed materializations pour les clusters self-managed, les grants, `dbt clone`, `dbt source freshness` à partir des metadata de table, la correction des bogues restants et la réussite de l'intégralité de la test suite v1 afin de garantir une parité complète. L'avancement de ces travaux est suivi dans [ClickHouse/dbt-clickhouse#660](https://github.com/ClickHouse/dbt-clickhouse/issues/660), avec une sous-issue par domaine.

La GA figure dans notre roadmap et arrivera prochainement. Nous mettrons la documentation à jour dès qu'elle sera disponible.

<h3 id="out-of-scope">
  Hors périmètre pour la bêta
</h3>

Outre les écarts de parité avec la v1 listés ci-dessous, quelques fonctionnalités propres à la v2 sortent du périmètre actuel, mais arriveront prochainement :

* **Semantic Layer / MetricFlow.** La prise en charge de ClickHouse n'a pas encore été ajoutée. Suivi dans [dbt-labs/metricflow#2124](https://github.com/dbt-labs/metricflow/pull/2124).
* **L'intelligence ClickHouse SQL dans dbt v2** (validation tenant compte du dialecte, analyse statique, LSP, prise en compte des colonnes dans l'extension VS Code). L'adapter fonctionne aujourd'hui avec le binary dbt v2, mais n'intègre pas encore ces fonctionnalités. D'ici là, l'analyse statique est forcée à `off` pour les projets ClickHouse et l'engine n'écrit aucune traçabilité au niveau des colonnes. Suivi dans [#736](https://github.com/ClickHouse/dbt-clickhouse/issues/736).
* **Des méthodes d'authentification supplémentaires**, au-delà du username et du password, dans la plateforme dbt.

<h2 id="parity">
  Parité v1 / v2
</h2>

Les tableaux ci-dessous comparent les fonctionnalités disponibles dans `dbt-clickhouse` (v1) avec leur statut dans l'adapter dbt v2. Toutes les fonctionnalités listées sont prises en charge en v1, sauf mention contraire dans les notes ; la colonne de statut concerne dbt v2 et s'applique également à dbt OSS. L'évolution de chaque élément en attente est suivie dans [ClickHouse/dbt-clickhouse#660](https://github.com/ClickHouse/dbt-clickhouse/issues/660).

<Badge color="green">Supported</Badge> déjà fonctionnel · <Badge color="yellow">Partial</Badge> fonctionne avec des limitations · <Badge color="red">Not yet</Badge> implémentation en attente.

### Materializations

| Fonctionnalité | Rôle | dbt v2 | Notes |
| - | - | - | - |
| `view` | Vue dbt standard. | <Badge color="green">Pris en charge</Badge> | |
| `table` | Reconstruction complète avec options de moteur et de DDL. | <Badge color="green">Pris en charge</Badge> | |
| `incremental` | Ajoute ou fusionne de nouvelles lignes. | <Badge color="green">Pris en charge</Badge> | |
| `materialized_view` | Vue matérialisée ClickHouse qui transforme les données à l'insertion. | <Badge color="green">Pris en charge</Badge> | |
| `dictionary` | Dictionnaire ClickHouse pour les recherches par clé et les jointures. | <Badge color="green">Pris en charge</Badge> | |
| `snapshot` | Dimensions à évolution lente de type 2. | <Badge color="green">Pris en charge</Badge> | |
| `seed` | Charge des fichiers CSV sous forme de tables. | <Badge color="green">Pris en charge</Badge> | Les types de colonnes numériques sont inférés comme `Int64`/`Float64` au lieu de `Int32`/`Float32` ; utilisez `column_types` pour les définir explicitement. |
| `ephemeral` | CTE intégrée, aucun objet créé. | <Badge color="green">Pris en charge</Badge> | |
| `distributed_table`, `distributed_incremental` | Tables partitionnées derrière un moteur Distributed. | <Badge color="red">Pas encore</Badge> | |

### Configuration des modèles

| Fonctionnalité | Rôle | dbt v2 | Remarques |
| - | - | - | - |
| Moteur, `ORDER BY`, `PARTITION BY`, `PRIMARY KEY` | Contrôles DDL fondamentaux de MergeTree. | <Badge color="green">Pris en charge</Badge> | |
| TTL | Expiration des lignes et des colonnes. | <Badge color="green">Pris en charge</Badge> | |
| Paramètres de table et de requête | `SETTINGS` par modèle sur le DDL et sur l'insert. | <Badge color="green">Pris en charge</Badge> | |
| Projections, index, `sql_header` | Structures secondaires et SQL de préfixe. | <Badge color="green">Pris en charge</Badge> | |
| Contrats et contraintes de modèle | Types de colonnes et contraintes appliqués lors du build. | <Badge color="green">Pris en charge</Badge> | |
| Évolution de schéma sur les modèles incrémentaux | `on_schema_change` ajoute ou synchronise les colonnes. | <Badge color="green">Pris en charge</Badge> | |
| `codec` et `ttl` de colonne | Compression et expiration par colonne. | <Badge color="green">Pris en charge</Badge> | |

### Tests et documentation

| Fonctionnalité | Rôle | dbt v2 | Notes |
| - | - | - | - |
| Tests de données | Tests génériques et singuliers. | <Badge color="green">Pris en charge</Badge> | |
| Tests unitaires | Logique du modèle testée sur des données de fixtures. | <Badge color="green">Pris en charge</Badge> | |
| Persistance de la documentation | Descriptions écrites sous forme de commentaires ClickHouse. | <Badge color="yellow">Partiel</Badge> | Les descriptions contenant `;` échouent. |
| Génération du catalogue et de la documentation | Métadonnées de colonnes pour le site de documentation. | <Badge color="green">Pris en charge</Badge> | |
| Traçabilité au niveau des colonnes | Suivre les colonnes à travers le DAG. | <Badge color="yellow">Partiel</Badge> | Nouveauté de la v2 via le compilateur SQL, indisponible en v1. La traçabilité de la plateforme dbt ne s'affiche que si la mise entre guillemets des identifiants est désactivée dans `dbt_project.yml` ; la traçabilité côté moteur nécessite le dialecte ClickHouse SQL. |

### Cluster et Cloud

| Fonctionnalité | Rôle | dbt v2 | Notes |
| - | - | - | - |
| ClickHouse Cloud | Configuration bêta recommandée. | <Badge color="green">Pris en charge</Badge> | |
| Cohérence multi-répliques | `select_sequential_consistency` et paramètres de lecture-après-écriture associés. | <Badge color="green">Pris en charge</Badge> | |
| `ON CLUSTER` et engines répliqués | Propagation des DDL sur les clusters self-managed. | <Badge color="red">Pas encore</Badge> | Les clusters multi-nœuds de ClickHouse Cloud sont pris en charge. Les autres configurations nécessitant `ON CLUSTER` pour la propagation des DDL ne le sont pas encore. Pour les déploiements self-managed, effectuez vos tests uniquement sur des clusters à nœud unique. |
| `EXCHANGE TABLES` | Swap atomique lors de la reconstruction. | <Badge color="green">Pris en charge</Badge> | |
| Paramètres de connexion personnalisés | `custom_settings` au niveau du profile. | <Badge color="green">Pris en charge</Badge> | |
| Version du ClickHouse server | Version minimale du serveur. | <Badge color="green">Pris en charge</Badge> | 25.3+ sur les deux engines. La lecture des colonnes `UUID` sur v2 nécessite 26.7+ (les serveurs plus anciens ne peuvent pas convertir `UUID` en Arrow). |

### Macros et opérations

| Fonctionnalité | Rôle | dbt v2 | Notes |
| - | - | - | - |
| Macro de table function S3 | `clickhouse_s3source()` lit directement depuis S3 dans un model. | <Badge color="green">Prise en charge</Badge> | |
| Macros inter-bases de données | Helpers tels que ceux de `dbt-utils`. | <Badge color="green">Prise en charge</Badge> | |
| Grants | Statements `GRANT` issus de la configuration du model. | <Badge color="red">Pas encore</Badge> | |
| `dbt clone` | `CLONE AS` zero-copy entre environnements. | <Badge color="red">Pas encore</Badge> | |
| Query id dans les résultats d'exécution | `query_id` dans `adapter_response` pour la corrélation avec `system.query_log`. | <Badge color="red">Pas encore</Badge> | |
| `query-comment` | Configuration du comment de requête. | <Badge color="red">Pas encore</Badge> | `query-comment: null` n'est pas encore pris en compte. |
| Intégration de catalog (Iceberg) | Materialize vers des external catalogs. | <Badge color="red">Pas encore</Badge> | Absent de la v1 également ; contournements documentés. |

### Connectivité et authentification

| Fonctionnalité | Rôle | dbt v2 | Notes |
| - | - | - | - |
| Protocol | Mode de communication entre dbt et ClickHouse. | <Badge color="green">Supported</Badge> | ADBC (Arrow sur HTTP) en v2 ; HTTP et native en v1. |
| Nom d'utilisateur et mot de passe, TLS | Authentification standard. | <Badge color="green">Supported</Badge> | |
| Certificats client mTLS | `client_cert`, `client_cert_key`, `verify`. | <Badge color="red">Not yet</Badge> | Travail côté driver ; les keys sont acceptées mais ignorées. |
| Options du HTTP client | `connect_timeout`, `send_receive_timeout`, `sync_request_timeout`, `compress_block_size`, `server_host_name`. | <Badge color="red">Not yet</Badge> | Acceptées mais ignorées ; `server_host_name` n'est pas disponible. |
