Size: a a a

ClickHouse не тормозит

2020 May 28

D

Dj in ClickHouse не тормозит
можно попробовать добавлять в старую таблицу alias колонки
источник

DT

Dmitry Titov in ClickHouse не тормозит
Владимир Голубев
не совсем то, так я получаю один столбец. Сейчас объясню поподробнее.
У меня есть результат селекта для функций quantiles(0.5, 0.9, 0.95, 0.99)(columnOne) as columnOne, для нескольких столбцов. Я хочу развернуть это в двумерную таблицу где каждый ряд будет содержать название столбца и квантили для него.
а, такое можно сделать через ARRAY JOIN arr1 as a, arr2 as b
источник

DT

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

DT

Dmitry Titov in ClickHouse не тормозит
и колонки не переименовать к сожалению
источник

D

Dj in ClickHouse не тормозит
Dmitry Titov
тогда тип не изменится же
column alias toUInt32(oldColumnName)
источник

D

Dj in ClickHouse не тормозит
или так нельзя?
источник

DT

Dmitry Titov in ClickHouse не тормозит
Dj
column alias toUInt32(oldColumnName)
а, скорее всего так и нужно.
тогда материализед вообще ненужно.
источник

D

Dj in ClickHouse не тормозит
Dmitry Titov
а, скорее всего так и нужно.
тогда материализед вообще ненужно.
https://github.com/ClickHouse/ClickHouse/pull/9948 жалко не подъехало в 20.3
источник

DT

Dmitry Titov in ClickHouse не тормозит
о, круто
источник

OM

Oleksii Mylotskyi in ClickHouse не тормозит
Подскажите есть какая-то возможность ускорить Distributed Insert ? Чтобы Insert проходили не в один поток а в несколько. Потому как смотрю SHOW PROCESSLIST на втором шарде и там инсерты последовательно вставляются.
источник

ВГ

Владимир Голубев... in ClickHouse не тормозит
SELECT
      arrayJoin([1, 2, 3]) as one,
      arrayJoin([4, 5, 6]) as two
возвращает 9 строк...(
источник

DT

Dmitry Titov in ClickHouse не тормозит
Владимир Голубев
SELECT
      arrayJoin([1, 2, 3]) as one,
      arrayJoin([4, 5, 6]) as two
возвращает 9 строк...(
нет, там разное поведение у arrayJoin и ARRAY JOIN arr1 as a, arr2 as b
источник

DT

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

DT

Dmitry Titov in ClickHouse не тормозит
Oleksii Mylotskyi
Подскажите есть какая-то возможность ускорить Distributed Insert ? Чтобы Insert проходили не в один поток а в несколько. Потому как смотрю SHOW PROCESSLIST на втором шарде и там инсерты последовательно вставляются.
если вас не устраивает скорость distributed вставки, возможно стоит от нее отказаться.
Все равно это не рекомендуется
источник

D

Dj in ClickHouse не тормозит
Dmitry Titov
о, круто
drop table if exists test;
create table test (pk1 Int32, val UInt64 ) ENGINE = MergeTree()  order by (pk1);
alter table test add column valnew UInt32 alias toUInt32(val);
select *,valnew from test;

select * - не возвращает алиас колонки, но для мердж engine - это не должно быть проблемой
источник

DT

Dmitry Titov in ClickHouse не тормозит
Dj
drop table if exists test;
create table test (pk1 Int32, val UInt64 ) ENGINE = MergeTree()  order by (pk1);
alter table test add column valnew UInt32 alias toUInt32(val);
select *,valnew from test;

select * - не возвращает алиас колонки, но для мердж engine - это не должно быть проблемой
ну да, так сделано, что бы работал INSERT SELECT *
источник

D

Dj in ClickHouse не тормозит
спасибо, направили в нужное русло, и не надо трогать тысячи партов  ) все "сошлось" теперь
источник

ВГ

Владимир Голубев... in ClickHouse не тормозит
Dmitry Titov
нет, там разное поведение у arrayJoin и ARRAY JOIN arr1 as a, arr2 as b
О, спасибо, это уже ближе похоже на желаемый результат)
источник

OM

Oleksii Mylotskyi in ClickHouse не тормозит
Dmitry Titov
если вас не устраивает скорость distributed вставки, возможно стоит от нее отказаться.
Все равно это не рекомендуется
Ну я так понимаю что если мне нужно иметь два шарда, то мне в любом случае нужен будет distributed insert я правильно понимаю идею, отказаться от шардов ? Или я что-то не так понял :(
источник

DT

Dmitry Titov in ClickHouse не тормозит
Oleksii Mylotskyi
Ну я так понимаю что если мне нужно иметь два шарда, то мне в любом случае нужен будет distributed insert я правильно понимаю идею, отказаться от шардов ? Или я что-то не так понял :(
вообще идеальное решение, это вы на стороне приложения знаете, какие данные куда класть.
Или допустим пользуетесь кафкой и топиками.
потому что дистрибьютед вставка умножает запись в 1.5-2 раза(сначала в дистрибьютед и только потом на нужный шард)
источник