Size: a a a

ClickHouse не тормозит

2020 September 24

DT

Dmitry Titov in ClickHouse не тормозит
Dj
есть таблица типа
grp,sgrp (1-3 млн на грп),others (1-3 млн на грп)
order by grp, sgrp

как прочитать топ20 sgrp внутри каждой grp не используя массивы используя индекс? )
ORDER BY grp, sgrp, count() DESC LIMIT 20 BY grp, sgrp ?
или топ по какому параметру
источник

T

T in ClickHouse не тормозит
хм
источник

D

Dj in ClickHouse не тормозит
Dmitry Titov
ORDER BY grp, sgrp, count() DESC LIMIT 20 BY grp, sgrp ?
или топ по какому параметру
LIMIT 20 BY grp, sgrp

точно, вот это искал!
источник

T

T in ClickHouse не тормозит
Dmitry Titov
Еще один вариант сделать такой ORDER BY, но нужно тогда условие на длительность писать в WHERE
ORDER BY (roundToHour/Day(start,end),start)
этот вариант если партицировать данные по дням?
источник

DT

Dmitry Titov in ClickHouse не тормозит
T
этот вариант если партицировать данные по дням?
Ну партицирование не особо влияет тут, хотя с 13млдр в день, возможно я задумался бы и подневном партицоровании.
источник

DT

Dmitry Titov in ClickHouse не тормозит
Тут разве что подбирать гранулярность для duration экспериментально, что бы в среднем подходило +-для всех запросов
источник

D

Dj in ClickHouse не тормозит
HOSTNAME :) select count() from tablename where datadatetime>= toDate('2020-09-01') and datadatetime <toDate('2020-09-02');

SELECT count()
FROM tablename
WHERE (datadatetime >= toDate('2020-09-01')) AND (datadatetime < toDate('2020-09-02'))

┌──count()─┐
│ 76221416 │
└──────────┘

1 rows in set. Elapsed: 0.405 sec. Processed 388.15 million rows, 1.55 GB (958.51 million rows/s., 3.83 GB/s.)

HOSTNAME :) select count() from tablename where toDate(datadatetime)= toDate('2020-09-01');

SELECT count()
FROM tablename
WHERE toDate(datadatetime) = toDate('2020-09-01')

┌──count()─┐
│ 76221416 │
└──────────┘

1 rows in set. Elapsed: 0.426 sec. Processed 533.12 million rows, 2.13 GB (1.25 billion rows/s., 5.00 GB/s.)

pruning при toDate()=toDate() не работает? о_О (20.3)
источник

D

Dj in ClickHouse не тормозит
Dj
HOSTNAME :) select count() from tablename where datadatetime>= toDate('2020-09-01') and datadatetime <toDate('2020-09-02');

SELECT count()
FROM tablename
WHERE (datadatetime >= toDate('2020-09-01')) AND (datadatetime < toDate('2020-09-02'))

┌──count()─┐
│ 76221416 │
└──────────┘

1 rows in set. Elapsed: 0.405 sec. Processed 388.15 million rows, 1.55 GB (958.51 million rows/s., 3.83 GB/s.)

HOSTNAME :) select count() from tablename where toDate(datadatetime)= toDate('2020-09-01');

SELECT count()
FROM tablename
WHERE toDate(datadatetime) = toDate('2020-09-01')

┌──count()─┐
│ 76221416 │
└──────────┘

1 rows in set. Elapsed: 0.426 sec. Processed 533.12 million rows, 2.13 GB (1.25 billion rows/s., 5.00 GB/s.)

pruning при toDate()=toDate() не работает? о_О (20.3)
да,  на месячных партициях  toDate() с двух сторон не работает.
говорил я всем, пишите column>=mindate and column<maxdate...
источник

N

Nikolay in ClickHouse не тормозит
как такое вообще работает ? select distinct a from ( select 1 as a, 2 as b) order by b; тут же нету b,а он позволяет сортировать.
источник

D

Dj in ClickHouse не тормозит
b есть, 2 которая...
источник

D

Dj in ClickHouse не тормозит
Nikolay
как такое вообще работает ? select distinct a from ( select 1 as a, 2 as b) order by b; тут же нету b,а он позволяет сортировать.
select name from system.settings s order by changed desc;


так же как это работает собственно
источник

D

Dj in ClickHouse не тормозит
ALTER TABLE [db].name ADD INDEX name expression TYPE type GRANULARITY value AFTER name [AFTER name2] -


что делает AFTER?
источник

SC

Smoked Cheese in ClickHouse не тормозит
вставляет после индекса name?
источник

N

Nikolay in ClickHouse не тормозит
Dj
select name from system.settings s order by changed desc;


так же как это работает собственно
тут нет distinct. сначала же выполнится distinct, а потом order by. тут то все логично.после distinct уже нету поля b. как он по нему сортирует.
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Alexey Pikin
добрый день, на ReplicatedMergeTree вываливается таймаут
OPTIMIZE TABLE mytable PARTITION 202002 FINAL DEDUPLICATE


Received exception from server (version 19.1.14):
Code: 209. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::NetException. DB::NetException: Timeout exceeded while reading from socket (replica2:9000): while receiving packet from replica2:9000, replica2.

что мне надо в настройках подкрутить, чтоб его увеличить?
это ок
ничего не надо крутить.
это таймаут клиента. OPTIMIZE байты не шлет
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Ilia Ablamonov
Добрый день!
А есть какая-то настройка лимита строк, выводимых клиентом?
Чтобы поменять вот эти вот 10к в "Showed first 10000".
set output_format_pretty_max_rows=5
источник

IA

Ilia Ablamonov in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
set output_format_pretty_max_rows=5
Спасибо!
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Nikolay
как такое вообще работает ? select distinct a from ( select 1 as a, 2 as b) order by b; тут же нету b,а он позволяет сортировать.
это нормальный SQL, в половине баз в select можно не выбирать поле по которому order by
источник

D

Dj in ClickHouse не тормозит
Nikolay
тут нет distinct. сначала же выполнится distinct, а потом order by. тут то все логично.после distinct уже нету поля b. как он по нему сортирует.
да, случайный рендом не увидел дистинкт. вы правы. Это плохо. Но не смертельно.
источник

N

Nikolay in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
это нормальный SQL, в половине баз в select можно не выбирать поле по которому order by
в oracle так нельзя
источник