nativelib¶
Библиотека для работы с Native форматом ClickHouse, написанная на Cython.
Установка модуля nativelib без установки dbhose-airflow¶
pip install nativelib
Назначение:
Преобразование данных между ClickHouse Native Format и Python структурами (pandas.DataFrame, polars.DataFrame, Python типы). Оптимизирована для скорости и эффективности обработки столбцовых данных.
Особенности:
Написана на Cython для максимальной производительности
Работает с бинарным «columnar» форматом ClickHouse
Поддерживает двунаправленную конвертацию (чтение/запись)
Интеграция с pandas и polars DataFrame
Поддерживаемые типы данных ClickHouse:
Целочисленные (UInt8-256, Int8-256)
Вещественные (Float32/64), Decimal
Строковые (String, FixedString)
Временные (Date, DateTime, Time)
Специальные (Enum, Bool, UUID, IPv4/6)
Составные (Array, LowCardinality, Nullable)
Неподдерживаемые типы (на данный момент):
Tuple
Map
Variant
AggregateFunction
Geometry типы
Nested
Dynamic
JSON
другие сложные структуры
Типы данных ClickHouse ↔ Python в виде таблицы:
Тип ClickHouse |
Чтение |
Запись |
Тип Python (Чтение/Запись) |
|---|---|---|---|
Целочисленные |
|||
UInt8 |
|
||
UInt16 |
|
||
UInt32 |
|
||
UInt64 |
|
||
UInt128 |
|
||
UInt256 |
|
||
Int8 |
|
||
Int16 |
|
||
Int32 |
|
||
Int64 |
|
||
Int128 |
|
||
Int256 |
|
||
Вещественные |
|||
Float32 |
|
||
Float64 |
|
||
BFloat16 |
|
||
Decimal(P, S) |
|
||
Строковые |
|||
String |
|
||
FixedString(N) |
|
||
Временные |
|||
Date |
|
||
Date32 |
|
||
DateTime |
|
||
DateTime64 |
|
||
Time |
|
||
Time64 |
|
||
Специальные |
|||
Enum |
|
||
Bool |
|
||
UUID |
|
||
IPv4 |
|
||
IPv6 |
|
||
Составные |
|||
Array(T) |
|
||
LowCardinality(T) |
|
||
Nullable(T) |
|
||
Nothing |
|
*T - любой простой тип данных из таблицы
Зависимости:
pandas>=2.1.0- для работы с DataFramepolars>=0.20.31- альтернативная обработка данныхbackports.zoneinfo==0.2.1- для Python < 3.9 (поддержка временных зон)
Производительность:
Использует эффективное columnar представление данных, избегая преобразования столбцов в строки. Подходит для быстрой генерации дампов и обмена между серверами ClickHouse.
Классы
Внутренние компоненты