Size: a a a

ClickHouse не тормозит

2020 June 01

ИЦ

Илья Цуцков... in ClickHouse не тормозит
lnuynxa
ну на каждом узле, можно через репликацию сделать
так реплицируется же на реплики, а не на шарды, разве нет?
источник

Д

Дмитрий in ClickHouse не тормозит
Содержимое словарей известно заранее?
источник

ИЦ

Илья Цуцков... in ClickHouse не тормозит
Можно извратиться и сделать Distributed view над справочником, чтобы он гонялся туда-сюда с одного шарда, но это как-то уж совсем странно😄
источник

AR

Alexander Ryzhenko in ClickHouse не тормозит
Добрый день. Можно как-то сделать что-то типа ReplacingMergeTree, только схлопывать не по максимальной версии, а по минимальной?
Нужно сделать материалку, которая будет хранить только первую версию, а все последующие игнорировать
источник

D

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

AR

Alexander Ryzhenko in ClickHouse не тормозит
Denisio
-version не ?
ver — столбец с версией, тип UInt*, Date или DateTime.
Нельзя отрицательный
источник

🌍

🌍🚀 in ClickHouse не тормозит
Добрый день
С какой версии работают и работают ли вообще quantile функции с Decimal ?
У нас сейчас при любом запросе они возвращают 0.0
avg при этом работает нормально, например
источник

DT

Dmitry Titov in ClickHouse не тормозит
Alexander Ryzhenko
ver — столбец с версией, тип UInt*, Date или DateTime.
Нельзя отрицательный
MaxUInt - ver
источник

DT

Dmitry Titov in ClickHouse не тормозит
SELECT
   toUInt64(-1000) AS a,
   toUInt64(-30000) AS b,
   a > b AS comp

┌────────────────────a─┬────────────────────b─┬─comp─┐
│ 18446744073709550616 │ 18446744073709521616 │    1 │
└──────────────────────┴──────────────────────┴──────┘
на самом деле и с отрицательными пойдет
источник

AR

Alexander Ryzhenko in ClickHouse не тормозит
Dmitry Titov
SELECT
   toUInt64(-1000) AS a,
   toUInt64(-30000) AS b,
   a > b AS comp

┌────────────────────a─┬────────────────────b─┬─comp─┐
│ 18446744073709550616 │ 18446744073709521616 │    1 │
└──────────────────────┴──────────────────────┴──────┘
на самом деле и с отрицательными пойдет
Попробуем.

Просто есть сомнения, что это не оптимальный вариант. Может, как-то через запрос можно?
Было бы что-то типа MySQL-овского Insert on duplicate key...
источник

DT

Dmitry Titov in ClickHouse не тормозит
можно, но безумно дорого будет по затратам :)
источник

DT

Dmitry Titov in ClickHouse не тормозит
а так, это вполне ок вариант, если собираетесь использовать replacingMergeTree
источник

D

Dmitry Koreckiy in ClickHouse не тормозит
а это что-то архитектурно принципиальное, что в materialized view не корректно работает такая конструкция:

select

from table_name where (..) in ( select … from table_name)
источник

DT

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

DT

Dmitry Titov in ClickHouse не тормозит
и mat_view это триггер на инсерт буквально, те такое будет вызываться на каждую вставку, что выглядит расточительным
источник

D

Dmitry Koreckiy in ClickHouse не тормозит
Dmitry Titov
почему некорректно?
если в table_name лежит N строк удовлетворяющих условию
where (..) in ( select … from table_name)
то тогда на выходе ожидается получить N строк
но в реальности получается M строк которые были на входе в MV
источник

DT

Dmitry Titov in ClickHouse не тормозит
на выходе будет то количество вставленных строк которые удовлетворят условию where (..) in ( select … from table_name)
источник

D

Dmitry Koreckiy in ClickHouse не тормозит
Dmitry Titov
на выходе будет то количество вставленных строк которые удовлетворят условию where (..) in ( select … from table_name)
CREATE TABLE tmp1 (
 `key` String,
 `val` Int32
) ENGINE = MergeTree()
ORDER BY key

CREATE TABLE tmp2 (
 `key` String,
 `val` Int32
) ENGINE = MergeTree()
ORDER BY key

CREATE MATERIALIZED VIEW mv_tmp1_to_tmp2 TO tmp2 (
 `key` String,
 `val` Int32
) AS
SELECT
   key,
   sum(val) as val
FROM tmp1 where key in (
   SELECT distinct key FROM tmp1
)
group by key

insert into tmp1 values ('1', 1)
insert into tmp1 values ('1', 1)

select * from tmp1

| key | val |
| 1 | 1 |
| 1 | 1 |

select * from tmp2

| key | val |
| 1 | 1 |
| 1 | 1 |
источник

D

Dmitry Koreckiy in ClickHouse не тормозит
Ожидаемый результат:

select * from tmp2

| key | val |
| 1 | 1 |
| 1 | 2 |
источник

DT

Dmitry Titov in ClickHouse не тормозит
Вот эта часть
SELECT
   key,
   sum(val) as val
FROM tmp1
Видит только тот блок данных, что вставляется.
источник