Клиент ClickHouse для C#
Официальный C# клиент для подключения к ClickHouse. Исходный код клиента доступен в репозитории GitHub. Изначально разработан Олегом В. Козлюком.
Руководство по миграции
- Обновите
.csprojс именемClickHouse.Driverи последней версией пакета. - Обновите ваш код, чтобы использовать новое пространство имен и классы
ClickHouse.Driver.
Поддерживаемые версии .NET
ClickHouse.Driver поддерживает следующие версии .NET:
- .NET Framework 4.6.2
- .NET Framework 4.8
- .NET Standard 2.1
- .NET 6.0
- .NET 8.0
- .NET 9.0
Установка
Установите пакет из NuGet:
Или с помощью Диспетчера пакетов NuGet:
Использование
Создание подключения
Создайте соединение, используя строку подключения:
Создание таблицы
Создайте таблицу, используя стандартный SQL синтаксис:
Вставка данных
Вставляйте данные, используя параметризованные запросы:
Пакетная вставка
Выполнение SELECT запросов
Выполняйте SELECT запросы и обрабатывайте результаты:
Сырой поток
Поддерживаемые типы данных
ClickHouse.Driver поддерживает следующие типы данных ClickHouse:
Булевый тип
Bool(bool)
Числовые типы:
Int8(sbyte)Int16(short)Int32(int)Int64(long)Int128(BigInteger)Int256(BigInteger)UInt8(byte)UInt16(ushort)UInt32(uint)UInt64(ulong)UInt128(BigInteger)UInt256(BigInteger)Float32(float)Float64(double)Decimal(decimal)Decimal32(decimal)Decimal64(decimal)Decimal256(BigDecimal)
Строковые типы
String(string)FixedString(string)
Типы даты и времени
Date(DateTime)Date32(DateTime)DateTime(DateTime)DateTime32(DateTime)DateTime64(DateTime)
Сетевые типы
IPv4(IPAddress)IPv6(IPAddress)
Гео типы
Point(Tuple)Ring(Array of Points)Polygon(Array of Rings)
Сложные типы
Array(Array of any type)Tuple(Tuple of any types)Nullable(Nullable version of any type)
Работа с DateTime
ClickHouse.Driver пытается правильно обрабатывать часовые пояса и свойство DateTime.Kind. В частности:
Значения DateTime возвращаются в формате UTC. Пользователь может затем конвертировать их самостоятельно или использовать метод ToLocalTime() на экземпляре DateTime.
При вставке значения DateTime обрабатываются следующим образом:
- UTC
DateTimeвставляются как есть, потому что ClickHouse хранит их в UTC внутренне - Локальные
DateTimeконвертируются в UTC в соответствии с настройками часового пояса пользователя - Неуказанные
DateTimeсчитаются находящимися в часовом поясе целевой колонки, и следовательно, конвертируются в UTC в соответствии с этим часовым поясом