
Kirill
11.06.2018
13:31:58

Vladimir
11.06.2018
13:32:12
сервер?
как-то не хочется ))
может удалить что-нибудь ))
?

Google

Kirill
11.06.2018
13:37:04
сервер?
Зачем же сразу сервер, КХ ребутните.

Vladimir
11.06.2018
13:37:26
я ж написал что не помогло
вижу дир с именем таблицы на диске
удалю ее сча и поглядим

Kirill
11.06.2018
13:38:54
Расскажите пожалуйста какие практики применяются для быстрого добавления столбцов в структуру таблицы? Изначально добавляется n столбцов прозапас или экспорт-импорт? Может быть что-то оригинальное?

Kirill
11.06.2018
13:39:50

Vladimir
11.06.2018
13:43:14
удаление директории помогло
какой-то глюк был что КХ ее сам недоудалил

Kirill
11.06.2018
13:56:57

Kirill
11.06.2018
13:59:25

Kirill
11.06.2018
14:00:01
Извиняюсь, видимо я перепутал с изменением primary key. Спасибо.

Vladimir
11.06.2018
16:46:11
Добрый вечер, есть таблица
CREATE TABLE Test
(
appId UInt32,
metricId UInt32,
timestamp UInt32
)
Engine = MergeTree() PARTITION BY (floor(timestamp/604800), appId) ORDER BY (appId, metricId, timestamp);
Есть запросы вида
select * from Test where appId in (...) and metricId in (...) and timestamp>X and timestamp<Y
Нужно ли добавлять условие and floor(timestamp/604800)>X' and timestamp<floor(timestamp/604800)>Y'
Или это ничего не ускорит?

Denis
11.06.2018
17:13:33
ничего не ускорит, нужно только так where .... timestamp>X and timestamp<Y ( t.me/clickhouse_ru/54651 )
но в текущей версии сканируются все партиции, исправлено в мастере
https://github.com/yandex/ClickHouse/issues/2342

Google

Vladimir
11.06.2018
17:19:39
Ага, тоесть КХ умный и применит только по timestamp
Но только начиная со сл версии
Верно?

Denis
11.06.2018
17:21:47
у вас appId , timestamp есть в PK (ORDER BY (appId, metricId, timestamp)) поэтому будет работать быстро и так, но со след. версии будет возможно еще быстрее

Vladimir
11.06.2018
17:22:48
Круто
На это и надеялся тк отсекаем партициями (но основная их цель конечно же удаление данных)
Спсб Денис

Denis
11.06.2018
17:23:51
я то обнаружил проблему, потому что я не включал PartKey в PK, так как считал, что сортировать бессмысленно, там только одно значение, и вот баг накопал.

Aleksandr
12.06.2018
07:30:58
Здравствуйте. Подскажите пожалуйста, это баг или фича:
пробую работать с функцией: cutToFirstSignificantSubdomain
и вижу такой результат:
ghg.i.ua -> i.ua - тут правильно
g.f.d.com -> d.com - тут правильно
rrr.tp.ntu-kpi.com.ru - ntu-kpi.com.ru - тут то же правильно
rrr.tp.ntu-kpi.kiev.ua - kiev.ua - а вот тут не правильно, так как kiev.ua это доменная зона , а функция думает что это домен
Clickhouse версия 1.1.54385
вчера с утра обновился только

Kirill
12.06.2018
07:37:52

Wolf
12.06.2018
08:06:38
а если у меня есть на одном сервере две таблицы реплицируемые с одинаковой структурой и разными данными. могу я одной сделать детач всех партиций и потом скопировать данные во вторую и сделаю во второй аттач, все будет ок ?
таблицы реплицируются не друг с другом

Kirill
12.06.2018
08:07:56

Wolf
12.06.2018
08:08:26
ну из второй реплики данные удалятся , а в новой отреплицируются?

Kirill
12.06.2018
08:09:58

Wolf
12.06.2018
08:14:20
а он делает какой то реплейс или перемещает таблицу
а есть еще такой момент а что если у партиций будут одинаковые имена

Kirill
12.06.2018
08:16:14

Wolf
12.06.2018
08:17:31
а когда мастер этот зарелизится ?

Kirill
12.06.2018
08:19:15

Wolf
12.06.2018
08:20:00
А нет проблемы из за совпадения имён партий?

Kirill
12.06.2018
08:20:27

Google

Wolf
12.06.2018
08:20:46
хорошо протестирую на днях

Kirill
12.06.2018
08:21:13
Главное чтоб в detached не лежало куска с таким же именем

Vladimir
12.06.2018
08:24:48
А еще такой вопрос по будущему удалению
Если есть таблица с appId и timestamp в ключе и надо будет удалять данные то как лучше поступить
1. Партицирование по дням и удалять потом данные как delete from table where appId in () and timestamp < XXX
2. Или все таки партицировать по дням и по appId и удалять целыми партициями?
Первый варинт дает меньшую общую нагрузку тк количество партиции сильно меньше а мы обнаружили что при относительно большом кол-ве партиции (20К) и больше процессора надо и на диск в разы интенсивнее запись идет (если кому надо могу подробности выложить). Но этот вариант приемлем если удаление будет относительно легковесное и не положит кластер.
Второй вариант жрет больше ресурсов тк кол-во партиции вырастает с 100 до 20К, но удаление относительно бесплатное.
Господа кто знаком с тем как будет реализрванно удаление подскажите какой путь выбрать?

Kirill
12.06.2018
08:40:26


Vladimir
12.06.2018
08:40:47
мы его так выбрали тк данные надо удалять так
грубо appID добавили к ключу партицирования потому как надо часто удалить данные для конкретной системы
или мириться с тем что на диске будет много того что уже не надо (террабайты данных что не дешево)

Kirill
12.06.2018
08:45:19

Vladimir
12.06.2018
08:45:37
Кирилл ДА, но выход какой?
Есть еще 3 способ которыя я не описал ?

Kirill
12.06.2018
08:46:37

Vladimir
12.06.2018
08:49:56
так если удаление нормальное которое грядет будет чем-то похожим из коробки
типа
при запросе на удаление - удаляем логически
при мерже следующем - удаляем физически
то зачем огород горидить с CollapsingMergeTree
?
вопрос насколько будущее удаление ресурсоемко, ессли ничего почти не стои при мерже то идем путем 1
если все ресурсоемко то идем путем 2 и живем со множеством партиции или думаем дальше

Kirill
12.06.2018
08:51:21

Vladimir
12.06.2018
08:51:47
Сразу или отложенно при мерже?

Kirill
12.06.2018
08:53:40

Vladimir
12.06.2018
08:53:48
Ага
Спсб
Значит можно ожидать сильньной загрузки при запросе на удаление 10% данных например
Спсб
Ценная информация


Victor
12.06.2018
19:21:38
Друзья, подскажите новичку.
Кручу, верчу КХ, применить хочу.
Есть таблица, пусть MergeTree, туда вставляются данные.
Допустим таблица вида
PK( EventDate, ObjectID ), value1, value3, ..., valueN
Описывает состояние объектов в n-ное время.
99% времени - value1, value2, value3, ..., valueN не изменяются. Изменяется только EventDate, что в PK, это время "съёма" значений.
В целом, при хранении мне всё равно, пусть даже дублируются.
В результатах запросов - не нужны.
т.е. по факту, я хочу иметь историю изменения состояний и возможность выбрать только те, у кого состояния менялись за некоторый интервал времени, это будет 2-3 изменившихся значения.
GROUP BY по всем филдам мне не кажется хорошей идеей.
Использовать DISTINCT по value1, value2, value3, ..., valueN?
Завести филд для хеша всех value и делать по нему GROUP by hash?
Адаптироваться к CollapsingMergeTree?

Wolf
13.06.2018
05:23:33
а если сделать детач с mergtree и потом attach в replicatedmergetree все будет ок ?

Google

Kirill
13.06.2018
05:30:10

Vitaly
13.06.2018
05:41:00
Подскажите пожалуйста, как правильно сделать?
Хочу сгружать в clickhouse ошибки и по ним строить отчеты
есть таблица большая с колонками (useragent, error, stacktrace, url, date etc)
сделал для каждого большого строкового поля хэш, например
useragent Nullable(String),
useragentId MATERIALIZED sipHash64(useragent)
...
ENGINE = MergeTree
группирую по этим колонкам с хэшами(useragentId)
так норм? такой кейс это вообще правильное использование clickhouse?


Vadim
13.06.2018
05:41:01
Привет всем. Кто подскажет?
Внезапно на всех(3) серверах с кликхаусом пошло в логах:
<Error> HTTPHandler: Code: 252, e.displayText() = DB::Exception: Too many parts (307). Merges are processing significantly slower than inserts., e.what() = DB::Exception, Stack trace:
и ничего не вставялется
с зукипером все ок, carbon-clickhouse копит файлы с записями в логах
ERROR [uploader] handle failed {"filename": "/mnt/data/carbon-clickhouse/default.1528828510519183840", "error": "clickhouse response status 500: Code: 252, e.displayText() = DB::Exception: Too many parts (307). Merges are processing significantly slower than inserts., e.what() = DB::Exception\n", "time": 1.291027654}

Stanislav
13.06.2018
05:52:21
там честно написали, что не успевают мержить инсерты
мелкими кусками по дофига раз в секунду, столь?

Vadim
13.06.2018
05:54:59
нет, carbon-clickhouse инзертит пачками
в файлах около 6330 строк
все работает как и раньше, но внезапно КХ перестал писать в БД
select * from system.merges; выдает 2 мерджа и они длятся часы
SELECT count(partition)
FROM system.parts
┌─count(partition)─┐
│ 347 │
└──────────────────┘
1 rows in set. Elapsed: 0.007 sec.
Background_pool_size(16) увеличил до 25, не помогает
Никто не сталкивался ?
можно как-то приостановить мерджи? что бы данные всетавить, уже сутки отставание


antuan
13.06.2018
06:52:37
Друзья, подскажите новичку.
Кручу, верчу КХ, применить хочу.
Есть таблица, пусть MergeTree, туда вставляются данные.
Допустим таблица вида
PK( EventDate, ObjectID ), value1, value3, ..., valueN
Описывает состояние объектов в n-ное время.
99% времени - value1, value2, value3, ..., valueN не изменяются. Изменяется только EventDate, что в PK, это время "съёма" значений.
В целом, при хранении мне всё равно, пусть даже дублируются.
В результатах запросов - не нужны.
т.е. по факту, я хочу иметь историю изменения состояний и возможность выбрать только те, у кого состояния менялись за некоторый интервал времени, это будет 2-3 изменившихся значения.
GROUP BY по всем филдам мне не кажется хорошей идеей.
Использовать DISTINCT по value1, value2, value3, ..., valueN?
Завести филд для хеша всех value и делать по нему GROUP by hash?
Адаптироваться к CollapsingMergeTree?
А если поменять структуру таблицы, сделать не value1, value2,... valueN, а name и value, в первую колонку пишем название показателя, во вторую - значение.
Или enabled, чет такое.


Victor
13.06.2018
06:55:32

antuan
13.06.2018
06:56:12

nikita
13.06.2018
08:13:52

Google

Denis
13.06.2018
08:17:11
заставить срабатывать mat view не на каждую прилетающую пачку данных в таблицу а раз в 5 минут например можно как-то?

Michal
13.06.2018
08:17:46

Vadim
13.06.2018
08:18:32
судя по метрике clickhouse.имя_хоста.ClickHouse.ProfileEvents.InsertedRows, данные вставляются, но так как число файлов в каталоге carbon-clickhouse растет, то вставка не успевает
причем вставляется в 10 раз больше , чем приходит, КХ врет?

nikita
13.06.2018
08:21:58

Vladislav
13.06.2018
08:23:24
Привет. Можете подсказать?
подскажите, пожалуйста, а можно ли для ReplacingMergeTree сделать так, чтобы оставалась старая версия, а не новая? -ver не работает.

Michal
13.06.2018
08:23:26

nikita
13.06.2018
08:24:11

Vladislav
13.06.2018
08:26:09

antuan
13.06.2018
08:44:32

Vadim
13.06.2018
08:45:02
Раньше была раз в секунду

antuan
13.06.2018
08:46:55
"раньше" - это в смысле до появления ошибки про "медленные мержи"? период увеличили после обнаружения ошибки? как часто теперь вставка происходит и по сколько записей?