Size: a a a

ClickHouse не тормозит

2020 July 30

VB

Vladimir Bunchuk in ClickHouse не тормозит
вот табличка
нужно для “user_id” и ”photo_id” посчитать последний “elo” и количество  “ts
источник

VB

Vladimir Bunchuk in ClickHouse не тормозит
в агрегации должен получить строку

———————————————————-——————————————
| 15322097 | 60189059 | 101 | 8 |
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Vladimir Bunchuk
вот табличка
нужно для “user_id” и ”photo_id” посчитать последний “elo” и количество  “ts
CREATE TABLE ttt(
   user_id, photo_id,
   elo                  AggregateFunction(argMax, Int64, DateTime),
   cnt                  SimpleAggregateFunction(sum, UInt64))
ENGINE = AggregatingMergeTree
PARTITION BY
ORDER BY (user_id, photo_id,);

CREATE MATERIALIZED VIEW ttt_mv TO ttt AS
SELECT
   user_id, photo_id,
   argMaxState(elo, ts) AS elo,
   sum(toUInt64(1))
FROM states_raw
GROUP BY user_id, photo_id;
источник

M

Mishanya in ClickHouse не тормозит
ребят
есть небольшой вопрос по джоину

у меня есть две таблицы и они шардированы по ключу джоина. Но вот правая таблица имеет версию
можно ли как-то заджоинить правую таблицу без подзапроса(тип выбрать с группировкой по айди и max(version)) на локальных тачках ?
источник

VB

Vladimir Bunchuk in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
CREATE TABLE ttt(
   user_id, photo_id,
   elo                  AggregateFunction(argMax, Int64, DateTime),
   cnt                  SimpleAggregateFunction(sum, UInt64))
ENGINE = AggregatingMergeTree
PARTITION BY
ORDER BY (user_id, photo_id,);

CREATE MATERIALIZED VIEW ttt_mv TO ttt AS
SELECT
   user_id, photo_id,
   argMaxState(elo, ts) AS elo,
   sum(toUInt64(1))
FROM states_raw
GROUP BY user_id, photo_id;
супер!
спасибо большое
только вместо sum(toUInt64(1)) я countState использовал
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Vladimir Bunchuk
супер!
спасибо большое
только вместо sum(toUInt64(1)) я countState использовал
countState занимает в два раза больше, потому что хранит state который не нужен для sum/count
источник

VB

Vladimir Bunchuk in ClickHouse не тормозит
а SimpleAggregateFunction(sum, UInt64)) перезапишет его, верно?
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
CREATE TABLE ttt(
   user_id, photo_id,
   elo                  AggregateFunction(argMax, Int64, DateTime),
   cnt                  SimpleAggregateFunction(sum, UInt64))
ENGINE = AggregatingMergeTree
PARTITION BY
ORDER BY (user_id, photo_id,);

CREATE MATERIALIZED VIEW ttt_mv TO ttt AS
SELECT
   user_id, photo_id,
   argMaxState(elo, ts) AS elo,
   sum(toUInt64(1))
FROM states_raw
GROUP BY user_id, photo_id;
не понял вопроса

есть AggregateFunction
есть SimpleAggregateFunction

вам нужно кол-во строк, sum(toUInt64(1)) то это тоже самое
источник

M

M in ClickHouse не тормозит
Всем привет! Подскажите, пожалуйста, где прописывается настройка joined_subquery_requires_alias?
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
M
Всем привет! Подскажите, пожалуйста, где прописывается настройка joined_subquery_requires_alias?
профиле пользователей
источник

M

M in ClickHouse не тормозит
понял, спасибо
источник

VB

Vladimir Bunchuk in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
не понял вопроса

есть AggregateFunction
есть SimpleAggregateFunction

вам нужно кол-во строк, sum(toUInt64(1)) то это тоже самое
я имел в виду, что если в исходной таблице появится новая запись для user_id и photo_id, то пересчитается ли в агрегационной таблице поле cnt?
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Vladimir Bunchuk
я имел в виду, что если в исходной таблице появится новая запись для user_id и photo_id, то пересчитается ли в агрегационной таблице поле cnt?
результат будет у sum(1) и  countState одинаковый .
источник

EV

Evgeny Vorobyev in ClickHouse не тормозит
Всем привет!
Подскажите, пожалуйста, можно ли не указывать логин/пароль в определении словаря?

<yandex>
   <dictionary>
       <name>test</name>
       <source>
           <odbc>
               <table>dict</table>
               <connection_string>DSN=MSSQL;UID=test;PWD=test</connection_string>
           </odbc>
       </source>
   
Они же прописаны в конфиге etc/odbc.ini, зачем в словаре ещё указывать?
Но без явного их указания словарь не обновляется.
Кто-нибудь сталкивался с подобным?
источник

VB

Vladimir Bunchuk in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
результат будет у sum(1) и  countState одинаковый .
понял
попробую еще раз
в первый раз видимо ошибку где-то допустил и у меня неправильно считало
источник

IR

Iaroslav Romanov in ClickHouse не тормозит
Denis Goihburg
Я бы в гитхабе issue завел. А у тебя версия новее?
версия старая, действительно дело было в том, что я использую слишком старый функционал. спасибо за помощь!
источник

MK

Max Khlystov in ClickHouse не тормозит
добрый день. можно ли вставлять данные по 1 строке в табличку без партов?
источник

D

Dj in ClickHouse не тормозит
Max Khlystov
добрый день. можно ли вставлять данные по 1 строке в табличку без партов?
будет создаваться парт на каждую вставку
источник

YV

Yuri Velgosha in ClickHouse не тормозит
Max Khlystov
добрый день. можно ли вставлять данные по 1 строке в табличку без партов?
Можно, но не нужно, особенно если вставка интенсивная. Используйте Buffer-таблицу для этого.
источник

MK

Mikhail Khotko in ClickHouse не тормозит
Yuri Velgosha
Можно, но не нужно, особенно если вставка интенсивная. Используйте Buffer-таблицу для этого.
А можно подробнее про буфер таблицы? А то мы у себя перед вставкой в таблицу буферизуем, будет круто, если можно было бы буфер в самом кх иметь, чтобы вставлять кусками
источник