@clickhouse_ru

Страница 85 из 723
Andrey
09.03.2017
11:50:12
После того, как версия выезжает на все прод сервера яндекса
ну вопрос как раз о том как скоро после того как выедет на прод метрики?

Pavel
09.03.2017
11:54:39
Интересно, а что за сторадж юзает гугл под те же задачи?
Что-то типа токого: https://research.google.com/pubs/pub36632.html

Pavel
09.03.2017
11:56:41
о, интересно, спасибо

Mikhail
09.03.2017
12:00:58
Привет. Алексей рассказывал на последнем митапе, что юзеров можно очень гибко ограничивать. А есть ли возможность ограничить доступ на уровне отдельных баз или таблиц?

Google
Dmitrii
09.03.2017
12:14:15
<networks><allow_databases> <database></database> </allow_databases>

Когда у меня былд тот же вопрос, в документации я этого не нашел. может быть уже добавили

Дмитрий
09.03.2017
14:08:13
Господа, есть вопрос от очень новичка в КХ. Развернул я тут кластер зукипера, развернул несколько инстансов кх, указал ему в настройках зукипера, а он упорно отказывается его видеть.

Куда копать?)

Igor
09.03.2017
14:19:27
а в логах пишется че-нибудь?

Дмитрий
09.03.2017
14:26:58
Ничего не писалось. Решил проблему полным пересозданием нод кликхауса с удалением всех данных. Полагаю дело в системных таблицах. Так как изначально в конфиге не было зукипера, и соответственно в кх не было таблицы system.zookeeper. Не понятно только почему он ее не создавал...

Alexey
09.03.2017
15:47:30
Таблица system.zookeeper присутствует всегда, когда в конфиге задан zookeeper. Если её нет - значит был указан некорректно.

Дмитрий
09.03.2017
16:20:36
Один и тот же конфиг был. Единственное, что я добавил зукипер не с самого начала. Но кх ведь подгружает конфиг, я думал что и таблицу создаст.

Alexey
09.03.2017
16:24:29
Он создаёт эту таблицу при запуске.

Дмитрий
09.03.2017
16:28:01
И редактирует, соответственно, тоже только при перезапуске?

Alexey
09.03.2017
16:31:07
Таблица представляет собой возможность обращаться в ZooKeeper - она сама не хранит данные.

Slach
09.03.2017
16:32:27
т.е. чтобы подключить ноду к кластеру zookeeper надо ноду перегрузить... так?

Alexey
09.03.2017
16:33:51
т.е. чтобы подключить ноду к кластеру zookeeper надо ноду перегрузить... так?
Если до этого в конфиге не был прописан ZooKeeper - да, надо прописать и перезагрузить.

Google
Дмитрий
09.03.2017
16:38:27
И чтобы поменять кластер зукипера, тоже, так?

Alexey
09.03.2017
16:40:54
Да.

Дмитрий
09.03.2017
16:50:51
Спасибо)

Andrey
09.03.2017
18:28:23
Скажите, а время запроса, которое показывает клиент, учитывает время потраченное на доставку на клиента или нет?

Alexey
09.03.2017
18:31:50
Учитывает.

Andrey
09.03.2017
18:32:15
Даже если FORMAT Null ?

Alexey
09.03.2017
18:33:23
Да. При использовании clickhouse-client данные передаются на клиент в бинарном формате и затем форматируются на стороне клиента (в том числе, и при использовании FORMAT Null).

Andrey
09.03.2017
18:34:10
А есть ли какая-то возможность не учитывать время доставки? Может ключик тайный?)))

Alexey
09.03.2017
18:35:06
SELECT count() FROM (your query) WHERE NOT ignore(*)

Andrey
09.03.2017
18:35:49
Хм, логично, спасибо.

Combot
09.03.2017
18:52:49
combot.org/chat/-1001080295593

combot.org/chat/-1001080295593

Ivan
09.03.2017
22:19:12
a summing merge tree как часто суммирует значения, которые в таблице? можно как-то повлиять на этот период?

Dmitry
09.03.2017
22:21:31
При мерждах, это неуправляемый процесс

На него не надо влиять, надо всегда досчитывать данные запросами

Ivan
09.03.2017
22:23:18
а что значит досчитывать данные запросами?

Dmitry
09.03.2017
23:10:11
Ну т.е. данные схлопнуться когда-то в фоне, запрос должен делать доагрегацию, аналогичную той, что происходит в таблице

Ivan
10.03.2017
08:30:50
понятно, спасибо

Igor
10.03.2017
09:09:16
Добрый день! Храним показы и сессии в CollapsingMergeTree. Сессии хранят агрегированные значения параметров показов, которые не меняются, например, тип устройства, а также счетчик количества показов views_count в рамках сессии, который увеличивается. Теперь хотим посчитать статистику по показам по типам устройств из таблицы сессий, используя views_count. Как это сделать? SELECT device_type, sum(sign) AS cnt FROM statmedia.sessions WHERE create_date = yesterday() GROUP BY device_type ORDER BY cnt DESC ;; SELECT device_type, sum(sign) AS cnt FROM statmedia.views WHERE create_date = yesterday() GROUP BY device_type ORDER BY cnt DESC Но проблема в том, что мы должны брать значение views_count только из последних состояний сессий (максимальный views_count). Как-то так: sum(sign) * last_state_views_count.

papa
10.03.2017
09:41:57
sum(1*Sign) = это такой count() из обычной жизни, или что то же самое sum(1). тогда sum(views_count) должен выглядеть как sum(views_count*Sign).

Google
papa
10.03.2017
09:42:39
а вместо avg(views_count) нужно использовать sum(views_count*sign)/sum(sign).

а если у вас statmedia.views не меняются, то зачем в них sign?

Igor
10.03.2017
10:05:05
views - тоже на CollapsingMergeTree, да что то забыл про views_count*sign - видимо у нас косяк в данных Спасибо )

Дмитрий
10.03.2017
10:11:51
Как проще всего перелить данные из одного кластера кх, в другой?

Рулон
10.03.2017
10:34:56
Привет! Я нашел в в группе кликхаус 2 одинаковых вопроса, и 1 ответ. Может сделаем фак? чат мне кажется вообще не удобно

Andrey
10.03.2017
10:37:46
в доках есть раздел

https://clickhouse.yandex/reference_ru.html#Возможные глупые вопросы

Хотя может не совсем по теме

Igor
10.03.2017
10:39:40
мне кажется, еще бы не помешало best practices как в Quickstart'е список запросов в Querying the sample dataset https://clickhouse.yandex/tutorial.html

и скидывать туда что-нибудь типа "если используете CollapsingMergeTree и хочется сделать avg(x), делайте sum(x*sign)/sum(sign)" с другой стороны, есть StackOverflow, у них недавно появился раздел "документация"

там собирают популярные ответы и переоформляют в виде документации на примере python - https://stackoverflow.com/documentation/python/topics можно попробовать там, если не хочется официальный сайт трогать

Artem
10.03.2017
11:25:34
Всем привет! Подскажите, а есть ли возможность проводить GROUP BY на больших массивах данных без применения external group by? Хочется использовать clickhouse для обработки большого объема данных (~80ккк строк, около 2тб в несжатом виде), и не хотелось бы при group by писать кучу промежуточных данных. В голову приходит сделать ограничение в where, чтобы обрабатывать не все за раз, а например кусками по 10 дней и запускать много запросов подряд, но нельзя ли это как нибудь автоматически делать?

papa
10.03.2017
11:33:02
а после group by сколько строк будет?

Artem
10.03.2017
11:35:44
~550кк

Igor
10.03.2017
11:37:11
Еще вопрос, CollapsingMergeTree sum(sign) должна же совпадать с count()+FINAL ?

papa
10.03.2017
11:40:12
~550кк
а может вам materialized view сделать?

Artem
10.03.2017
11:46:44
А кардинальность после Group by большая?
да. Данные по сути на геосетке за длительный срок и нужно проводить агрегацию по регионам(либо на всей сетке) за различные периоды.

Igor
10.03.2017
11:47:17
> @orantius теоретически - да. спасибо, тоже думал что должны сходиться, попробуем свой ETL перелопатить - наблюдаем расхождение final vs sum(sign) https://monosnap.com/file/w3lqB63IAO6mnmHW25Wun5pLph4U4Q

Google
Dmitry
10.03.2017
11:47:24
Ну есть речь про регионы то их же мало и они легко должны помещаться в память

Artem
10.03.2017
11:48:05
ну и регионы тоже разные бывают, евразия например уже немало данных

а может вам materialized view сделать?
не поможет, данные планируется залить один раз и после гонять на них разные запросы. Ну и агрегация в рамках одной пачки вставляемых данных(как я понял поэтому речь зашла о MATERIALIZED VIEW) не подошла бы как бы то ни было

papa
10.03.2017
11:57:07
> @orantius теоретически - да. спасибо, тоже думал что должны сходиться, попробуем свой ETL перелопатить - наблюдаем расхождение final vs sum(sign) https://monosnap.com/file/w3lqB63IAO6mnmHW25Wun5pLph4U4Q
а что у вас у views может апдейтиться? если у вас есть view_id, можно выгрузить список id слева и справа и посмотреть кого не хватает и кто лишний.

для одной точки.

Igor
10.03.2017
12:02:14
> а что у вас у views может апдейтиться? У нас по каждому показу собирается стат типа посмотрели X материалов(статей) , при скролинге дополняется в массив id_articles при этом это один показ, так-же пишем сколько времени пользователь провел на странице/этом показе > view_id, можно выгрузить список id слева и справа и посмотреть кого Да хорошая идея - попробую по ID сопоставить

papa
10.03.2017
12:11:02
не поможет, данные планируется залить один раз и после гонять на них разные запросы. Ну и агрегация в рамках одной пачки вставляемых данных(как я понял поэтому речь зашла о MATERIALIZED VIEW) не подошла бы как бы то ни было
Я предположил что если у вас по результатам group by получается 500М объектов, то вряд ли вы будете смотреть в них, как в список строк, и видимо будете дальше доагрегировать в что-то обозримое. В этом случае запрос по 500М строк будет быстрее чем по 80B. "Куски по 10 дней" работают не для всех агрегатов. Для подсчета, например, уников надо либо использовать uniqState, либо делать куски не по дням, а по значениям группировки, и перечитывать данные несколько раз.

Slach
10.03.2017
12:23:04
А можно узнать красивый график с Draw на скриншоте это фронтенд от smi2 или это какой то свой инструментарий?

Igor
10.03.2017
12:25:31
> график с Draw на скриншоте Через недельку опублику в продакшен на всех

Artem
10.03.2017
12:26:15
Я предположил что если у вас по результатам group by получается 500М объектов, то вряд ли вы будете смотреть в них, как в список строк, и видимо будете дальше доагрегировать в что-то обозримое. В этом случае запрос по 500М строк будет быстрее чем по 80B. "Куски по 10 дней" работают не для всех агрегатов. Для подсчета, например, уников надо либо использовать uniqState, либо делать куски не по дням, а по значениям группировки, и перечитывать данные несколько раз.
Вот как выглядит сферический запрос в вакууме: SELECT lat_idx, lon_idx, toMonth(date), toDayOfMonth(date), avg(some_param) FROM clickhouse_test.test_table WHERE toMonth(date) = 1 GROUP BY lat_idx, lon_idx, toMonth(date), toDayOfMonth(date) INTO OUTFILE '/home/user/outfile' FORMAT CSV; Среднее за день года по годам это лишь один из юзкейсов, но пусть будет он для примера. Хочется избавиться от ручных ограничений в WHERE(на тестовом датасете хватает ограничения в месяц, но на полном придется до дня ограничивать)

Slach
10.03.2017
12:35:48
> график с Draw на скриншоте Через недельку опублику в продакшен на всех
оу =) а скажите ваш аккаунт на github чтобы я мог сделать follow?

а то там на скриншоте есть очень интересная кнопка "Pivot"

Igor
10.03.2017
12:45:47
Да там много интересного будет > @BloodJazMan а скажите ваш аккаунт на github чтобы я мог сделать follow? я напишу здесь анонс + если успею и на хабре обзор новых фичь с целью показать возможности CH. > @BloodJazMan а то там на скриншоте есть очень интересная кнопка "Pivot" Pivot это интеграцию pivotjs либы на результат запроса, пример geo+pivot https://monosnap.com/file/9xb9tN32MsD2tLbSrXHW0wbFxGDBuM Сейчас это работает все красиво при определенных условиях, если сделать шаг влево, все падает)) поэтому не публикую раньше времени - пока основные баги не закрою

Mikhail
10.03.2017
14:00:51
Igor
10.03.2017
14:47:58
https://github.com/smi2/clickhouse-frontend

Slach
10.03.2017
14:48:34
а ок я думал это другой какой то пооект

Google
Igor
10.03.2017
15:21:14
На чем разработка? Nodejs golang python? Может могу чем нибудь помочь?
Обязательно, я всячески за любую помощь, но после выкладки - я опишу в каком направлении буду двигаться и чем можно помочь. Допустим - я придумал вариант как отрисовывать графики -- но пока не знаю удобный он или нет - нужно обсуждать. Нужно будет перевод делать на Eng самого интерфейса, и документации к нему. Да и документацию вообще оформить нормально. Еще пример графики метрик удобно так их смотреть? : https://monosnap.com/file/p3olsRJVbojpSBSwOWHURXng6zwBk9 Есть такие вещи как страшные утечки памяти у этого чудного ЯП + мои "прямые" руки => если кто то захочет чтобы его браузер не вис после 30минут работы - то велком на анализ где он тячет )))

Andrey
10.03.2017
15:27:15
>Еще пример графики метрик удобно так их смотреть? : https://monosnap.com/file/p3olsRJVbojpSBSwOWHURXng6zwBk9 В графане удобно сделано когда ведешь курсор по одному графику, а полоса среза показывается по всем

Igor
10.03.2017
15:32:50
Да, хотел так же сделать, но не смог этот компонент отрисовки графиков заставить так работать... Может плохо гайд по нему читал.

prll
10.03.2017
16:01:43
с графиками нужно решить проблему - часть значений накапливаемые а часть абсолютные текущие - значит надо куда то вхардкоживать такой флаг или давать переключалку (с правильным значением по умолчанию) в интерфейсе

Igor
10.03.2017
16:13:10
> prll вхардкоживать такой флаг или давать переключалку Я думал сделать дельту между значениями - типа изменилось на X за последние Y секунд. А при наведении показывать изменение и абсолютную величину. Но да, получается в любом случаи хардкорно фиксировать в коде name метрики и для нее определять - что это и в каком формате. А __Вы__ добавите новую метрику придется ее тоже хардкодить )) Я уже подумал попросить, в самом CH сделать признак "что это" и какая размерность : Число/Байты... Пока захардкодю )

Roman
10.03.2017
16:39:21
а почему не пользователь выбирает, как именно отрисовать график? Например, применять аналог ф-ции rate() в Prometheus для накапливаемых данных, чтобы получать дельту

Igor
10.03.2017
21:39:12
там вроде в одной таблице абсолюты, в другой текущее значение
Да, я учел это, я посылаю такой запрос SELECT metric,toInt64(value) as value,'metrics' as type FROM system.metrics ORDER BY metric UNION ALL SELECT metric,toInt64(value) as value,'async' as type FROM system.asynchronous_metrics ORDER BY metric UNION ALL SELECT event as metric, toInt64( value) as value,'events' as type FROM system.events ORDER BY metric для отображения метрик, в теории все что type in ( async , events ) - это инкрименты. Но только в теории)

Alexey
10.03.2017
21:43:40
Нет, async - это не инкременты. Это последнее значение чего-либо.

Igor
10.03.2017
22:02:12
> @milovidov_an это не инкременты ооо, надо запомнить. Возможно тогда такой как есть, вариант отображения метрик и не плох - да можно улучшить, но тогда потребуется хардкодинг или просить тебя что то придумать внутри CH - отдавать тип/формат, мне помог такой вариант отрисовки когда я исследовал проблемные запросы и разбирался что "лагает". Когда графики сильно просаживаются - повод задуматься. Конечно у нас не такие нагрузки и под всех не подстроить. Я думаю это повод обсудить на "Мск meetup-e" в живую как и что отрисовывать, очень хотел отрисовать граф кластера ... но явно не хватает данных для этого, хотел повторить datastax Cassandra мanadrer http://www.datastax.com/wp-content/uploads/2012/03/preview-1024x652.png но понял что будет не информативно данные с одной ноды ))

в кассандра менеджере - удобно если ноде одной "плохо" она становится желтой, потом красной

Рулон
10.03.2017
22:19:04
Я начал создавать Faq ) Надеюсь взлетит ) http://clickhouse.my1.ru/

Алексей
10.03.2017
22:19:44
Igor
10.03.2017
22:20:21
еще лучше в вики, чтобы без пуллреквестов, но с историей хотя сомнительно :)

Рулон
10.03.2017
22:20:59
Кстати в гитхабе можно посмотреть историю )

Igor
10.03.2017
22:21:37
да, я знаю) просто чтобы в случае вандализма откатиться можно было

Страница 85 из 723