Skip to main content
Les clients C# officiels se connectent à ClickHouse via HTTP ou le protocole TCP natif. Les deux clients sont disponibles dans le paquet NuGet ClickHouse.Driver.

HTTP

Le client HTTP fournit l’API ClickHouseClient de haut niveau et thread-safe, ainsi que l’API ADO.NET utilisée par les ORM. Il cible .NET 6.0 et versions ultérieures, et est recommandé pour la plupart des applications. Utilisez le client HTTP si vous avez besoin :
  • d’ADO.NET ou d’un ORM ;
  • d’entrées et de sorties aux formats CSV, JSONEachRow, Parquet ou en flux brut ;
  • d’une authentification bearer ou d’en-têtes HTTP personnalisés ;
  • d’une résolution personnalisée des types de paramètres, d’un formatage personnalisé des paramètres ou d’une conversion personnalisée à la lecture ;
  • d’une base de données ou d’un rôle spécifique à chaque requête ;
  • de meilleures performances avec JSON. Le client TCP ne peut transférer les valeurs JSON que sous forme de texte.
Consultez la documentation du client HTTP.

TCP natif

Le client TCP natif est expérimental et son API publique est susceptible d’évoluer dans une prochaine version. Il fournit l’API ClickHouseTcpClient pour la lecture de blocs en colonnes, la compression native, les connexions mutualisées et les sessions épinglées. Il cible .NET 8.0 et les versions ultérieures. Utilisez le client TCP natif lorsque vous avez besoin :
  • de meilleures performances, en particulier lors du traitement de données en colonnes ;
  • de blocs de données en colonnes ;
  • de connexions persistantes ;
  • de sessions épinglées via OpenSessionAsync ;
  • de fonctions de rappel pour la progression, le profil, le journal, les totaux et les valeurs extrêmes ;
  • de la propagation du contexte de trace W3C vers ClickHouse.
Consultez la documentation du client TCP natif.