Skip to main content

Простой и безопасный интерфейс для работы с ClickHouse

Project description

ClickHouse Connector Package

Простой и безопасный интерфейс для работы с ClickHouse.

Описание

Пакет предоставляет удобный интерфейс для работы с ClickHouse через различные драйверы. Основной класс ClickhouseManager инкапсулирует всю логику работы с базой данных, включая валидацию, создание таблиц и выполнение запросов.

Установка

Стандартная установка

pip install clickhouse-manager

Установка с дополнительными зависимостями для разработки

pip install clickhouse-manager[dev]

Решение проблем с установкой

Если у вас возникают проблемы с установкой clickhouse-driver, это может быть связано с:

  1. Отсутствием компилятора C/C++:

    • Windows: Установите Visual Studio Build Tools
    • macOS: Установите Xcode Command Line Tools: xcode-select --install
    • Linux: Установите build-essential: sudo apt-get install build-essential
  2. Несовместимостью архитектуры:

    • Убедитесь, что используете совместимую версию Python
    • Попробуйте установить pre-compiled wheel: pip install --only-binary=all clickhouse-driver
  3. Проблемы с зависимостями:

    # Обновите pip и setuptools
    pip install --upgrade pip setuptools wheel
    
    # Попробуйте установить зависимости по отдельности
    pip install pandas clickhouse-connect
    pip install clickhouse-driver
    pip install clickhouse-manager
    
  4. Альтернативная установка:

    # Установка из исходников
    pip install --no-binary=clickhouse-driver clickhouse-driver
    
    # Или установка через conda (если доступно)
    conda install -c conda-forge clickhouse-driver
    

Основные классы

ClickhouseManager

Основной класс для работы с ClickHouse. Управляет подключением, валидацией и выполнением операций.

Методы

  • __init__(host, port, username, password, database, secure, verify, connector_type) - инициализация с параметрами подключения
  • query_to_df(query) - выполнение SELECT запроса с возвратом DataFrame
  • execute_command(command) - выполнение DDL/DML команд
  • check_table_if_exists(schema, name) - проверка существования таблицы
  • get_table_column(schema, name) - получение информации о колонках таблицы
  • get_table_info(schema, name) - получение полной информации о таблице
  • create_table(schema, name, columns, order_by, ...) - создание таблицы
  • create_table_as_select(query, schema, name, order_by, ...) - создание таблицы на основе SELECT
  • drop_table(schema, name, cluster, if_exists) - удаление таблицы

IdentifierValidator

Класс для валидации идентификаторов ClickHouse (имена таблиц, схем, колонок).

Методы

  • validate_identifier(identifier) - проверка валидности идентификатора
  • validate_table_name(name) - валидация имени таблицы
  • validate_schema_name(name) - валидация имени схемы
  • validate_column_name(name) - валидация имени колонки
  • validate_table_params(schema, name) - валидация параметров таблицы
  • validate_columns(columns) - валидация словаря колонок

ConnectorFactory

Фабрика для создания коннекторов различных типов.

Методы

  • create(connector_type, host, port, username, password, database, secure, verify) - создание коннектора
  • get_available_types() - получение списка доступных типов

IClickhouseConnector

Базовый интерфейс для всех коннекторов.

Методы

  • execute_query(query) - выполнение SELECT запроса
  • execute_command(command) - выполнение команд
  • insert_dataframe(df, schema, table) - вставка DataFrame
  • get_query_metadata(query) - получение метаданных запроса

Поддерживаемые драйверы

  • clickhouse-connect - HTTP/HTTPS подключение
  • clickhouse-driver - Native TCP подключение

Тестирование

python3 test_clickhouse.py

Поддержка

Если у вас возникают проблемы с установкой или использованием пакета, создайте issue в репозитории проекта или обратитесь к автору: tiyanich.bogdan@gmail.com

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

clickhouse_manager-0.1.3.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

clickhouse_manager-0.1.3-py3-none-any.whl (16.4 kB view details)

Uploaded Python 3

File details

Details for the file clickhouse_manager-0.1.3.tar.gz.

File metadata

  • Download URL: clickhouse_manager-0.1.3.tar.gz
  • Upload date:
  • Size: 13.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for clickhouse_manager-0.1.3.tar.gz
Algorithm Hash digest
SHA256 303a63e5cea2dbc7d993950ae701db4a50bbb63c506fbf8088dd109c07cbdd4e
MD5 2ef96107fc496319c53f16a833cd6572
BLAKE2b-256 ef1bc5702b8e10cb87e5f786f65e0b749025d473f2f7959d6532f052bc88e476

See more details on using hashes here.

File details

Details for the file clickhouse_manager-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for clickhouse_manager-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 22e9501d21503134adee6175dbe505bd5c21b21898bcd5e9c09e8359f1f4325a
MD5 e7cda0ba311abe948e7dbd800c2335f6
BLAKE2b-256 bcf078c42e77dc381f435a0addf4cbdf4b07e78248a77fbe25c4e7b9abd99eb2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page