Size: a a a

ClickHouse не тормозит

2021 March 16

SC

Smoked Cheese in ClickHouse не тормозит
надо смотреть что там под капотом
источник

BS

Brommie Savor in ClickHouse не тормозит
Ну окей, если отойти от этой либы - как дефолтно происходит пакетная вставка в кх?
источник

SC

Smoked Cheese in ClickHouse не тормозит
Brommie Savor
Ну окей, если отойти от этой либы - как дефолтно происходит пакетная вставка в кх?
просто большими инсертами
источник

BS

Brommie Savor in ClickHouse не тормозит
Спасибо
источник

SC

Smoked Cheese in ClickHouse не тормозит
Brommie Savor
Ну окей, если отойти от этой либы - как дефолтно происходит пакетная вставка в кх?
судя по всему либа под капотом собирает блоки и на коммит просто отправляет запрос
источник

BS

Brommie Savor in ClickHouse не тормозит
Похоже на то +сжимает как-то
источник

BS

Brommie Savor in ClickHouse не тормозит
Попробую пока вариант из либы
источник

SC

Smoked Cheese in ClickHouse не тормозит
просто в нативный формат упаковывает
источник

D

Dj in ClickHouse не тормозит
Brommie Savor
Может чуть глупый вопрос - не забрасывайте камнями)
Как лучше инсертить в кликхауз пачками?
Куча инсертов в транзакции или много VALUES в 1 инсерте?
Много values но драйвера сами делаюь это обычно
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Brommie Savor
да, знаю, но в клиенте это почему-то выглядит как транзакция
там же в доке было написано, что этот commit просто отправляет инсерт на сервер. Инсерт уходит в native формате. После текста insert into ..... цепляется поток байтов, в них все упаковано кусками по колонкам.
источник

BS

Brommie Savor in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
там же в доке было написано, что этот commit просто отправляет инсерт на сервер. Инсерт уходит в native формате. После текста insert into ..... цепляется поток байтов, в них все упаковано кусками по колонкам.
а где доку посмотреть?) 😅
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Brommie Savor
а где доку посмотреть?) 😅
в readme на главной этого нету?
источник

BS

Brommie Savor in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
в readme на главной этого нету?
разве в key features 1 строчка
Bulk write support : begin->prepare->(in loop exec)->commit
источник

SI

Serg Ivanov in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
есть секретный параметр fast=true, по умолчанию выключен, чтобы мозг у пользователей не взрывался
😂
источник

RG

Rodion Gorbachev in ClickHouse не тормозит
Mary Charikova
Всем привет! Хочу посчитать длины всех последовательностей, где выполняется условие cond1 (цифра 1 в примере) (с него последовательность всегда начинается), cond2 (цифра 2 в примере) (их всегда идет несколько после cond1). К примеру, в последовательности событий
122225222555

надо, чтобы выводилось 4 и 3 соответственно. Пробовала sequenceCount(), но эта функция считает только последовательность (cond1, cond2), а последующие cond2 пропускает тк cond1 уже выполнился, а последовательности не пересекаются. Как можно решить такой кейс? Есть какая-то другая функция?
Скорее всего есть более красивое решение. Можете подогнать под свои нужды вот это :
источник

RG

Rodion Gorbachev in ClickHouse не тормозит
select
arrayCumSumNonNegative(x -> arr[x] = arr[x-1] ? 1 : -x, arrayEnumerate((splitByString('', '122225122255') as arr))) as b
, arrayMap(x -> b[x+1] > 0 or b[x] > 0? b[x]+1 : 0, arrayEnumerate(b)) as c
, arrayFilter(y, x -> c[x+1] < c[x] , c, arrayEnumerate(c)) as d
источник

RG

Rodion Gorbachev in ClickHouse не тормозит
Я бы смотрел в первую очередь в сторону регулярок и этой функции : https://clickhouse.tech/docs/ru/sql-reference/functions/string-search-functions/#extractallgroups-vertical
источник

MC

Mary Charikova in ClickHouse не тормозит
Rodion Gorbachev
select
arrayCumSumNonNegative(x -> arr[x] = arr[x-1] ? 1 : -x, arrayEnumerate((splitByString('', '122225122255') as arr))) as b
, arrayMap(x -> b[x+1] > 0 or b[x] > 0? b[x]+1 : 0, arrayEnumerate(b)) as c
, arrayFilter(y, x -> c[x+1] < c[x] , c, arrayEnumerate(c)) as d
Видимо все таки совсем непонятно вопрос сформулировала, речь идёт о последовательности событий, то есть строк, я их цифрами условно обозначила)
источник

RG

Rodion Gorbachev in ClickHouse не тормозит
Mary Charikova
Видимо все таки совсем непонятно вопрос сформулировала, речь идёт о последовательности событий, то есть строк, я их цифрами условно обозначила)
В таком случае - Алексей Миловидов на последнем митапе как раз говорил про поиск плагиата в строках/ Посмотрите - возможно это ваше
источник

DT

Dmitry Titov in ClickHouse не тормозит
Mary Charikova
Всем привет! Хочу посчитать длины всех последовательностей, где выполняется условие cond1 (цифра 1 в примере) (с него последовательность всегда начинается), cond2 (цифра 2 в примере) (их всегда идет несколько после cond1). К примеру, в последовательности событий
122225222555

надо, чтобы выводилось 4 и 3 соответственно. Пробовала sequenceCount(), но эта функция считает только последовательность (cond1, cond2), а последующие cond2 пропускает тк cond1 уже выполнился, а последовательности не пересекаются. Как можно решить такой кейс? Есть какая-то другая функция?
Скорее всего groupArray  но в подзапросе нужно будет сделать ORDER BY timestamp

SELECT
   [1, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 3] AS a,
   arraySplit((x, y) -> (y != 0), a, arrayDifference(a)) AS d,
   arrayFilter(x -> (x != 0), arrayMap(x -> countEqual(x, 2), d)) AS v

Query id: 0d09384e-b8bf-4863-87e3-bb22abad52e4

┌─a─────────────────────────┬─d───────────────────────────────────┬─v─────┐
│ [1,2,2,2,2,2,4,2,2,2,2,3] │ [[1],[2,2,2,2,2],[4],[2,2,2,2],[3]] │ [5,4] │
└───────────────────────────┴─────────────────────────────────────┴───────┘
источник