Size: a a a

ClickHouse не тормозит

2020 August 04

RS

Roman Skidan in ClickHouse не тормозит
Slach
в system.query_log
можно поискать, если он у вас включен
ага, понял. спасибо
источник

S

Slach in ClickHouse не тормозит
Дмитрий
все доброго времени суток. Подскажите, пожалуйста, какие есть best practies при загрузке данных в Clickhouse? Стоит ли пытаться загружать данные через python-драйвер clickhouse_driver, если объёмы данных для записи составляют десятки миллионов строк? Какие есть способы для fast insert в Clickhouse БД?
=) ну питон сам по себе не очень быстрый язык

практика вставки в clickhouse
это вставка большими порциями (от 100 000 записей, можно миллионы)
это в документации есть

исходные данные у вас откуда?
какое то свое приложение события отсылает по HTTP/gRPC/protobuf в ваш коллектор?
MySQL\PostgreSQL как источник?
источник

Д

Дмитрий in ClickHouse не тормозит
источник MySQL, запросом я выбираю данные, и полученный датасет я должен загрузить в БД
источник

S

Slach in ClickHouse не тормозит
Дмитрий
источник MySQL, запросом я выбираю данные, и полученный датасет я должен загрузить в БД
и язык у вас при этом python ?
источник

IP

Ivan V. Protchenko in ClickHouse не тормозит
Дмитрий
все доброго времени суток. Подскажите, пожалуйста, какие есть best practies при загрузке данных в Clickhouse? Стоит ли пытаться загружать данные через python-драйвер clickhouse_driver, если объёмы данных для записи составляют десятки миллионов строк? Какие есть способы для fast insert в Clickhouse БД?
если много маленьких запросов и нет возможности из собрать на стороне приложения, то стоит использовать буферные таблицы
источник

Д

Дмитрий in ClickHouse не тормозит
да
источник

S

Slach in ClickHouse не тормозит
IMHO самый быстрый способ
вызвать из python
mysql -B -s -e "SELECT * FROM db.table FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' | clickhouse-client -q "INSERT INTO db.table FORMAT TSV"
источник

Д

Дмитрий in ClickHouse не тормозит
Ivan V. Protchenko
если много маленьких запросов и нет возможности из собрать на стороне приложения, то стоит использовать буферные таблицы
а как записывать в Buffer?
источник

S

Slach in ClickHouse не тормозит
Дмитрий
а как записывать в Buffer?
обычный INSERT
можно даже через MySQL протокол подключиться...

но это если вам надо вставлять записи по одной

но особо высоких RPS и строк в секунду там не ждите
источник

IP

Ivan V. Protchenko in ClickHouse не тормозит
Дмитрий
а как записывать в Buffer?
источник

Д

Дмитрий in ClickHouse не тормозит
Slach
обычный INSERT
можно даже через MySQL протокол подключиться...

но это если вам надо вставлять записи по одной

но особо высоких RPS и строк в секунду там не ждите
я так понимаю, что схема следующая должна работать: чтение условно по 200-300 000 записей в MySQL и запись в буферную таблицу
источник

YG

Yury Gelman in ClickHouse не тормозит
всем привет
вопрос: есть матвью с кучей джоинов (по сути - воронка)

струткура такая

event1 left join (
     event2 left join (
           event3 ...
     )
)

если на момент создания матвью события 3 не было, то когда оно придет, то перезапишется ли эта строчка в матвью? заранее спасибо
источник

Д

Дмитрий in ClickHouse не тормозит
а из буферной таблицы будет переноситься в постоянную на движке MergeTree
источник

S

Slach in ClickHouse не тормозит
Дмитрий
я так понимаю, что схема следующая должна работать: чтение условно по 200-300 000 записей в MySQL и запись в буферную таблицу
нет смысла писать в буфферную таблицу сразу 300 000 записей за один раз
вы не правильно поняли для чего она нужна
источник

Д

Дмитрий in ClickHouse не тормозит
а как?
источник

S

Slach in ClickHouse не тормозит
Дмитрий
а как?
https://t.me/clickhouse_ru/174794
я написал
вы сказали что данные у вас в MySQL уже лежат
если вам можно выкинуть MySQL и хочется данные писать по одной строке... тогда да, пробуйте Buffer таблицы

можно даже через MySQL protocol
https://clickhouse.tech/docs/en/interfaces/mysql/
источник

Д

Дмитрий in ClickHouse не тормозит
ок
источник

S

Slach in ClickHouse не тормозит
Yury Gelman
всем привет
вопрос: есть матвью с кучей джоинов (по сути - воронка)

струткура такая

event1 left join (
     event2 left join (
           event3 ...
     )
)

если на момент создания матвью события 3 не было, то когда оно придет, то перезапишется ли эта строчка в матвью? заранее спасибо
MATVIEW это просто trigger на INSERT
в clickhouse Нет update
источник

YG

Yury Gelman in ClickHouse не тормозит
то бишь нет, спасибо
источник

Д

Дмитрий in ClickHouse не тормозит
Slach
https://t.me/clickhouse_ru/174794
я написал
вы сказали что данные у вас в MySQL уже лежат
если вам можно выкинуть MySQL и хочется данные писать по одной строке... тогда да, пробуйте Buffer таблицы

можно даже через MySQL protocol
https://clickhouse.tech/docs/en/interfaces/mysql/
большое спасибо)
источник