Size: a a a

ClickHouse не тормозит

2020 August 28

A

Artem in ClickHouse не тормозит
Если делать в лоб, без матвью или группировки по месяцам, то нужно делать ORDER BY для всей таблицы, а на это не хватает памяти и вообще медленно получается. Хочу сначала группировать по месяцам и вычислять приблизительные границы диапазона с шагом в один месяц.
источник

A

Artem in ClickHouse не тормозит
Ещё вопрос. CODEC(ZSTD) или любой другой работает для матвью или нет? Если посмотреть в system.columns, то там все размеры 0 для полей таблицы AggregatingMergeTree, хотя для обычных таблиц размеры в сжатом и распакованном виде правильные показывает.
источник

SC

Smoked Cheese in ClickHouse не тормозит
Само мат вью ничего не хранит, хранит таблица под ней. Либо то что указывал при создании, либо .inner.mat_view_name
источник

A

Artem in ClickHouse не тормозит
Smoked Cheese
Само мат вью ничего не хранит, хранит таблица под ней. Либо то что указывал при создании, либо .inner.mat_view_name
Ну ок, у меня под матвью AggregatingMergeTree, но размеры 0 почему-то
источник

SC

Smoked Cheese in ClickHouse не тормозит
Ты по какой таблице смотришь статистику?
источник

A

Artem in ClickHouse не тормозит
Smoked Cheese
Ты по какой таблице смотришь статистику?
По CREATE MATERIALIZED VIEW myname
источник

SC

Smoked Cheese in ClickHouse не тормозит
Смотри .inner.myname
источник

A

Artem in ClickHouse не тормозит
Ага, похоже, создаётся ещё одна таблица, с названием .inner.myname и если смотреть по ней, то циферки правильные. Спасибо.
источник

AM

Alex Moran in ClickHouse не тормозит
Есть какая то агрегатная функция на подобии argMax и groupArray, чтоб собирало массив по максимальному значению другой переменной?
источник

AM

Alex Moran in ClickHouse не тормозит
SELECT
   
arrayReduce(
               'min',
               
arrayFilter(
                           x -> x.1 =
max(dt1),
                           
groupArray(
                                         (dt1, dt2)
                                         )
                           ).2
               )
FROM
(select
   
today() + interval arrayJoin(range(2)) day as dt1,
   
today() + interval arrayJoin(range(10)) day as dt2)


Сделал такой аррейфильтр, но собирать всю таблицу в массив кортежей не совсем кошерно.
источник

DT

Dmitry Titov in ClickHouse не тормозит
Alex Moran
Есть какая то агрегатная функция на подобии argMax и groupArray, чтоб собирало массив по максимальному значению другой переменной?
Тебе нужно собрать массив из нескольких столбцов, так?
источник

AM

Alex Moran in ClickHouse не тормозит
Dmitry Titov
Тебе нужно собрать массив из нескольких столбцов, так?
Мне нужно найти минимальное значение одного столба, по максимальному другому в один селект и без дописки в where (dt1,dt2) in (select max(dt1)....)
источник

DT

Dmitry Titov in ClickHouse не тормозит
Alex Moran
Мне нужно найти минимальное значение одного столба, по максимальному другому в один селект и без дописки в where (dt1,dt2) in (select max(dt1)....)
ORDER BY dt1 DESC, dt2 ASC LIMIT 1?
источник

AM

Alex Moran in ClickHouse не тормозит
Dmitry Titov
Тебе нужно собрать массив из нескольких столбцов, так?
То что в селекте выше, делает то что мне нужно, но всю таблицу в массив кортежей собирать мне не очень нравится идея.
источник

DT

Dmitry Titov in ClickHouse не тормозит
Alex Moran
То что в селекте выше, делает то что мне нужно, но всю таблицу в массив кортежей собирать мне не очень нравится идея.
SELECT dt1
FROM
(
   SELECT
       today() + toIntervalDay(arrayJoin(range(2))) AS dt1,
       today() + toIntervalDay(arrayJoin(range(10))) AS dt2
)
ORDER BY
   dt2 DESC,
   dt1 ASC
LIMIT 1
источник

AM

Alex Moran in ClickHouse не тормозит
Dmitry Titov
ORDER BY dt1 DESC, dt2 ASC LIMIT 1?
Там ещё будет ключ, который по сути можно вместо группировки засунуть в limit 1 by id?
источник

DT

Dmitry Titov in ClickHouse не тормозит
Alex Moran
Там ещё будет ключ, который по сути можно вместо группировки засунуть в limit 1 by id?
Да
источник

AM

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

AK

Alexey Kostarev in ClickHouse не тормозит
Добрый день коллеги
Давненько не работал с внешними словарями. Заклинило...
Импортирую из базы Postgres словари
Вижу их в  
select * from system.dictionaries;
┌─database─┬─name───────────────────────┬─status─┬─origin────────────────────────────────────────────────┬─type─────────────┬─key────┬─attribute.names────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬─attribute.types───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬─bytes_allocated─┬─query_count─┬─hit_rate─┬─element_count─┬─────load_factor─┬─source────────────────────────────┬─lifetime_min─┬─lifetime_max─┬──loading_start_time─┬─last_successful_update_time─┬─loading_duration─┬─last_exception─┐
│          │ Оборудование               │ LOADED │ /etc/clickhouse-server/my_dictionary.xml │ ComplexKeyHashed │ (UUID) │ ['Идентификатор','Наименование','Актуально','createtime','creator','edittime','editor','ФункциональныйМодуль','ВидОборудования','КомплексОборудования']                                                                                                    │ ['String','String','Int8','DateTime','String','DateTime','String','UUID','UUID','UUID']

Я могу с ними работать как с обычными таблицами через SELECT, использовать их в JOIN?
Прямое обращеник ним мне дает:
select * from Оборудование;
ode: 291. DB::Exception: Received from localhost:9000. DB::Exception: Direct access to _temporary_and_external_tables database is not allowed..
источник

DT

Dmitry Titov in ClickHouse не тормозит
Alexey Kostarev
Добрый день коллеги
Давненько не работал с внешними словарями. Заклинило...
Импортирую из базы Postgres словари
Вижу их в  
select * from system.dictionaries;
┌─database─┬─name───────────────────────┬─status─┬─origin────────────────────────────────────────────────┬─type─────────────┬─key────┬─attribute.names────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬─attribute.types───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬─bytes_allocated─┬─query_count─┬─hit_rate─┬─element_count─┬─────load_factor─┬─source────────────────────────────┬─lifetime_min─┬─lifetime_max─┬──loading_start_time─┬─last_successful_update_time─┬─loading_duration─┬─last_exception─┐
│          │ Оборудование               │ LOADED │ /etc/clickhouse-server/my_dictionary.xml │ ComplexKeyHashed │ (UUID) │ ['Идентификатор','Наименование','Актуально','createtime','creator','edittime','editor','ФункциональныйМодуль','ВидОборудования','КомплексОборудования']                                                                                                    │ ['String','String','Int8','DateTime','String','DateTime','String','UUID','UUID','UUID']

Я могу с ними работать как с обычными таблицами через SELECT, использовать их в JOIN?
Прямое обращеник ним мне дает:
select * from Оборудование;
ode: 291. DB::Exception: Received from localhost:9000. DB::Exception: Direct access to _temporary_and_external_tables database is not allowed..
Если ты создаешь словари через xml конфиги, то ты должен для прямого доступа создать таблицу с движком DIctionary
источник