ClickHouse.Driver
0.9.0
dotnet add package ClickHouse.Driver --version 0.9.0
NuGet\Install-Package ClickHouse.Driver -Version 0.9.0
<PackageReference Include="ClickHouse.Driver" Version="0.9.0" />
<PackageVersion Include="ClickHouse.Driver" Version="0.9.0" />
<PackageReference Include="ClickHouse.Driver" />
paket add ClickHouse.Driver --version 0.9.0
#r "nuget: ClickHouse.Driver, 0.9.0"
#:package ClickHouse.Driver@0.9.0
#addin nuget:?package=ClickHouse.Driver&version=0.9.0
#tool nuget:?package=ClickHouse.Driver&version=0.9.0
ClickHouse C# client
About
Official C#/ADO.NET client for ClickHouse.
- High performance
- Supports bulk insertion
- Uses compressed binary protocol over HTTP(S)
- Available for .NET Core/Framework/Standard
Documentation
See the ClickHouse website for full documentation.
Usage examples
We have a wide range of examples, aiming to cover typical scenarios of client usage.
ClickHouse Versions
The supported versions ofthe ClickHouse database server coincide with the versions currently receiving security updates.
For the list of currently supported versions, see here.
Contact us
If you have any questions or need help, feel free to reach out to us in the Community Slack or via GitHub issues.
Contributing
Contributions are welcome and highly appreciated! Check out our contributing guide.
Acknowledgements
Originally created by Oleg V. Kozlyuk
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| .NET Framework | net462 is compatible. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 is compatible. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.6.2
- Microsoft.Bcl.HashCode (>= 6.0.0)
- Microsoft.Extensions.Http (>= 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Microsoft.IO.RecyclableMemoryStream (>= 3.0.1)
- NodaTime (>= 3.2.2)
- System.Net.Http (>= 4.3.4)
- System.Text.Json (>= 9.0.10)
-
.NETFramework 4.8
- Microsoft.Bcl.HashCode (>= 6.0.0)
- Microsoft.Extensions.Http (>= 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Microsoft.IO.RecyclableMemoryStream (>= 3.0.1)
- NodaTime (>= 3.2.2)
- System.Net.Http (>= 4.3.4)
- System.Text.Json (>= 9.0.10)
-
.NETStandard 2.1
- Microsoft.Extensions.Http (>= 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Microsoft.IO.RecyclableMemoryStream (>= 3.0.1)
- NodaTime (>= 3.2.2)
- System.Text.Json (>= 9.0.10)
-
net10.0
- Microsoft.Extensions.Http (>= 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Microsoft.IO.RecyclableMemoryStream (>= 3.0.1)
- NodaTime (>= 3.2.2)
-
net6.0
- Microsoft.Extensions.Http (>= 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Microsoft.IO.RecyclableMemoryStream (>= 3.0.1)
- NodaTime (>= 3.2.2)
- System.Text.Json (>= 9.0.10)
-
net8.0
- Microsoft.Extensions.Http (>= 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Microsoft.IO.RecyclableMemoryStream (>= 3.0.1)
- NodaTime (>= 3.2.2)
- System.Text.Json (>= 9.0.10)
-
net9.0
- Microsoft.Extensions.Http (>= 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Microsoft.IO.RecyclableMemoryStream (>= 3.0.1)
- NodaTime (>= 3.2.2)
NuGet packages (6)
Showing the top 5 NuGet packages that depend on ClickHouse.Driver:
| Package | Downloads |
|---|---|
|
EntityFrameworkCore.ClickHouse
ClickHouse provider for Entity Framework Core. |
|
|
FreeSql.Provider.ClickHouse
FreeSql 数据库实现,基于 ClickHouse.Client Ado.net |
|
|
linq2db.LINQPad
Supported databases: IBM DB2 LUW/zOS, Firebird, IBM Informix, Microsoft Access, Microsoft Sql Server (+Azure), Microsoft Sql Server Compact, MySql, MariaDB, Oracle, PostgreSQL, SQLite, SAP HANA, SAP/Sybase ASE, ClickHouse. |
|
|
ClickHouse.Facades
Raw SQL migrations and contexts for ClickHouse |
|
|
Sitko.Core.ClickHouse
Sitko.Core is a set of libraries to help build .NET Core applications fast |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on ClickHouse.Driver:
| Repository | Stars |
|---|---|
|
linq2db/linq2db
Linq to database provider.
|
v0.9.0
---
**Breaking Changes:**
* FixedString is now returned as byte[] rather than String. FixedStrings are not necessarily valid UTF-8 strings, and the string transformation caused loss of information in some cases. Use Encoding.UTF8.GetString() on the resulting byte[] array to emulate the old behavior. String can still be used as a parameter or when inserting using BulkCopy into a FixedString column. When part of a json object, FixedString is still returned as a string.
* Removed obsolete MySQL compatibility mapping TIME -> Int64.
* Json serialization of bool arrays now uses the Boolean type instead of UInt8 (it is now consistent with how bool values outside arrays were handled).
* GEOMETRY is no longer an alias for String.
**New Features/Improvements:**
* Sessions can now be used with custom HttpClient or HttpClientFactory. Previously this combination was not allowed. Note that when sessions are enabled, ClickHouseConnection will allow only one request at a time, and responses are fully buffered before returning to ensure proper request serialization.
* Added support for BFloat16. It is converted to and from a 32-bit float.
* Added support for Time and Time64, which are converted to and from TimeSpan. The types are available since ClickHouse 25.6 and using them requires the enable_time_time64_type flag to be set.
* The Dynamic type now offers full support for all underlying types.
* Added support for LineString and MultiLineString geo types.
* Added support for the Geometry type, which can hold any geo subtype (Point, Ring, LineString, Polygon, MultiLineString, MultiPolygon). Available since ClickHouse 25.11. Requires allow_suspicious_variant_types to be set to 1.
* Json support has been improved in many ways:
* Now supports parsing Json that includes Maps; they are read into JsonObjects.
* Added support for decoding BigInteger types, UUID, IPv4, IPv6, and ClickHouseDecimal types (they are handled as strings).
* Expanded binary parsing to cover all types.
* Improved handling of numeric types when writing Json using BulkCopy: now properly detects and preserves Int32/In64 in addition to double (previously all numeric types were handled as double).
* Parsing null values in arrays is now handled properly.
* ClickHouseConnection.ConnectionString can now be set after creating the connection, to support cases where passing the connection string to the constructor is not possible.
* ClickHouseConnection.CreateCommand() now has an optional argument for the command text.
* Fixed a NullReferenceException when adding a parameter with null value and no provided type. The driver now simply sends '\N' (null value special character) when encountering this scenario.
**Bug Fixes:**
* Fixed a bug where serializing to json with an array of bools with both true and false elements would fail.