Size: a a a

ClickHouse не тормозит

2020 July 27

RN

Roman Neklesa in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
я исправил вашу таблицу на SimpleAggregateFunction
вы вообще неправильно используете AggregatingMergeTree
И у вас нету hash_id в селекте MV

create table contacts (client_id   UInt32,  hash_id     UInt32, dts Date,  dtm Date) 
Engine MergeTree() PARTITION BY toYYYYMM(dts)
ORDER BY (client_id, hash_id);

CREATE TABLE stg_device (
 client_id   UInt32,
 hash_id     UInt32,  
 dts  SimpleAggregateFunction(min, Date),    
 dtm  SimpleAggregateFunction(max, Date)      
) ENGINE = AggregatingMergeTree()
PARTITION BY toYYYYMM(dts)
ORDER BY (client_id, hash_id)
SETTINGS index_granularity = 8192;

CREATE MATERIALIZED VIEW stg_device_handler
TO stg_device

(
 client_id   UInt32,  
 hash_id     UInt32,
 dts  Date,    
 dtm  Date      
)
AS
SELECT
   client_id,
   min(dts) as dts,
   max(dtm) as dtm
FROM contacts
GROUP BY client_id,
      hash_id
;

insert into contacts values (1,1,'2011-05-05', '2020-07-06');
insert into contacts values (1,1,'2011-05-06', '2020-07-01');

optimize table stg_device final

select * from stg_device;
спасибо! буду разбираться дальше
источник

DN

Dmitriy Novikov in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
любые Nullable поля занимают больше места чем не Nullable и запросы к ним работают до 2 раз медленее
С этим знаком, просто выдали доступ к БД более опытных коллег, вот я смотрю и думаю зачем так сделали. А не скажите почему null всегда занимает больше места? этот момнет неопнятне
источник

MK

Maxim Kniazkov in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
да, будет нормально
А можно как-то эти внутренние словари просмотреть? Или достаточно SELECT DISTINCT ... по таблице событий?
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Maxim Kniazkov
А можно как-то эти внутренние словари просмотреть? Или достаточно SELECT DISTINCT ... по таблице событий?
нельзя.

SELECT DISTINCT -- да, но он не использует оптимизацию (свойства) LC

эквивалентный запрос -- select a from факты group by a имеет оптимизацию и использует свойство lowcardinality
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Dmitriy Novikov
С этим знаком, просто выдали доступ к БД более опытных коллег, вот я смотрю и думаю зачем так сделали. А не скажите почему null всегда занимает больше места? этот момнет неопнятне
потому что так разработчики КХ придумали хранить nullable
источник

DN

Dmitriy Novikov in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
потому что так разработчики КХ придумали хранить nullable
пнл :) спасибо
источник

MK

Maxim Kniazkov in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
нельзя.

SELECT DISTINCT -- да, но он не использует оптимизацию (свойства) LC

эквивалентный запрос -- select a from факты group by a имеет оптимизацию и использует свойство lowcardinality
Спасибо!
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Dmitriy Novikov
пнл :) спасибо
nulllable появился очень поздно, подозреваю что в Яндексе их не используют, и не планируют.

У меня тоже нет ни одного поля nulllable и при джойнах тоже не используется join_use_nulls
источник

DN

Dmitriy Novikov in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
nulllable появился очень поздно, подозреваю что в Яндексе их не используют, и не планируют.

У меня тоже нет ни одного поля nulllable и при джойнах тоже не используется join_use_nulls
ок, спасибо еще раз, видимо это у них робот создавал таблицу...
источник

АА

Алексей Артамонов... in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
скорее всего swapping , vmstat 1 100 в соседнем окне заранее и смотреть столбцы si so bi bo
@den_crane ну я бы не сказал что тут критично
источник

АА

Алексей Артамонов... in ClickHouse не тормозит
источник

АА

Алексей Артамонов... in ClickHouse не тормозит
@den_crane в начале были блоки поболее, может отказаться от свапа
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Алексей Артамонов
@den_crane в начале были блоки поболее, может отказаться от свапа
в любом случае то что у вас не работает SSH из-за того что КХ сожрал все ресурсы, это не проблема КХ или старого ядра, возможно это проблема vmware (нет ресурсов cpu на сетку), возможно сваппинг, надо смотреть ресурсы, htop, sar, vmstat . Единственно что можно сказать КХ чтобы приоритет ниток понизил для ниток выполняющих запросы --  os_thread_priority, но это так лечение симптомов

--os_thread_priority arg                                         If non zero - set corresponding 'nice' value for query processing threads. Can be used to adjust query priority for OS
источник

ДД

Дмитрий Демьянович... in ClickHouse не тормозит
@den_crane подскажите, пожалуйста, делаю Insert в Buffer (таблица назначения указана как Distributed). В Buffer указана настройки сбрасывания в таблицу назначения следующим образом: CREATE TABLE IF NOT EXISTS Retention.Events_Buffer ON CLUSTER Retention_cluster AS Retention.Events ENGINE = Buffer(Retention, Events, 16, 100, 1000, 10000, 1000000, 10000000, 100000000). Проверяю селектом, данные есть и через запрос к Distributed и через запрос к Buffer. Разве не должны данные в Dictributed сбросится спустя 100 сек, или при достижении 10K строк и т.д.?
источник

ДД

Дмитрий Демьянович... in ClickHouse не тормозит
Отбой, кажись мой косяк
источник

V

Vitalij in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
А проблема отсюда какая?
пока никакой, но если не освобождаются ресурсы где-то, то проблема может появится - закончатся ресурсы. Поэтому пытаюсь заранее выяснить
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Vitalij
пока никакой, но если не освобождаются ресурсы где-то, то проблема может появится - закончатся ресурсы. Поэтому пытаюсь заранее выяснить
источник

ДД

Дмитрий Демьянович... in ClickHouse не тормозит
Запрос вида
источник

ДД

Дмитрий Демьянович... in ClickHouse не тормозит
SELECT
   Date,
   SUM(Sent) AS AllSent,
   SUM(Opened) AS AllOpened,
   SUM(Clicked) AS AllClicked,
   SUM(Sent) > 0 AS UniqueSent,
   SUM(Opened) > 0 AS UniqueOpened,
   SUM(Clicked) > 0 AS UniqueClicked
FROM Events_Buffer AS t1 ANY INNER JOIN (
       SELECT
           MessageId,
           Identity,
           SUM(multiIf(Type = 'Sent', 1, 0)) AS Sent,
           SUM(multiIf(Type = 'Opened', 1, 0)) AS Opened,
           SUM(multiIf(Type = 'Clicked', 1, 0)) AS Clicked
           FROM Retention.Events_Local WHERE (Type IN ('Sent', 'Opened', 'Clicked')) AND (Realm = 'dating') AND (Date >= '2020-07-20') AND (Date <= '2020-07-27') AND (Channel IN ('electronicmail')) GROUP BY MessageId, Identity) AS t2
ON t2.MessageId = t1.MessageId AND t2.Identity = t1.Identity
WHERE (Type = 'Sent') AND (Date >= '2020-07-20') AND (Date <= '2020-07-27') GROUP BY Date, Identity, MessageId
источник

ДД

Дмитрий Демьянович... in ClickHouse не тормозит
Падает с ошибкой
источник