
Рулон
14.04.2017
20:01:39
Спасибо, тогда везде буду uint
Может нам собраться , посидеть где нить? )
пиво, девочки)

Alexey
14.04.2017
20:13:13
Может быть можно будет сделать митап + afterparty. Не знаю, входит ли это в программу наших мероприятий.

Google

Рулон
14.04.2017
20:14:56
Кстати, может сделать хакатончик?

Alexey
14.04.2017
20:20:52
Тоже вариант. Какие темы?

Рулон
14.04.2017
20:23:58
что нибудь прогрессивное ) чтобы на хабре потом написать ))

nikoinlove
14.04.2017
20:24:51
перенос кх в аркадию отличная тема для хакатона

Mariya
14.04.2017
20:26:28
Есть минимум 2 пути: 1. запилить какую-нибудь крутую feature для CH 2. сделать классный сервис over CH (например, что-нибудь аналитическое на базе данных Метрики или AppMetrica)

Рулон
14.04.2017
20:32:42
не... надо что поинтереснее )

Vladimir
14.04.2017
20:33:08
Кстати, а GraphiteMergeTree может быть ReplicatedGraphiteMergeTree?

Рулон
14.04.2017
20:33:19
что нибудь, где надо поломать голову, где нужно использовать скрытые фичи кх

Alexey
14.04.2017
20:38:42

Shine
14.04.2017
20:39:11
исходники поискового движка
яндекса )

Alexey
14.04.2017
20:39:16

Vladimir
14.04.2017
20:48:47
А как пользоваться секцией macros?

Google

Denys
14.04.2017
20:52:50
Ребята, а когда будет митап в Украине?)

Alexey
14.04.2017
20:54:32
А как пользоваться секцией macros?
<macros>
<layer>stat</layer>
<shard>01</shard>
<replica>example01-1.yandex.ru</replica>
</macros>
...
CREATE TABLE ... ENGINE = ReplicatedMergeTree('/clickhouse/tables/{layer}-{shard}/visits', '{replica}', ...

Vladimir
14.04.2017
20:56:24

Alexey
14.04.2017
20:57:24
У нас используются для аргументов Replicated таблиц - чтобы выбрать путь в ZK.

Vladimir
14.04.2017
20:57:25
<remote_servers>
<something>
<shard>
<macros>
?

Alexey
14.04.2017
20:58:53
В конфиге написано:
<macros incl="macros" optional="true" />
Значит либо в /etc/metrika.xml в элемент macros на верхнем уровне,
либо прямо в config.xml на это место.
Для каждого сервера свой /etc/metrika.xml и там свои значения macros.

Vladimir
14.04.2017
20:59:25
ок... и нумерация шардов будет сделана автоматом в порядке как они в конфиге?

Alexey
14.04.2017
21:02:41
Что значит нумерация шардов?

Andrew
14.04.2017
21:21:10
OPTIMIZE
OPTIMIZE TABLE [db.]name [PARTITION partition] [FINAL]
Просит движок таблицы сделать что-нибудь, что может привести к более оптимальной работе
Это шикарная дока.

Vladimir
14.04.2017
21:22:10


Alexey
14.04.2017
23:17:04
Алексей добрый день. Хотел у вас поинтерисоваться если это не секрет. Как в UI так быстро в режиме реал тайм отображаете данные? Например у нас до кх вся статистка лежала в mysql. Мы сделали консольную команду которую повесили на cron она делает ряд запросов на агрегированние подсчет данных из статистики и кладет в оперативную память. а мы на ui видим сразу, но памяти жрет много. Тут вариантов пару либо отказаться от кеша и делать запросы на прямую к кх. либо в кеш писать только по запросу - пользователь авторизовался получил свою пачку данных (срок жизни кеша ограничен - при неактивности больше n часов кеш очищается). В идеале хотелось бы реал тайм. Может какие нибудь рекомендации дадите?
Отвечу в основном чате.
В Метрике кэш для отчётов не используется, запросы идут считать всё заново из неагрегированных данных.
Работает хорошо почти во всех случаях. Но для крупных счётчиков приходится включать сэмплирование по-умолчанию. Пользователь может изменить сэмплирование (например, выключить) - тогда отчёт грузится дольше.
Есть другие проекты, где кэш используется.


Maksim
14.04.2017
23:27:54
В Метрике кэш для отчётов не используется, запросы идут считать всё заново из неагрегированных данных.
то есть в метрике результат получается на запрос к кх напрямую? у нас ситуация следующая - на главной странице есть около 5 графиков - для получение данных для них посылается 5 разных запросов в одну таблицу (например нужно узнать сколько кликов суммарно осуществилось для определенной сущности - например в рамках страны или городов). Если брать небольшой диапазаон в рамках одного пользователя и недельные данные то эти 5 запросов вложаться (я думаю) в секунду. если пользователь выберет весь период - например за год результат может быть получен и за секунд 5-10. соответственно это уже задержка. или это норма?
поэтому мы и прикрутили кеш в памяти. и получаем результаты данных моментально. но он конечно затратные на его заполнение и жрет памяти

Google

Alexey
14.04.2017
23:30:02
Надо решать в зависимости от того, является ли отчёт одинаковым для большого количества пользователей или каждый раз уникальный.
В Метрике каждый пользователь смотрит свои отчёты, зачастую сильно кастомизируемые. Почти всегда с аутентификацией. Поэтому кэширование не имеет смысла - не поможет.
Если же у вас есть посещаемый сайт, где нужно показывать большой аудитории одни и те же графики, то без сомнения, их нужно кэшировать.
И скорее всего, не только кэшировать, но и обновлять асинхронно.

Maksim
14.04.2017
23:30:54
нет. графики только в рамках аудентификации. в рамках юзера
ну тогда можно попробовать прикрутить праймери кей на user_id и по нему выбирать точечно по запросу
потому как сейчас мы не по user_id выбираем а по всем запускам показов
и получаем данные всех пользователей

Alexey
14.04.2017
23:33:18
Да. Подумайте, поэкспериментируйте.

Maksim
14.04.2017
23:33:46
мне понравилась таблица memory. жалко нельзя установить срок жизни данных
можно было бы как-то переливать туда данные и брать с неё
такой своего рода кеш) у меня есть еще один вопрос сегодня выполнил тяжеловестный запросик и получил падение сервера запустить не удалось только через полную остановку сервиса и полный запуск. не хватило 8 гигов памяти чтобы выполнить запросик. вопрос не в запросе даже, а в том почему сервер рассыпается - выдал бы ошибку и работал дальше. могу предположить что это из-за опции в конфигах максимальный объем памяти он установлен по стандарту в 10 гигов что больше 8)) поэтому жрет все не давай системе жить
и я так понял вылазит киллер и начинает килять что попало вот и расыпается

Alexey
14.04.2017
23:37:18
Всё верно. По-умолчанию лимит оперативки - 10 GB на каждый запрос.

Maksim
14.04.2017
23:37:52
понял спасибо алексей вы как всегда выручаете )

Dmitry
15.04.2017
00:10:33
Я тоже ронял запросами CH, хотелось бы чтобы умирал не сервер, а запрос

Vladislav
15.04.2017
08:48:45
Тоже вариант. Какие темы?
Я бы предложил что-нибудь не смежное с кликстрим. Я не теряю надежду использовать КХ в других вариантах ?

Alexey
15.04.2017
09:44:14
в admin tips-ах есть такая фраза "Use Linux software RAID (mdadm). Better to not use LVM."
Кто-то знает, почему LVM не люб и на сколько это критично?

Vladimir
15.04.2017
09:46:57
А без snapshot'ов смысл в LVM околонулевой

Alexey
15.04.2017
09:47:37
ну... спорное утверждение
я вот давно и успешно его использую начиная еще с Unix-ов (HP-UX, Solaris) и пока не довелось пользоваться снапшетами

Google

Alexey
15.04.2017
09:48:41
и пользу в нем вижу
но сейчас вопрос не о том немного
если использовать LVM для создания RAID-10 без всяких снапшетов, это все еще "лучше не надо" для CH?

Vladimir
15.04.2017
09:49:46

Alexey
15.04.2017
09:50:00
не планирую я испоьзовать эту фичу

Vladimir
15.04.2017
09:50:12
raid на базе LVM в Linux'ах реализован странно и как бы при наличии в ядре mdadm в нем нет никакого смысла

Alexey
15.04.2017
09:50:16
просто для гибкой организации и управления пространстовм

Vladimir
15.04.2017
09:50:22
да, все это про Linux, на Солярке может все отлично

Alexey
15.04.2017
09:50:56
обычно да

Vladimir
15.04.2017
09:51:05
но в общем тебе виднее, в принципе если не использовать ничего кроме управления пространством и красивого именования разделов то не должно прям быть очень плохо

Alexey
15.04.2017
09:51:09
но даже одна задача (продукт) может состоять не нескольких потребителей

Vladimir
15.04.2017
09:51:21
Разносить их по разным разделам?
Точно в этом есть смысл?
когда БД поддерживает разные базы и права доступа к ним
Опять же проще по серверам делить, если все так критично

Alexey
15.04.2017
09:52:15
иметь возможность гибко выделять дисковое пространство по мере роста, иметь возможность разедилить (перераспределить) в дальнейшем по шпинделям и т.п.
да меня не надо убеждать, что лучше выделенные сервера иметь
я все сам понимаю
но есть теория и проекты в которых есть возможность это сделать, а есть другие варианты

Google

Vladimir
15.04.2017
09:53:09

Alexey
15.04.2017
09:53:59
ладно, в общем спасибо за ваше мнение

Vladimir
15.04.2017
09:54:24
@lexa_work если что, мое мнение составлено по моим наблюдениям, а не официальное ) может товарищи яндексоиды что-то еще скажут

Alexey
15.04.2017
09:54:42
если появится кто-то, кто знает точно зачем и почему фраза эта появилась в типасх, то буду рад услашать пояснения

Vladimir
15.04.2017
09:54:52
но как по мне просто чтоб не повадно было снэпшотить, проще сказать что не используйте LVM чем отвечать на вопросы "почему у меня все тормозит?"

Alexey
15.04.2017
09:55:57
ну тогда нужно было еще добавлять подобные фразы про NFS-ы и т.д и т.п.

Aleks
15.04.2017
09:59:29
Оффтоп. Сейчас на митапе Заббикса Владышев сказал, что общался с командой CH на конфе Перконы ~1 год назад. И сказал, что отказался от интереса в эту сторону после озвученных концептуальных проблем. Возможно сейчас всё изменилось (с)

Ilya
15.04.2017
10:00:03
А что за проблемы там?

Vladislav
15.04.2017
10:00:27
Менеджерский аргумент

Vladimir
15.04.2017
10:01:28

Alexey
15.04.2017
10:02:04

Vladimir
15.04.2017
10:02:48
не понял мысль
mdadm и вообще swaid немного проблематично сделать без блочного устройства
то есть "мы рекомендуем swraid" означает по сути локальные диски или iscsi

Alexey
15.04.2017
10:06:11
ну я это понял как: "не обязательно использовать дорогие аппаратные RAID контроллеры"
ну и эта фраза как бы подтверждает "Prefer more servers with inplace storage to less servers with huge disk shelves."
это подход типичный для BigData решений
JBOD и/или софтовый RAID + репкликация прикладного уровня

Vladimir
15.04.2017
10:10:22
да, именно так

Vladislav
15.04.2017
11:44:05