Size: a a a

ClickHouse не тормозит

2020 July 11

DC

Denny Crane (I don't... in ClickHouse не тормозит
источник

K

Kid in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
КХ навсегда забыл про /var/lib/clickhouse/shadow/1/data/default/S/all_1_1_0/
Он удалил (с задержкой 8мин.) свой inactive парт all_1_1_0 после того как все из него перелил в all_1_3_1
то есть в shadow остается более не трогающийся парт all_1_1_0
А живой теперь all_1_3_1?
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Kid
то есть в shadow остается более не трогающийся парт all_1_1_0
А живой теперь all_1_3_1?
да
источник

K

Kid in ClickHouse не тормозит
ок, спасибо)
источник

K

Kid in ClickHouse не тормозит
спасибо большое за разъяснения
источник

AP

Anton Patsev in ClickHouse не тормозит
Есть пост на Хабре по докладу https://habr.com/ru/post/509540/
источник

S

Slach in ClickHouse не тормозит
Kid
Ок, получается при резервировании партиции, не фиксируется состояние на тот момент времени? Если вставка 1 инсерт в секунду, к примеру, то получается через секунду после окончания резервирования каталог в shadow тоже изменится и будет содержать уже новые данные?
В момент фриз все куски уже иммутабельны
Хардлинк просто не дает ос удалить файлы физически
источник

S

Slach in ClickHouse не тормозит
Kid
То есть те данные, что я зарезервировал, и то что заберу из shadow позже - будет разными данными?
Одними и теми же
источник

DV

Dmitry Vasiliev in ClickHouse не тормозит
а есть ли возможность вывести физически близкие строки (например по главному индексу), которые находятся рядом с какой-то строкой?
источник

S

Slach in ClickHouse не тормозит
Dmitry Vasiliev
а есть ли возможность вывести физически близкие строки (например по главному индексу), которые находятся рядом с какой-то строкой?
Asof join?
Понятие физически близкие в sql не сцществует
источник

DV

Dmitry Vasiliev in ClickHouse не тормозит
Slach
Asof join?
Понятие физически близкие в sql не сцществует
я понимаю что sql выше этого.
но по факту: да я храню неструктруированые и структуированные логи в clickhouse.
по нормализованым логам вопросов нет.
вопрос найти в неструктруированых какое либо событие и показать строки рядом (ну класический пример - трейс какого либо приложения в логе)
источник

S

Slach in ClickHouse не тормозит
Ну прочитайте про asof join может это ваш  кейс
источник

AP

Anton Patsev in ClickHouse не тормозит
Dmitry Vasiliev
я понимаю что sql выше этого.
но по факту: да я храню неструктруированые и структуированные логи в clickhouse.
по нормализованым логам вопросов нет.
вопрос найти в неструктруированых какое либо событие и показать строки рядом (ну класический пример - трейс какого либо приложения в логе)
А как вы храните неструктурированные логи?
источник

DV

Dmitry Vasiliev in ClickHouse не тормозит
Slach
Ну прочитайте про asof join может это ваш  кейс
ASOF JOIN принимает метку времени пользовательского события из table_1 и находит такое событие в table_2 метка времени которого наиболее близка к метке времени события из table_1 в соответствии с условием на ближайшее совпадение.

спасибо, посмотрю
источник

DV

Dmitry Vasiliev in ClickHouse не тормозит
Anton Patsev
А как вы храните неструктурированные логи?
тупо в лоб 🙂
поле log и кое-какие тэги (app, team, pod, node - речь про куб).
источник

AP

Anton Patsev in ClickHouse не тормозит
Dmitry Vasiliev
тупо в лоб 🙂
поле log и кое-какие тэги (app, team, pod, node - речь про куб).
Словарь получается? Ну или что то наподобие словаря? Можно ли увидеть пример?
источник

DV

Dmitry Vasiliev in ClickHouse не тормозит
pod/node - это уже никак не словари 🙁 они постоянно меняются.
не знаю что показывать, это не ноухау, тупо в лоб:
CREATE TABLE logs
(
   time DateTime,
   unix_nano Int64,
   log String,
   stream String,
   container String,
   namespace String,
   pod String,
   host String,
   app String,
   team String,
   labels Nested (
     key   String,
     value String
   )
) ENGINE = MergeTree()
PARTITION BY toYYYYMMDD(time)
   ORDER BY (time, team, app, namespace, container, pod)
   PRIMARY KEY (time, team, app, namespace, container, pod);
источник

AP

Anton Patsev in ClickHouse не тормозит
Dmitry Vasiliev
pod/node - это уже никак не словари 🙁 они постоянно меняются.
не знаю что показывать, это не ноухау, тупо в лоб:
CREATE TABLE logs
(
   time DateTime,
   unix_nano Int64,
   log String,
   stream String,
   container String,
   namespace String,
   pod String,
   host String,
   app String,
   team String,
   labels Nested (
     key   String,
     value String
   )
) ENGINE = MergeTree()
PARTITION BY toYYYYMMDD(time)
   ORDER BY (time, team, app, namespace, container, pod)
   PRIMARY KEY (time, team, app, namespace, container, pod);
Вроде структура же есть. Прошу прощения. Наверное я что то не понимаю
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Dmitry Vasiliev
pod/node - это уже никак не словари 🙁 они постоянно меняются.
не знаю что показывать, это не ноухау, тупо в лоб:
CREATE TABLE logs
(
   time DateTime,
   unix_nano Int64,
   log String,
   stream String,
   container String,
   namespace String,
   pod String,
   host String,
   app String,
   team String,
   labels Nested (
     key   String,
     value String
   )
) ENGINE = MergeTree()
PARTITION BY toYYYYMMDD(time)
   ORDER BY (time, team, app, namespace, container, pod)
   PRIMARY KEY (time, team, app, namespace, container, pod);
была такая фича indexHint, не работала к сожалению.

но вообще в вашем случае просто надо time задавать диапазоном + - 5мин. если ничего не вернулось, расширять диапазон, програмно, на стороне клиента
источник

DV

Dmitry Vasiliev in ClickHouse не тормозит
Anton Patsev
Вроде структура же есть. Прошу прощения. Наверное я что то не понимаю
log - не распаршен и хранится как string, имею ввиду
источник