Клиент 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 в соответствии с этим часовым поясом