
Gubaydullin
16.03.2018
15:28:39
─name──────────────────────────┐
│ 20130101_20130131_1_89_16 │
│ 20130131_20130131_90_90_0 │
│ 20130101_20130101_1070_1070_0 │
│ 20130201_20130227_91_166_14 │
│ 20130227_20130228_167_171_1 │
│ 20130301_20130331_172_261_16 │
│ 20130331_20130331_262_262_0 │
│ 20130401_20130429_263_344_15 │
│ 20130429_20130430_345_349_1 │
│ 20130501_20130529_350_431_15 │
│ 20130529_20130531_432_439_2 │
│ 20130601_20130629_440_521_15 │
│ 20130629_20130630_522_527_1 │
│ 20130701_20130731_528_617_16 │
│ 20130801_20130831_618_707_16 │
│ 20130901_20130929_708_789_15 │
│ 20130929_20130930_790_795_1 │
│ 20131001_20131031_796_884_16 │
│ 20131031_20131031_885_885_0 │
│ 20131101_20131129_886_967_15 │
│ 20131129_20131130_968_972_1 │
│ 20131201_20131231_973_1062_16 │
│ 20131231_20131231_1063_1063_0 │
│ 20140101_20140101_1064_1073_3
я же делал optimize table hit
он не сработал
как зафорсить merge?

Google

Vladislav
16.03.2018
15:29:16
OPTIMIZE FINAL можно попробовать

antuan
16.03.2018
15:29:20

Kirill
16.03.2018
15:29:51

antuan
16.03.2018
15:31:17
???
:) rename table offers to old_offers, new_offers to offers;
RENAME TABLE offers TO old_offers, new_offers TO offers
Received exception from server (version 1.1.54343):
Code: 48. DB::Exception: Received from localhost:9000, ::1. DB::Exception: Method rename is not supported by storage Dictionary.
0 rows in set. Elapsed: 0.033 sec.

Alexey
16.03.2018
15:31:55

antuan
16.03.2018
15:34:02
конфиг я изменил, добавил нужные атрибуты. хотелось бы их увидеть в соответствующей табличке
пришлось дропнуть старую и создать новую с нужными колонками

Gubaydullin
16.03.2018
15:34:44
OPTIMIZE TABLE hit FINAL
Received exception from server (version 1.1.54362):
Code: 36. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: FINAL flag for OPTIMIZE query is meaningful only with specified PARTITION.
0 rows in set. Elapsed: 0.038 sec.
нужно указывать конкретное имя партиции
для optimize final
а можете скинуть ссылку
где подробно описывается механизм схлопывания?
для CollapsingMergeTree

Google

Kirill
16.03.2018
15:37:52

Gubaydullin
16.03.2018
15:38:14
При слиянии, для каждой группы идущих подряд одинаковых значений первичного ключа
вот это смущает
"группы идущих подряд"
то есть если запись была вставлена после миллиона записей
она не схлопнется?
с первой записью
которая имеет такой же pk

RUNET
16.03.2018
15:40:32
Чтобы схлопнулось, надо вставить 2 записи, старую и новую

Gubaydullin
16.03.2018
15:40:42
смотрите
запись под номером 1, pk x, sign 1, lead_id null
затем миллион записей вставлено
затем 2 записи:
pk x, sign -1, lead_id null
pk x sign 1, lead_id y
у меня почему-то не схлопывается
в базе так и висят три записи

RUNET
16.03.2018
15:44:43
если в миллионе записей ее не было, то по идеи все ок должно быть.
проблем никаких не было

Alex
16.03.2018
15:44:55
Записи все в одной партиции?

Gubaydullin
16.03.2018
15:45:14
) ENGINE = CollapsingMergeTree(created_date, (stream_uuid, created_time, user_id, id), 8192, sign)

Google

Alex
16.03.2018
15:45:45
если created_date одинаковая, то да

Gubaydullin
16.03.2018
15:47:52
вот такое я сейчас наблюдаю
вот запрос который показывает что у записей pk одинаковый
я хотел обновить lead_id у первой
делал optimize table hit
Но не схлопнулись они

Александр
16.03.2018
16:02:56
И с final
Можно делать 100 оптимайзов таблицы, но каждый оптимайз мерджит часть данных
А не все данные
Я так почти несколько часов мерджил таблицу на 9 ярдов строк
Дубликаты чистил, подчистилось до 6 ярдов строк

Gubaydullin
16.03.2018
16:04:38
select distinct name from system.parts where active and table = 'hit'
а как узнать в какой именно партиции
находится запись

RUNET
16.03.2018
16:05:58
optimze table hits partition 201301 final
по идеи так

Gubaydullin
16.03.2018
16:06:16
SELECT DISTINCT name
FROM system.parts
WHERE active AND (table = 'hit') AND (name LIKE '20130101%')
┌─name──────────────────────────┐
│ 20130101_20130131_1_89_16 │
│ 20130101_20130101_1070_1070_0
вот две таких партиции нашел

Google

Gubaydullin
16.03.2018
16:06:28
сейчас попробую
optimize table hit final '20130101_20130131_1_89_16'
Syntax error: failed at position 26:
optimize table hit final '20130101_20130131_1_89_16'
Expected DEDUPLICATE

RUNET
16.03.2018
16:10:37
см. выше, поправил сообщение

Gubaydullin
16.03.2018
16:10:39
optimize table hit partition '201301' final
ух ты
вот так он отработал

Kirill
16.03.2018
16:10:59

RUNET
16.03.2018
16:11:00
ну и славненько)

Gubaydullin
16.03.2018
16:11:26
и схлопнул)

RUNET
16.03.2018
16:11:52
счастье было рядом)

Gubaydullin
16.03.2018
16:12:07
а по крону
optimize не вызывается?
с какой периодичностью будут идти схлопывания

Andrey
16.03.2018
16:13:34
не надо OPTIMIZE по крону.

Tima
16.03.2018
16:13:47
optimize не вызывается?
У нас частый optimize полгода назад стабильно приводил к падению КХ. Если сейчас не так - это было бы круто

Andrey
16.03.2018
16:13:50
Схлопывание кусков не гарантируется и нужно всегда брать с доаггрегацией

Gubaydullin
16.03.2018
16:14:08
я понимаю что в запросах нужно использовать * sign
и having
а как часто идет схлопывание

Александр
16.03.2018
16:14:24

Google

Александр
16.03.2018
16:14:27
Никакого крона :)
Если вставки нет вообще, то может раз в 30 минут например сработать
Если данные часто вставляются, то может между инсертами схлапывать

Andrey
16.03.2018
16:17:32
Я вот не совсем понимаю, зачем вам постоянный OPTIMIZE? Почему не делать все как рекомендует дока?

Gubaydullin
16.03.2018
16:18:02
то есть кх сам будет схлопывать
а мы будем просто запросы правильные писать

Andrey
16.03.2018
16:18:16
да, схлопывание происходит при мерже
время мержа не гарантируется

Gubaydullin
16.03.2018
16:18:35
спасибо ребят!

Александр
16.03.2018
16:18:54
И скорость обработки запроса должна быть высокая. А несхлопнутые данные убивают скорость
В нашем случае

Andrey
16.03.2018
16:19:58
спасибо ребят!
запросы главное с доаггрегацией, будто никакого схлапывания и нет.

Gubaydullin
16.03.2018
16:20:09
да я понял идею

Andrey
16.03.2018
16:20:20

Danz
16.03.2018
16:23:14
Привет. Кто-то делал запросы в кликхаус из pandas?

Andrey
16.03.2018
16:24:10

Александр
16.03.2018
16:25:30

Danz
16.03.2018
16:27:59

Andrey
16.03.2018
16:28:35

Danz
16.03.2018
16:28:47
Достаточно ведь скачать библиотеку sqlalcheny-clickhouse, и она автоматом будет использоваться в pandas?