Size: a a a

ClickHouse не тормозит

2021 March 26

S

Slach in ClickHouse не тормозит
Oleg Bazdyrev
в CREATE TABLE - это просто TinyLog
ну значит кто-то в вашем TinyLog поковырялся
источник

SP

Sergey Platonov in ClickHouse не тормозит
Slach
EXPLAIN SYNTAXT в начало добавьте и запустите
тоже самое No alias for non-trivial value in ARRAY JOIN
источник

O

Oleg Bazdyrev in ClickHouse не тормозит
Slach
ну значит кто-то в вашем TinyLog поковырялся
ни у кого нет доступа к файловой системе, более того, эта чудо таблица создается на 5 минут
источник

DT

Dmitry Titov in ClickHouse не тормозит
Sergey Platonov
что не такWITH [[1, 1], [2, 3]] AS c
SELECT
   t1.*,
   c
[1] AS c1,
   c
[2] AS c2,
   t2.*
FROM test AS t1
ARRAY JOIN c
INNER JOIN test AS t2 ON t2.id = toInt32(c[2])
WHERE t1.id = (c[1]) ошибка DB::Exception: No alias for non-trivial value in ARRAY JOIN
ARRAY JOIN c as arr ?
источник

SP

Sergey Platonov in ClickHouse не тормозит
Dmitry Titov
ARRAY JOIN c as arr ?
WITH [[1, 1], [2, 3]] AS c
SELECT
   t1.*,
   arr[1] AS c1,
   arr[2] AS c2,
   t2.*
FROM test AS t1
ARRAY JOIN c as arr
INNER JOIN test AS t2 ON t2.id = toInt32(arr[2])
WHERE t1.id = (arr[1]) не работает
источник

SP

Sergey Platonov in ClickHouse не тормозит
а вот так работает
источник

SP

Sergey Platonov in ClickHouse не тормозит
SELECT
   t1.*,
   arr[1] AS c1,
   arr[2] AS c2,
   t2.*
FROM test AS t1
ARRAY JOIN [[1, 1], [2, 3]] as arr
INNER JOIN test AS t2 ON t2.id = toInt32(arr[2])
WHERE t1.id = (arr[1])
источник

SP

Sergey Platonov in ClickHouse не тормозит
то есть не работает именно перенос массива в WITH
источник

DT

Dmitry Titov in ClickHouse не тормозит
Sergey Platonov
то есть не работает именно перенос массива в WITH
Пишите багу, какая версия?
источник

SP

Sergey Platonov in ClickHouse не тормозит
21.4.1.6200
источник

DT

Dmitry Titov in ClickHouse не тормозит
Sergey Platonov
Добрый день! Есть две таблицы с своими id. Записи в одной с id 1234 соответствуют записям с id 2345 в другой. И таких пар 4 штуки. Кажется можно объединить их используя массив. Но не могу найти похожих примеров в документации.
А тю

сделайте через transform
источник

SP

Sergey Platonov in ClickHouse не тормозит
??
источник

SP

Sergey Platonov in ClickHouse не тормозит
а, понял, да, тоже ок
источник

DT

Dmitry Titov in ClickHouse не тормозит
SELECT test.*, c
FROM test
INNER JOIN t2 ON (test.id = transform(t2.id,[],[]))
WHERE test.id = arrayElement(c,1)
источник

DT

Dmitry Titov in ClickHouse не тормозит
Либо этап transform лучше запихать в подзапрос и делать JOIN с подзапросом
источник

DT

Dmitry Titov in ClickHouse не тормозит
Тогда хешмапа будет уже полностью готовая
источник

SP

Sergey Platonov in ClickHouse не тормозит
да, в моем случае if удобнее, так как 3 значения эквивалентны 1
источник

SP

Sergey Platonov in ClickHouse не тормозит
If(GroupCode IN ('02439', '02435', '02430'), 'Ч0011', null) join_key,
источник

DT

Dmitry Titov in ClickHouse не тормозит
Ok, но если у вас несколько id будет, то transform может быть быстрее чем multiIf
источник

SP

Sergey Platonov in ClickHouse не тормозит
Dmitry Titov
Ok, но если у вас несколько id будет, то transform может быть быстрее чем multiIf
учту! Спасибо!
источник