Awesome ClickHouse.Net

Octonica/ClickHouseClient

⭐ 167 C# repository created 2020-04-09

Octonica/ClickHouseClient is a .NET Core driver designed specifically for ClickHouse, implemented as an ADO.NET DbProvider API. This driver facilitates interaction with ClickHouse databases by supporting a wide range of ADO.NET features, although it excludes some like transaction support. It uses the binary protocol for communication and supports compression for both sending and receiving data, ensuring efficient data transfer. The driver handles timezones and supports most ClickHouse column types, with ongoing development for aggregating types. It fully supports asynchronous operations in the .NET ADO.NET API, enabling scalable and responsive applications. The implementation avoids unsafe code, enhancing security and stability, and it has been tested and used in production environments. The driver integrates well with popular .NET libraries such as Dapper and Linq To DB, providing developers with familiar tools for data access and manipulation. It supports modern C# features like named tuples and records, making it compatible with contemporary coding styles. The connection to ClickHouse is managed through a connection string that specifies host, port, database, and password, with a builder class available for programmatic construction of connection strings. Beyond standard ADO.NET functionality, Octonica/ClickHouseClient offers an extended API with a proprietary ClickHouseColumnWriter for advanced data manipulation. This allows for efficient bulk inserts and other operations not covered by the standard API. The project includes examples demonstrating asynchronous SELECT queries, parameterized inserts, and bulk data insertion using the column writer. To build the driver, .NET SDK 5.0 or higher is required. Overall, Octonica/ClickHouseClient provides a robust, efficient, and modern .NET Core driver solution for developers working with ClickHouse databases, supporting both basic and advanced database operations with a focus on performance and ease of use.

https://github.com/Octonica/ClickHouseClient

.net-core.net-sdk-5.0ado.netadonetasync-apibinary-protocolbulk-insertc#-named-tuplesclickhouseclickhousecolumnwritercolumn-typescompressionconnection-stringdapperdotnetcoredriverlinq-to-dbrecordstimezones

Also in .Net

DarkWanderer/ClickHouse.Client

.NET client library for ClickHouse providing high-throughput, broad type support, and ADO.NET compliance for efficient big data processing.