Size: a a a

ClickHouse не тормозит

2019 December 12

M

Mykola in ClickHouse не тормозит
Konstantin Sevastianov
а какие у вас объемы, и что для вас «тормозит»?
сейчас 1 миллиард тестовых данных, отрабатывает примерно за 10 сек.
Планируются данных около триллиона
источник

KS

Konstantin Sevastian... in ClickHouse не тормозит
я сейчас выполнил запрос как у вас на 2млрд записей - 1.5 секунды
источник

KS

Konstantin Sevastian... in ClickHouse не тормозит
который с условиями на координаты
источник

M

Mykola in ClickHouse не тормозит
Konstantin Sevastianov
я сейчас выполнил запрос как у вас на 2млрд записей - 1.5 секунды
у вас заметно лучше
источник

KS

Konstantin Sevastian... in ClickHouse не тормозит
а ну у вас получается еще и таблица не распределнная судая по коду
источник

M

Mykola in ClickHouse не тормозит
Konstantin Sevastianov
который с условиями на координаты
с условиями по координатам у меня тоже быстро, тут проблем нет.
Тормозит такое, так как полный фуллскан:
SELECT COUNT(*) FROM log WHERE uuid='4c7210c1-45fa-4eac-aef5-7bf1c180bd07'
источник

KS

Konstantin Sevastian... in ClickHouse не тормозит
Mykola
с условиями по координатам у меня тоже быстро, тут проблем нет.
Тормозит такое, так как полный фуллскан:
SELECT COUNT(*) FROM log WHERE uuid='4c7210c1-45fa-4eac-aef5-7bf1c180bd07'
count() по пользователю - 1сек
источник

KS

Konstantin Sevastian... in ClickHouse не тормозит
у меня только пользователи интовые
источник

M

Mykola in ClickHouse не тормозит
а если триллион будет, время не увеличиться пропорционально до 1000 сек?
источник

M

Mykola in ClickHouse не тормозит
я предпологал что можно какие то вторичные индексы сделать, но судя по всему этот подход тут отсутствует
источник

ОР

Олег Рязанов... in ClickHouse не тормозит
Mykola
я предпологал что можно какие то вторичные индексы сделать, но судя по всему этот подход тут отсутствует
h3 может помочь
источник

ЕГ

Евгений Гаврилов... in ClickHouse не тормозит
Oleg Kozlovskiy
А так вообще можно? Использовать обычные аггрегации в движке AggregatingMergeTree? 🤔

min(created_date) AS min_created_date,
Так и получится, если поле учавствет в сортировке
источник

KS

Konstantin Sevastian... in ClickHouse не тормозит
Mykola
а если триллион будет, время не увеличиться пропорционально до 1000 сек?
у меня данные шардируются по пользователю, так как шарда 3шт, то видимо самый пессимистичный сценарий - это 333 секунды)
а запросы к базе по id пользователя будут стандартные? если да, то может имеет смысл посмотреть в сторону MatView?
источник

YM

Yaroslav Makarov in ClickHouse не тормозит
Немного сузил проблему по Cannot convert column log_type because it is non constant in source stream but must be constant in result.

Не получается сделать SELECT-ы с указанием констант только для движка Merge.

SELECT
   time_local,
   response_code,
   'a' AS log_type
FROM test_merge
LIMIT 1

Received exception from server (version 19.17.4):
Code: 171. DB::Exception: Received from  DB::Exception: Cannot convert column log_type because it is non constant in source stream but must be constant in result.


SELECT
   time_local,
   response_code,
   'a' AS log_type
FROM test_distributed_v1
LIMIT 1

┌──────────time_local─┬─response_code─┬─log_type─┐
│ 2019-10-31 07:00:05 │           200 │ a        │
└─────────────────────┴───────────────┴──────────┘

Merge таблица создана как:
CREATE TABLE default.test_merge ON CLUSTER logs AS default.test_distributed_v1
ENGINE = Merge(default, '^test_distributed_v');

Похоже на баг? Или я что-то не так делаю.....
источник

M

Mykola in ClickHouse не тормозит
Konstantin Sevastianov
у меня данные шардируются по пользователю, так как шарда 3шт, то видимо самый пессимистичный сценарий - это 333 секунды)
а запросы к базе по id пользователя будут стандартные? если да, то может имеет смысл посмотреть в сторону MatView?
> а запросы к базе по id пользователя будут стандартные? если да, то может имеет смысл посмотреть в сторону MatView?

да, периодически нужно делать такие запросы.

А MaterializedView решает эту проблему?
Я думал это что то типа сохраненного запроса, как в mysql view
источник

KS

Konstantin Sevastian... in ClickHouse не тормозит
Mykola
> а запросы к базе по id пользователя будут стандартные? если да, то может имеет смысл посмотреть в сторону MatView?

да, периодически нужно делать такие запросы.

А MaterializedView решает эту проблему?
Я думал это что то типа сохраненного запроса, как в mysql view
MatView материализует данные при инсертах, это обычный view просто сохраняет запрос, а матвью физических их запишет в таблицу в нужном вам виде
источник

M

Mykola in ClickHouse не тормозит
ок, буду читать разбираться, пока не понял 🙂
Спасибо
источник

O

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

T

Taras in ClickHouse не тормозит
тип атрибута LowCardinality(String) для hashed словаря можно указывать? если да - имеет ли смысл?
источник

F🚜

Felixoid 🚜🇩🇪... in ClickHouse не тормозит
Доброго утра. Я наткнулся на проблему, что date_time_input_format = 'best_effort' почему-то не помогает распарсить валидный iso8601 2019-12-12T10:32:32+01:00. Кто-то решал подобную проблему?
SELECT toDateTime('2019-12-12T10:32:32+01:00')
Code: 6. DB::Exception: Received from localhost:9000. DB::Exception: Cannot parse string '2019-12-12T10:32:32+01:00' as DateTime: syntax error at position 19 (parsed just '2019-12-12T10:32:32').

если убрать +01:00, то работает
источник