Skip to main content

Упрощенная библиотека для работы с ClickHouse

Project description

ClickHouse Easy Connect IVI

Упрощенная библиотека для работы с ClickHouse базой данных.

📦 Установка

Для пользователей:

Вариант 1: Из wheel файла (рекомендуется)

pip install clickhouse_easy_connect_ivi-1.0.0-py3-none-any.whl

Вариант 2: Из архива

pip install clickhouse_easy_connect_ivi-1.0.0.tar.gz

Вариант 3: Из Git репозитория

pip install git+https://github.com/your-company/clickhouse-easy-connect-ivi.git

Для разработчиков:

git clone https://github.com/your-company/clickhouse-easy-connect-ivi.git
cd clickhouse-easy-connect-ivi
pip install -e .

🚀 Быстрый старт

Настройка подключения

ClickHouse Easy поддерживает несколько способов указания параметров подключения:

  1. Через параметры конструктора
  2. Через переменные окружения
  3. Через файл конфигурации

Использование переменных окружения (рекомендуется)

Для безопасности рекомендуется использовать переменные окружения:

export CLICKHOUSE_HOST=your_clickhouse_host
export CLICKHOUSE_PORT=8123
export CLICKHOUSE_USERNAME=your_username
export CLICKHOUSE_PASSWORD=your_password
export CLICKHOUSE_DATABASE=your_database
from clickhouse_easy import ClickHouseEasy

# Параметры будут автоматически загружены из переменных окружения
client = ClickHouseEasy()
df = client.query("SELECT * FROM your_table LIMIT 10")

Вариант 1: Прямое создание клиента

from clickhouse_easy import ClickHouseEasy

# Создание клиента с параметрами
client = ClickHouseEasy(
    host='your_clickhouse_host',
    port=8123,
    username='your_username',
    password='your_password',
    database='your_database'
)

# Выполнение запроса
df = client.query("SELECT * FROM your_table LIMIT 10")
print(df)

Вариант 2: Использование файла конфигурации

Скопируйте clickhouse_config.yaml.example в clickhouse_config.yaml и заполните своими данными:

host: your_clickhouse_host_here
port: 8123
username: your_username_here
password: your_password_here
database: your_database_here
from clickhouse_easy import ClickHouseEasy

# Загрузка из файла конфигурации
client = ClickHouseEasy(config_file='clickhouse_config.yaml')
df = client.query("SELECT * FROM your_table")

⚠️ Важно: Добавьте clickhouse_config.yaml в .gitignore, чтобы не попали учетные данные в репозиторий!

YAML конфигурация (рекомендуется)

Создайте локальный файл clickhouse_config.yaml:

host: your_host
port: your_port
username: your_username
password: your_password
database: your_database

Или используйте функцию setup_config:

from clickhouse_easy import setup_config

# Создание шаблона конфигурации
config_path = setup_config('my_config.yaml')
# Отредактируйте созданный файл, указав ваши данные

JSON конфигурация

Создайте файл config.json:

{
  "username": "your_username",
  "password": "your_password",
  "database": "your_database"
}

CSV конфигурация (устаревший формат)

Создайте файл pass.csv:

host___your_clickhouse_host
port___8123
database___your_database
username___your_username
password___your_password
from clickhouse_easy import ClickHouseEasy

# Загрузка из файла конфигурации (YAML - предпочтительный формат)
client = ClickHouseEasy(config_file='clickhouse_config.yaml')
# или из других форматов
client = ClickHouseEasy(config_file='config.json')
client = ClickHouseEasy(config_file='pass.csv')

# Выполнение запроса
df = client.query("SELECT * FROM your_table")

Вариант 3: Быстрое создание

from clickhouse_easy import create_client

# Быстрое создание клиента (теперь требует указать host)
client = create_client(
    host='your_clickhouse_host',
    port=8123,
    username='your_username',
    password='your_password',
    database='your_database'
)

df = client.query("SELECT COUNT(*) as count FROM your_table")

Вариант 4: Использование контекстного менеджера

from clickhouse_easy import ClickHouseEasy

with ClickHouseEasy(
    host='your_host',
    username='user', 
    password='pass', 
    database='db'
) as client:
    df = client.query("SELECT * FROM your_table")
    # Соединение автоматически закроется

🔒 Безопасность

Не храните учетные данные в коде!

Плохо:

client = ClickHouseEasy(
    host='production-server.com',
    username='admin',
    password='secret123'  # Никогда не делайте так!
)

Хорошо:

# Используйте переменные окружения
client = ClickHouseEasy()  # Загрузит из env переменных

# Или файл конфигурации (не забудьте добавить в .gitignore)
client = ClickHouseEasy(config_file='clickhouse_config.yaml')

Рекомендации:

  1. Используйте переменные окружения для продакшена
  2. Файлы конфигурации добавляйте в .gitignore
  3. Используйте разные учетные данные для разработки и продакшена
  4. Ограничивайте права пользователей в ClickHouse

Примеры использования

Создание безопасной конфигурации

from clickhouse_easy import setup_config

# Создает пример файла конфигурации
config_path = setup_config('clickhouse_config.yaml')
# Файл будет создан с заглушками - отредактируйте его!

Выполнение простого запроса

client = ClickHouseEasy(
    host='your_host',
    username='user', 
    password='pass', 
    database='db'
)
df = client.query("SELECT * FROM users WHERE age > 25")

Выполнение команды (INSERT, UPDATE, DELETE)

client.execute("INSERT INTO users VALUES (1, 'John', 30)")

Сохранение конфигурации

client = ClickHouseEasy(
    host='your_host',
    username='user', 
    password='pass', 
    database='db'
)
client.save_config('my_config.yaml')  # или 'my_config.json', 'my_config.csv'

API

ClickHouseEasy

Методы:

  • __init__(host, port, username, password, database, config_file) - Инициализация
  • connect() - Установка соединения
  • query(sql_query, **kwargs) - Выполнение SELECT-запроса, возвращает DataFrame
  • execute(sql_command) - Выполнение команды (INSERT, UPDATE, DELETE и т.д.)
  • close() - Закрытие соединения
  • save_config(config_file, format) - Сохранение конфигурации

Функции:

  • create_client(host, port, username, password, database) - Быстрое создание клиента

Требования

  • Python >= 3.7
  • pandas >= 1.0.0
  • clickhouse-connect >= 0.5.0
  • PyYAML >= 5.0.0

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_easy_connect_ivi-1.0.1.tar.gz (9.8 kB view details)

Uploaded Source

Built Distribution

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

clickhouse_easy_connect_ivi-1.0.1-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file clickhouse_easy_connect_ivi-1.0.1.tar.gz.

File metadata

File hashes

Hashes for clickhouse_easy_connect_ivi-1.0.1.tar.gz
Algorithm Hash digest
SHA256 68cd8d6e4c5be80ef5afa691a6a3f0c3890cd6e51c8a564b162c9f0c3bd2651f
MD5 b063af6fc2ff17d045b26f3c997fc2ba
BLAKE2b-256 2a6180d7c844e0f7f401e44798f088b8f568ee6630988920067a114f77ecc67f

See more details on using hashes here.

File details

Details for the file clickhouse_easy_connect_ivi-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for clickhouse_easy_connect_ivi-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4a85d72fcc0ea9879806d368c445f90ba871eaf2f1488757a1a9c78a31c96c9d
MD5 badfa0495ac2beb9134519c80cdd5fa4
BLAKE2b-256 ddc70f0ba1ca5ceef89406bef461cdf02bc9783258dc314dffd58a05dddb8850

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