Size: a a a

ClickHouse не тормозит

2021 January 13

EZ

Egor Zagorskiy in ClickHouse не тормозит
кейс такой, что первый час данные могут обновляться, а дальше их уже никто не трогает
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Egor Zagorskiy
если будут идти частые заменяющие инсёрты в ReplacingMergeTree -- оно так же ляжет от мержей?
нет, ну не все так просто. Вообще КХ просто для иммютебл данных. Вы что пытаетесь проапдейтить? Какой-то атрибут?
источник

EZ

Egor Zagorskiy in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
нет, ну не все так просто. Вообще КХ просто для иммютебл данных. Вы что пытаетесь проапдейтить? Какой-то атрибут?
инсёртится лог звонков. потом в течение часа у строки могут обновиться некоторые поля, выборка по стринг-полю uniqueId
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Egor Zagorskiy
кейс такой, что первый час данные могут обновляться, а дальше их уже никто не трогает
ну копите данные в кассандре, обновляйте, а через час заливайте в КХ
источник

EZ

Egor Zagorskiy in ClickHouse не тормозит
сейчас мускуль, но строк 400млн, и ему тяжко. План-Б такой, да. заливать прошлый час в КХ, если с Replacing не выйдет
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Ivan Kush
никто не знает, поддерживает ли CH чз http FORMAT CustomSeparated?
https://github.com/ClickHouse/ClickHouse/issues/12744#issuecomment-663738562

Потому что без него у меня CH выдает ошибку, что не нашёл ,
Row 1:
Column 0,   name: datetime,        type: String, parsed text: "2021-Jan^d1^d2"  ERROR: Line feed found where delimiter (,) is expected. It's like your file has less columns than expected.                                
And if your file have right number of columns, maybe it have unescaped quotes in value        


А
когда делаю запрос с указаниме типа разделителя format_custom_field_delimiter='^', то выдаёт ошибку
Code: 49, e.displayText() = DB::Exception: There is no checkpoint (version 20.1.2.4 (official build)) 

cам запрос
find . -type f -name 'j.log' | while read f; do
 curl "http://localhost:8123
/?query=INSERT%20INTO%20mydb%20FORMAT%20CustomSeparated%20SETTINGS%20format_custom_escaping_rule%3D%27CSV%27%2C%20format_custom_field_delimiter%20%3D%20%27%5E%27" --data-binary "@${f}"
done
почему 20.1.2.4 ? есть например 20.1.16.120 ?

кавычки там скорее всего не нужны %27
это для баша они нужны
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Piotr Liakhavets
еще одно странное поведение
(обновили КХ 20.4.3 > 20.12.4)
временные таблицы с engine=Log
созданные и еще не дропнутые с версии 20.4 читаются в несколько тредов (insert-select ~1m rows ~19sec)

а созданная в 20.12 почему-то ломится в 1 тред (и в 2-3 раза дольше обрабатывается)
насильно пытаюсь увеличить (

set max_threads = 6;
set min_insert_block_size_rows=200000;
) - не помогает - видимо чего-то не учел?
т.е. разница в том как создается engine=Log , одним блоком или несколькими.
Откуда берутся эти engine=Log ? каким запросом?
источник

PL

Piotr Liakhavets in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
т.е. разница в том как создается engine=Log , одним блоком или несколькими.
Откуда берутся эти engine=Log ? каким запросом?
create ttt as prototype_table
engine=Log


потом шелл
zcat file | clickhouse-client -q"insert into ttt format CSV"
источник

M

Munir in ClickHouse не тормозит
какие есть параметры конфига клиента? столкнулся, что поле datetime64 он сначала выбирает по длине строки (а не по разделителю), потом пытается его парсить по символам разделяющие разряды даты, а только потом берет что написано. у меня это выражается следующим образом: для пустых дат мы пишем 0, если в следующем поле после 0(тип datetime64) стоит отрицательное число, то загрузка падает на парсинге даты. если положительное, то грузится. если вместо 0 писать 0000-00-00 00:00:00.00000, то грузится и с отрицательными числами. это настройками как-нить можно поправить?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Piotr Liakhavets
create ttt as prototype_table
engine=Log


потом шелл
zcat file | clickhouse-client -q"insert into ttt format CSV"
ну например так --max_insert_block_size=10000 --input_format_parallel_parsing=0
zcat file | clickhouse-client --max_insert_block_size=10000 --input_format_parallel_parsing=0 -q"insert into ttt format CSV"
источник

PL

Piotr Liakhavets in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
ну например так --max_insert_block_size=10000 --input_format_parallel_parsing=0
zcat file | clickhouse-client --max_insert_block_size=10000 --input_format_parallel_parsing=0 -q"insert into ttt format CSV"
спасибо, пробую
на последующий ЕТЛ-ьный запрос к этой таблице насильно какие-то сеттинги надо добавлять? или само должно понять?
источник

E

Elias in ClickHouse не тормозит
Добрый вечер! Читал документацию, но не нашёл ответ на свой вопрос: можно ли как-то в КХ добавить свой метод сжатия столбцов?
источник

D

Dj in ClickHouse не тормозит
Elias
Добрый вечер! Читал документацию, но не нашёл ответ на свой вопрос: можно ли как-то в КХ добавить свой метод сжатия столбцов?
не трогая код, нет. Чем же вас текущие не устроили? там комбинаций компрессий с энкодингами выше крыши же
источник

E

Elias in ClickHouse не тормозит
Надеюсь что не понадобятся, это ещё будем изучать :) просто заранее пытаюсь выяснить, сложно ли это сделать, потому что есть хороший алгоритм сжатия массивов для нашего случая
источник

PL

Piotr Liakhavets in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
ну например так --max_insert_block_size=10000 --input_format_parallel_parsing=0
zcat file | clickhouse-client --max_insert_block_size=10000 --input_format_parallel_parsing=0 -q"insert into ttt format CSV"
тредов стадо больше (~6)
но к скорости последующей выборки плюсануло не так сильно, как я надеялся

[hostname] 2021.01.13 15:01:57.683883 [ 2607564 ] {f1e730ce-c8f9-429c-a8b5-d957fdc1f27f} <Information> executeQuery: Read 1624753 rows, 1.35 GiB in 28.547938887 sec., 56913 rows/sec., 48.38 MiB/sec.
[hostname] 2021.01.13 15:01:57.684423 [ 2607564 ] {f1e730ce-c8f9-429c-a8b5-d957fdc1f27f} <Debug> MemoryTracker: Peak memory usage (for query): 3.32 GiB.

получается что-то из дефолтных сеттингов решило вести себя иначе
Спасибо @den_crane
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Elias
Надеюсь что не понадобятся, это ещё будем изучать :) просто заранее пытаюсь выяснить, сложно ли это сделать, потому что есть хороший алгоритм сжатия массивов для нашего случая
например какой? я сомневаюсь что можно сжать лучше чем ZSDT3
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Piotr Liakhavets
тредов стадо больше (~6)
но к скорости последующей выборки плюсануло не так сильно, как я надеялся

[hostname] 2021.01.13 15:01:57.683883 [ 2607564 ] {f1e730ce-c8f9-429c-a8b5-d957fdc1f27f} <Information> executeQuery: Read 1624753 rows, 1.35 GiB in 28.547938887 sec., 56913 rows/sec., 48.38 MiB/sec.
[hostname] 2021.01.13 15:01:57.684423 [ 2607564 ] {f1e730ce-c8f9-429c-a8b5-d957fdc1f27f} <Debug> MemoryTracker: Peak memory usage (for query): 3.32 GiB.

получается что-то из дефолтных сеттингов решило вести себя иначе
Спасибо @den_crane
ну сделайте тикет на гитхабе что регресия перфоманса, приложите статистику, было так, стало так
источник

D

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

RN

Roman Neklesa in ClickHouse не тормозит
Roman Neklesa
привет. подскажите, пожалуйста, на однонодовом брокере кафки получаем лог
Can't get assignment. It can be caused by some issue with consumer group (not enough partitions?). Will keep trying.

параметр group.initial.rebalance.delay.ms дефолтный, kafka_topic_list, kafka_group_name с разынми именами, версия КХ - 20.11.4.13. в чем может быть причина его появления и как выйти с такой ситуации?
Подниму
источник

I

Ivan in ClickHouse не тормозит
добрый день. подскажите пожалуйста как это реализуется, на каких технологиях.
Есть клиентские приложения которые в случайные промежутки времени отправляют данные( сложный JSON) на сервер.
запросы от клиентов приходят в виде 1 объект в случайный промежуток времени.
момент вставки в БД предполагается определять так: "когда накопилось 10 тыс. объектов - вставь в КХ".
как и с помощью чего реализуют подобную логику ? in-memory БД а-ля Redis?
источник