Clickhouse DB в Python

Введение

  • Что такое БД clickhouse?
  • Как установить сервер clickhouse локально и выполнять запросы с помощью различных клиентов.
  • Как подключаться к БД clickhouse с помощью python и делать запросы к ней.

Бонус

Полезные расширения VSCode для работы с clickhouse и python.

Что такое Clickhouse?

Clickhouse – это высокопроизводительная, ориентированная на SQL СУБД для OLAP-процессов. Мечта инженера по обработке данных.

Что такое рабочий процесс OLAP?

Аббревиатура OLAP расшифровывается как online analytical processing. Рабочие процессы OLAP – это процессы, требующие ответов в реальном времени поверх больших наборов данных для аналитических целей.

Давайте разберемся:

Clickhouse работает на macOS, FreeBSD и Linux, а также может поддерживаться на Windows с помощью WSL.

Установка:

Вы можете установить сервер clickhouse на свою систему локально, используя следующую команду в терминале:

curl https://clickhouse.com/ | sh

Настройка клиентов:

Существует несколько способов настройки клиентов для выполнения запросов к БД clickhouse. Здесь мы рассмотрим три основных:

1. Сервер Clickhouse представляет собой http-клиент, позволяющий пользователям выполнять запросы с помощью удобного пользовательского интерфейса. Доступ к нему можно получить по адресу http://localhost:8123/play. Он выглядит следующим образом:

Clickhouse DB в Python

2. Мы также можем настроить собственный клиент на базе SQL, выполнив в терминале следующую команду:

./clickhouse client

3. Если вы являетесь поклонником VSCode, то для начала работы с clickhouse есть очень полезное расширение. С помощью SQLTools можно устанавливать соединения с сервером clickhouse и выполнять на нем SQL-запросы.

Clickhouse DB в Python
Расширение SQLTools для clickhouse

4. Для этих же целей можно использовать tabix, если вы являетесь поклонником докеризованных сервисов.

docker build -t tabix .
docker run -d -p 8080:80 tabix

Подключимся к Clickhouse с помощью python:

В Python существует ряд библиотек, которые можно использовать для подключения к clickhouse. Наиболее удобной из них является orm по имени infi.clickhouse-orm. Установить его можно с помощью следующей команды:

pip3 install infi.clickhouse-orm

После установки можно подключиться к серверу clickhouse и начать выполнять запросы.

from infi.clickhouse_orm import Database, Model, DateTimeField, UInt16Field, Float32Field, Memory, F

#Create table in clickhouse
class CPUStats(Model):
    timestamp = DateTimeField()
    cpu_id = UInt16Field()
    cpu_percent = Float32Field()
    engine = Memory()

db = Database('demo')
db.create_table(CPUStats)


# Calculate what percentage of the time CPU 1 was over 95% busy
queryset = CPUStats.objects_in(db)
total = queryset.filter(CPUStats.cpu_id == 1).count()
busy = queryset.filter(CPUStats.cpu_id == 1, CPUStats.cpu_percent > 95).count()
print('CPU 1 was busy {:.2f}% of the time'.format(busy * 100.0 / total))

# Calculate the average usage per CPU
for row in queryset.aggregate(CPUStats.cpu_id, average=F.avg(CPUStats.cpu_percent)):
    print('CPU {row.cpu_id}: {row.average:.2f}%'.format(row=row))

Инженеры-программисты обычно предпочитают ORM при работе с базами данных, так как они предоставляют им простой способ разработки сопровождаемого кода. Вы также можете выполнять отдельные запросы к clickhouse, используя python с clickhouse-driver, но это уже тема для другого дня.

Заключение

В этой статье мы рассмотрели практические шаги, с помощью которых можно настроить и работать с clickhouse db как с использованием python, так и без него. В следующей статье мы рассмотрим различия в синтаксисе между обычным SQL и SQL на базе clickhouse. Оставайтесь с нами.

+1
1
+1
0
+1
0
+1
0
+1
0

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *