Size: a a a

ClickHouse не тормозит

2020 July 27

DC

Denny Crane (I don't... in ClickHouse не тормозит
Алексей Артамонов
ProfileEvents.Names:  ['Query','SelectQuery','FileOpen','Seek','ReadBufferFromFileDescriptorRead','ReadBufferFromFileDescriptorReadBytes','ReadCompressedBytes','CompressedReadBufferBlocks','CompressedReadBufferBytes','IOBufferAllocs','IOBufferAllocBytes','ArenaAllocChunks','ArenaAllocBytes','FunctionExecute','MarkCacheHits','CreatedReadBufferOrdinary','DiskReadElapsedMicroseconds','NetworkReceiveElapsedMicroseconds','NetworkSendElapsedMicroseconds','SlowRead','ReadBackoff','SelectedParts','SelectedRanges','SelectedMarks','ContextLock','RWLockAcquiredReadLocks','RealTimeMicroseconds','UserTimeMicroseconds','SystemTimeMicroseconds','SoftPageFaults','OSIOWaitMicroseconds','OSCPUWaitMicroseconds','OSCPUVirtualTimeMicroseconds','OSReadBytes','OSWriteBytes','OSReadChars','OSWriteChars']
ProfileEvents.Values: [1,1,136,4,382,223787659,537271323,3152,859885024,290,70297554,8732,2424864768,2599,136,136,1271943726,5906434037,1275554,30,15,58,58,2997,131,4,39967160802,1034040000,9370032000,1779567,38459498,18590443614,10400920775,1589248,40960,223785984,7168]
Settings.Names:       ['use_uncompressed_cache','load_balancing','skip_unavailable_shards','log_queries','max_bytes_before_external_group_by','max_memory_usage']
Settings.Values:      ['0','random','1','1','32500000000','70000000000’]```
под статистикой я имел в виду вывод клиента

1 rows in set. Elapsed: 0.001 sec. Processed 8.19 thousand rows, 65.54 KB (6.61 million rows/s., 52.92 MB/s.)

ну дело вот какое, у вас есть например какие-то запросы они как-то работают, какое-то железо, и 2 клиента, и все ОК, теперь вы например хотите чтобы клиентов стало 20, и например чтобы запросы пускай работают в 10 раз медленнее -- это одна история, или вы хотите чтобы запросы выстраивались в очередь это другая, и т.д.
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Artyom Zverev
date >= '01-05-2020' and date <= '30-05-2020' так?
по ситуации бывает что
date >= '01-05-2020' and date <= '30-05-2020' так?
а бывает datetime >= '01-05-2020 00:00:00' and datetime <= '30-05-2020 23:59:59'
а бывает datetime >= '01-05-2020 00:00:00' and datetime < '01-06-2020 00:00:00'
а бывает toYYYMM(datetime) = 202005
источник

AZ

Artyom Zverev in ClickHouse не тормозит
ух, ок, спасибо, буду думать
источник

ДД

Дмитрий Демьянович... in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
нельзя (можно будет с 20.5 или с 20.6, там в соотвествии с настройками load_balacing и prefer_localhost_replica)
Еще вопрос к вам по поводу вставки данных. Сейчас, судя по всему, Ditributed таблица распухла из частых одиночных инсертов. Можно ли с репликацией использовать Buffer для вставки батчами или не желательно?
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Дмитрий Демьянович
Еще вопрос к вам по поводу вставки данных. Сейчас, судя по всему, Ditributed таблица распухла из частых одиночных инсертов. Можно ли с репликацией использовать Buffer для вставки батчами или не желательно?
можно, про недостатки buffer все написано в доке
источник

ДД

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

АА

Алексей Артамонов... in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
под статистикой я имел в виду вывод клиента

1 rows in set. Elapsed: 0.001 sec. Processed 8.19 thousand rows, 65.54 KB (6.61 million rows/s., 52.92 MB/s.)

ну дело вот какое, у вас есть например какие-то запросы они как-то работают, какое-то железо, и 2 клиента, и все ОК, теперь вы например хотите чтобы клиентов стало 20, и например чтобы запросы пускай работают в 10 раз медленнее -- это одна история, или вы хотите чтобы запросы выстраивались в очередь это другая, и т.д.
@den_crane приблизительно идею понял, сейчас сделал текущий запрос
Progress: 101.02 million rows, 19.43 GB (606.73 thousand rows/s., 116.70 MB/s.)
источник

АА

Алексей Артамонов... in ClickHouse не тормозит
@den_crane но вот после 95% упал с миллиона до тысяч в секунду
источник

АА

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

АА

Алексей Артамонов... in ClickHouse не тормозит
т.е я открываю в соседнем окне терминал и достучаться по ssh  до КХ не могу
источник

RN

Roman Neklesa in ClickHouse не тормозит
доброго дня. в чем может быть проблема в записи данных во вью?
ошибку я не ловлю, но тпблица и вью пустая

CREATE TABLE stg_device (
 client_id   UInt32,
 hash_id     UInt32,  
 dts  Date,    
 dtm  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
;
источник

DN

Dmitriy Novikov in ClickHouse не тормозит
Привет. А есть смысл делать Nullable String? Я вот просто щас увидел такое и пытаюсь понять целесообразность
источник

АА

Алексей Артамонов... in ClickHouse не тормозит
@den_crane вот он отработал: 100 rows in set. Elapsed: 1170.987 sec. Processed 101.02 million rows, 19.43 GB (86.27 thousand rows/s., 16.59 MB/s.)
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Алексей Артамонов
т.е я открываю в соседнем окне терминал и достучаться по ssh  до КХ не могу
скорее всего swapping , vmstat 1 100 в соседнем окне заранее и смотреть столбцы si so bi bo
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Алексей Артамонов
@den_crane вот он отработал: 100 rows in set. Elapsed: 1170.987 sec. Processed 101.02 million rows, 19.43 GB (86.27 thousand rows/s., 16.59 MB/s.)
медленно скорее всего либо сваппинг либо группировка через медленный диск
источник

AZ

Artyom Zverev in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
по ситуации бывает что
date >= '01-05-2020' and date <= '30-05-2020' так?
а бывает datetime >= '01-05-2020 00:00:00' and datetime <= '30-05-2020 23:59:59'
а бывает datetime >= '01-05-2020 00:00:00' and datetime < '01-06-2020 00:00:00'
а бывает toYYYMM(datetime) = 202005
огромное спасибо, оказывается у меня данных за те месяца, что ищу не было )
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Dmitriy Novikov
Привет. А есть смысл делать Nullable String? Я вот просто щас увидел такое и пытаюсь понять целесообразность
любые Nullable поля занимают больше места чем не Nullable и запросы к ним работают до 2 раз медленее
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Roman Neklesa
доброго дня. в чем может быть проблема в записи данных во вью?
ошибку я не ловлю, но тпблица и вью пустая

CREATE TABLE stg_device (
 client_id   UInt32,
 hash_id     UInt32,  
 dts  Date,    
 dtm  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
;
я исправил вашу таблицу на 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;
источник

MK

Maxim Kniazkov in ClickHouse не тормозит
Здравствуйте! Прошу тамками не кидать, новичек. Есть таблица событий, в ней часть полей решил сделать LowCardinality(String), никаких внешних справочников. По этим LowCardinality(String) потом нормально будет GROUP BY?
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Maxim Kniazkov
Здравствуйте! Прошу тамками не кидать, новичек. Есть таблица событий, в ней часть полей решил сделать LowCardinality(String), никаких внешних справочников. По этим LowCardinality(String) потом нормально будет GROUP BY?
да, будет нормально
источник