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.4.tar.gz (13.6 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.4-py3-none-any.whl (16.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for clickhouse_manager-0.1.4.tar.gz
Algorithm Hash digest
SHA256 6f13cc19c17d7c93df62733179bdf93a101438d9869b2a44c48a22256733aee0
MD5 bc5485ba53e0cab6496ae75d78693d26
BLAKE2b-256 594d20d6c29ed5f1e15a00f3fd85309dda9b9805246f483be6094b3ab1875a99

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for clickhouse_manager-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 6c21707e5bc64742eb7955f792408d262eadcbddade0fbb791ceeee14b4d17d2
MD5 759ed3ec3be0989a4693b4feaf42b7b4
BLAKE2b-256 551cdc65cbb51db82e378cc0a51522041a4122e1a605da72500a2828572c61cd

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