@clickhouse_ru

Страница 515 из 723
?
30.04.2018
06:44:34
ясно, спасибо

Александр
30.04.2018
06:44:48
ясно, спасибо
Пожалуйста! :)

?
30.04.2018
06:52:32
еще uniq(SomeField) по какой-то причине в `uniq(SomeField)` превращает

Александр
30.04.2018
07:33:12
Google
Michal
30.04.2018
08:08:18
Надо убрать слэши перед кавычками
Удобнее так: SHOW CREATE TABLE xxx FORMAT TSVRaw или SHOW CREATE TABLE xxx FORMAT VerticalRaw тогда кавычки не экранирует.

?
30.04.2018
08:13:50
лайк. я пробовал просто Vertical, про VerticalRaw не знал

KlonD90
30.04.2018
08:54:07
welcome

Evgeny
30.04.2018
08:55:44
Добрый день. Есть вопрос про организацию данных и логов, и самый близкий пример который я нашёл - организация данных в Я.Метрике. Вот у Яндекса есть лог просмотров страниц, в том числе они каждые 15 секунд отправляют новый просмотр. Видимо это - новая строчка в логе? Если бы у меня был доступ к CH Яндекса, как мне там делать выборку - по всем кто посмотрел страницы на домене abc.ru начинающиеся c /blabla/ больше 45 секунд и после этого перешёл на домен bbd.com ?

Michal
30.04.2018
09:13:47
Простите, но это слишком общий вопрос, из жанра: если я хочу построить дом (самый близкий аналог: Лахта-центр в спб) и буду строить с помощью строителей которые будут работать 5 дней в неделю по 8 часов, то как сделать так чтобы при строительстве 30 этажа окна выходили на север? :)

Evgeny
30.04.2018
09:15:43
А что уточнить? Мне интересно как нужно организовать запись логов для такого запроса, и как должен выглядеть сам запрос?

Задаче вполне жизненная, есть несколько событий записываемых на странице (идентично 15 секундным записям в ям), есть срезы под доменам и страницам, нужно понять количество переходов далее. Связь между всеми этими событиями через аналог ютм метки

Michal
30.04.2018
09:26:28
Проще всего записать событие "выход по линку" ещё будучи на домене abc.ru.

Если этой записи нет, а есть отдельно записанные события для 2 разных домен, то задача сводится к funnel.

Evgeny
30.04.2018
09:28:24
И в логах хранить просто построчно каждое событие?

Michal
30.04.2018
09:36:41
А есть другие варианты?

Evgeny
30.04.2018
09:37:52
Придумать какую-то магию с преаггрегацией

Wolf
30.04.2018
09:38:19
Как раз кх сделан чтобы уйти от этого

Google
Michal
30.04.2018
09:38:51
Как раз кликхаус - призван решать проблему необходимости и выбора преагрегаций для аналитики.

Evgeny
30.04.2018
09:40:38
Ок, покурю funnel, спасибо большое. Может сможете посоветовать что-то полезное прочитать кроме манов? Книгу или набор статей ?

Wolf
30.04.2018
09:43:51
Ещё нету толком книг) читать документацию и смотреть доклады на Ютюбе для кх

Статей тоже не много, я прочитал их все дня за два

Michal
30.04.2018
09:45:44
на youtube несколько полезных видео. пройти офф. туториал.

Evgeny
30.04.2018
09:46:10
А есть какие-то кукбуки, описанию юзкейсов с решением?

Wolf
30.04.2018
09:52:59
А есть какие-то кукбуки, описанию юзкейсов с решением?
Нет, основной юзкейс в целом один и все плюс минус готовят одинаково мне кажется

Michal
30.04.2018
09:57:22
А есть какие-то кукбуки, описанию юзкейсов с решением?
Насколько я могу судить пока основная таргет-группа кликхауса - это народ, который уже изрядно намучался со своими данными в других системах. Т.е. данные уже есть, их много и знакомы они до боли. Поэтому проблема постоения "с нуля" не особо остро стоит. Хотя да, порой кукбуков не хватает.

Но обычно на все конкретные вопросы несложно найти конкретные ответы. :)

Vsevolod
30.04.2018
16:35:19
а в сабже можно использовать zstd dictionaries?

Evgeny
30.04.2018
19:40:22
Я ещё не постиг магии понимания как получить 45 в тайме, если это 6 строк в логе

Andrew
30.04.2018
19:41:28
А сессии обновлением или ...?
да, сессии обновляем при помощи *MergeTree механики

Я ещё не постиг магии понимания как получить 45 в тайме, если это 6 строк в логе
гуд поинт, в моем примере я неправильно использовал таблицу hits, правильно читать visits

да, сессии обновляем при помощи *MergeTree механики
про регулярность обновления в Метрике не подскажу точно, может коллеги подскажут. ИМХО здесь частота некритична

Тут надо порекламировать Logs API. https://tech.yandex.ru/metrika/doc/api2/logs/fields/clickhouse-integration-docpage/ Сразу даёт представление об архитектуре хранения данных в Метрике

Evgeny
30.04.2018
19:53:18
Спасибо большое!

Google
Константин
01.05.2018
07:03:02
Добрый день! Вопрос по SummingMergeTree

такая ситуация: до недавнего времени, данный движек хорошо справлялся со своей работой, но после внедрения дополнительного поля в родителской таблице и модификации таблицы (SummingMergeTree), мы столкнулись такой проблемой

мы учитываем показы рекламы и теперь у каждого показа появился показатель viewability

так вот, в Summing таблице после аггрегации данных - в этом поле заоблачные показания

это и понятно он суммирует это поле

скажите, что можно предпринять, чтобы в этом поле было avg значение?

Danil
01.05.2018
07:18:06
а нельзя завести еще одно поле, RowsCount, и при выборке делить sum(viewability) на sum(RowsCount)? SummingMergeTree умеет только суммировать.

Константин
01.05.2018
07:42:41
спасибо, уже сам разобрался

просто указал поля для суммирования

так как эта таблица получает данные из группированого селекта, то каждый раз значение viewability попросту перезаписывается

Vadim
01.05.2018
10:53:12
Доброго дня, столкнулся с такой проблемой: У меня есть таблица raw_events, из которой по запросу могут посчитаться за последние 24 часа часовые агрегаты запросами INSERT ... SELECT toStartOfHour(ts) ... FROM raw_events WHERE ts BETWEEN. Вставка результатов происходит в шард с двумя репликами с insert_quorum = 2 (так пришлось сделать, потому что моментально после insert'а следует запрос по этим данным). Так вот, сегодня ночью столкнулся с ситуацией, что INSERT с кворумом вставляет данные только в новую партицию 201805. А все результаты за апрель - игнорируются. Выключил кворумную запись - инсерты стали происходит нормально. Подскажите, в чем может быть дело? Существуют ли какие-то технические ограничения на insert_quorum ?

Denis
01.05.2018
14:25:38
блин, я наконец-то понял как заинклудить креденшиалы в словаре, с 15 попытки https://gist.github.com/den-crane/d6e0f1c7849a0bc44c27eab2de51c911#file-ch-dictionary-source-included

?
01.05.2018
15:18:35
а Support for more than one JOIN in query is not implemented - в планах есть чтобы было имплементед?

Denis
01.05.2018
15:30:52
а Support for more than one JOIN in query is not implemented - в планах есть чтобы было имплементед?
можно джойнить только чуть длиннее получается select from t join (select from t1 join (select from t2 join t3 using) using ) using

?
01.05.2018
15:31:35
ну там да, куча вложенных селектов получается, не оч красиво )

Александр
01.05.2018
16:17:19
Запрос SELECT `entityIri`, `watchers-count`, `time-repeating-average`, `reject-views-duration-average`, `repeating-views-count-average`, `views-duration-average`, `watched-part-average`, `rejects-count`, `progress-average`, `views-count-before-full-watched-average`, `duration`, `full-watched-learners-count`, `overall-watchers-count`, `overall-full-watched-learners-count`, `views-count`, `time-before-full-watched-average`, if (isNaN((`overall-full-watched-learners-count`/`overall-watchers-count`) * 100), 0, (`overall-full-watched-learners-count`/`overall-watchers-count`) * 100) as `overall-watched-part`, if (isNaN((`full-watched-learners-count`/`watchers-count` * 100)), 0, (`full-watched-learners-count`/`watchers-count` * 100)) as `full-watched-part`, if (isNaN((`rejects-count`/`views-count` * 100)), 0, (`rejects-count`/`views-count` * 100)) as `rejects-part` FROM (SELECT `entityIri`, `watchers-count`, `time-repeating-average`, `reject-views-duration-average`, `repeating-views-count-average`, `views-duration-average`, `watched-part-average`, `rejects-count`, `progress-average`, `views-count-before-full-watched-average`, `duration`, `full-watched-learners-count`, `overall-watchers-count`, `overall-full-watched-learners-count`, `views-count`, `time-before-full-watched-average` FROM (SELECT `entityIri`, `watchers-count`, `time-repeating-average`, `reject-views-duration-average`, `repeating-views-count-average`, `views-duration-average`, `watched-part-average`, `rejects-count`, `progress-average`, `views-count-before-full-watched-average`, `duration`, `full-watched-learners-count`, `overall-watchers-count`, `overall-full-watched-learners-count`, `views-count` FROM (SELECT `entityIri`, `watchers-count`, `time-repeating-average`, `reject-views-duration-average`, `repeating-views-count-average`, `views-duration-average`, `watched-part-average`, `rejects-count`, `progress-average`, `views-count-before-full-watched-average`, `duration`, `full-watched-learners-count`, `overall-watchers-count`, `overall-full-watched-learners-count` FROM (SELECT `entityIri`, `watchers-count`, `time-repeating-average`, `reject-views-duration-average`, `repeating-views-count-average`, `views-duration-average`, `watched-part-average`, `rejects-count`, `progress-average`, `views-count-before-full-watched-average`, `duration`, `full-watched-learners-count`, `overall-watchers-count` FROM (SELECT `entityIri`, `watchers-count`, `time-repeating-average`, `reject-views-duration-average`, `repeating-views-count-average`, `views-duration-average`, `watched-part-average`, `rejects-count`, `progress-average`, `views-count-before-full-watched-average`, `duration`, `full-watched-learners-count` FROM (SELECT `entityIri`, `watchers-count`, `time-repeating-average`, `reject-views-duration-average`, `repeating-views-count-average`, `views-duration-average`, `watched-part-average`, `rejects-count`, `progress-average`, `views-count-before-full-watched-average`, `duration` FROM (SELECT `entityIri`, `watchers-count`, `time-repeating-average`, `reject-views-duration-average`, `repeating-views-count-average`, `views-duration-average`, `watched-part-average`, `rejects-count`, `progress-average`, `views-count-before-full-watched-average` FROM (SELECT `entityIri`, `watchers-count`, `time-repeating-average`, `reject-views-duration-average`, `repeating-views-count-average`, `views-duration-average`, `watched-part-average`, `rejects-count`, `progress-average` FROM (SELECT `entityIri`, `watchers-count`, `time-repeating-average`, `reject-views-duration-average`, `repeating-views-count-average`, `views-duration-average`, `watched-part-average`, `rejects-count` FROM (SELECT `entityIri`, `watchers-count`, `time-repeating-average`, `reject-views-duration-average`, `repeating-views-count-average`, `views-duration-average`, `watched-part-average` FROM (SELECT `entityIri`, `watchers-count`, `time-repeating-average`, `reject-views-duration-average`, `repeating-views-count-average`, `views-duration-average` FROM (SELECT `entityIri`, `watchers-count`, `time-repeating-average`,

`reject-views-duration-average`, `repeating-views-count-average` FROM (SELECT `entityIri`, `watchers-count`, `time-repeating-average`, `reject-views-duration-average` FROM (SELECT `entityIri`, `watchers-count`, `time-repeating-average` FROM (SELECT `entityIri`, `watchers-count` FROM (SELECT `entityIri` FROM `CloM8CwMR2`) ANY LEFT JOIN (SELECT uniq(learnerId) as `watchers-count`, `entityIri` FROM `video_views` FINAL ARRAY JOIN `views` PREWHERE `entityIri` IN `CloM8CwMR2` AND `courseId` = 1 WHERE `learnerId` IN `tkRpHxGqM1` GROUP BY `entityIri`) USING `entityIri`) ANY LEFT JOIN (SELECT avg(viewDurationSum) as `time-repeating-average`, `entityIri` FROM (SELECT sum(views.viewDuration) as viewDurationSum, `entityIri`, `learnerId` FROM `video_views` FINAL ARRAY JOIN `views` PREWHERE `entityIri` IN `CloM8CwMR2` AND `courseId` = 1 WHERE `views`.`repeatingView` = 1 AND `learnerId` IN `tkRpHxGqM1` GROUP BY `learnerId`, `entityIri`) GROUP BY `entityIri`) USING `entityIri`) ANY LEFT JOIN (SELECT avg(views.viewDuration) as `reject-views-duration-average`, `entityIri` FROM `video_views` FINAL ARRAY JOIN `views` PREWHERE `entityIri` IN `CloM8CwMR2` AND `courseId` = 1 WHERE `views`.`reject` = 1 AND `learnerId` IN `tkRpHxGqM1` GROUP BY `entityIri`) USING `entityIri`) ANY LEFT JOIN (SELECT avg(viewsCount) as `repeating-views-count-average`, `entityIri` FROM (SELECT count() as viewsCount, `learnerId`, `entityIri` FROM `video_views` FINAL ARRAY JOIN `views` PREWHERE `courseId` = 1 AND `entityIri` IN `CloM8CwMR2` WHERE `views`.`repeatingView` = 1 AND `learnerId` IN `tkRpHxGqM1` GROUP BY `learnerId`, `entityIri`) GROUP BY `entityIri`) USING `entityIri`) ANY LEFT JOIN (SELECT avg(views.viewDuration) as `views-duration-average`, `entityIri` FROM `video_views` FINAL ARRAY JOIN `views` PREWHERE `entityIri` IN `CloM8CwMR2` AND `courseId` = 1 WHERE `learnerId` IN `tkRpHxGqM1` GROUP BY `entityIri`) USING `entityIri`) ANY LEFT JOIN (SELECT avg(views.watchedPart) as `watched-part-average`, `entityIri` FROM `video_views` FINAL ARRAY JOIN `views` PREWHERE `entityIri` IN `CloM8CwMR2` AND `courseId` = 1 WHERE `learnerId` IN `tkRpHxGqM1` GROUP BY `entityIri`) USING `entityIri`) ANY LEFT JOIN (SELECT count() as `rejects-count`, `entityIri` FROM `video_views` FINAL ARRAY JOIN `views` PREWHERE `entityIri` IN `CloM8CwMR2` AND `courseId` = 1 WHERE `views`.`reject` = 1 AND `learnerId` IN `tkRpHxGqM1` GROUP BY `entityIri`) USING `entityIri`) ANY LEFT JOIN (SELECT avg(progressMax) as `progress-average`, `entityIri` FROM (SELECT max(views.progress) as progressMax, `entityIri`, `learnerId` FROM `video_views` FINAL ARRAY JOIN `views` PREWHERE `entityIri` IN `CloM8CwMR2` AND `courseId` = 1 WHERE `learnerId` IN `tkRpHxGqM1` GROUP BY `learnerId`, `entityIri`) GROUP BY `entityIri`) USING `entityIri`) ANY LEFT JOIN (SELECT avg(fullWatchedViews) as `views-count-before-full-watched-average`, `entityIri` FROM `video_views` FINAL PREWHERE `entityIri` IN `CloM8CwMR2` AND `courseId` = 1 WHERE `learnerId` IN `tkRpHxGqM1` GROUP BY `entityIri`) USING `entityIri`) ANY LEFT JOIN (SELECT any(duration) as `duration`, `entityIri` FROM `video_views` FINAL PREWHERE `entityIri` IN `CloM8CwMR2` AND `courseId` = 1 WHERE `learnerId` IN `tkRpHxGqM1` GROUP BY `entityIri`) USING `entityIri`) ANY LEFT JOIN (SELECT uniq(learnerId) as `full-watched-learners-count`, `entityIri` FROM `video_views` FINAL PREWHERE `entityIri` IN `CloM8CwMR2` AND `courseId` = 1 WHERE `fullWatched` = 1 AND `learnerId` IN `tkRpHxGqM1` GROUP BY `entityIri`) USING `entityIri`) ANY LEFT JOIN (SELECT uniq(learnerId) as `overall-watchers-count`, `entityIri` FROM `video_views` FINAL ARRAY JOIN `views` PREWHERE `entityIri` IN `CloM8CwMR2` AND `courseId` = 1 WHERE `learnerId` IN `tkRpHxGqM1` GROUP BY `entityIri`) USING `entityIri`) ANY LEFT JOIN (SELECT uniq(learnerId) as `overall-full-watched-learners-count`,

`entityIri` FROM `video_views` FINAL PREWHERE `entityIri` IN `CloM8CwMR2` AND `courseId` = 1 WHERE `fullWatched` = 1 AND `learnerId` IN `tkRpHxGqM1` GROUP BY `entityIri`) USING `entityIri`) ANY LEFT JOIN (SELECT count() as `views-count`, `entityIri` FROM `video_views` FINAL ARRAY JOIN `views` PREWHERE `entityIri` IN `CloM8CwMR2` AND `courseId` = 1 WHERE `learnerId` IN `tkRpHxGqM1` GROUP BY `entityIri`) USING `entityIri`) ANY LEFT JOIN (SELECT avg(fullWatchedTime) as `time-before-full-watched-average`, `entityIri` FROM `video_views` FINAL PREWHERE `entityIri` IN `CloM8CwMR2` AND `courseId` = 1 WHERE `learnerId` IN `tkRpHxGqM1` GROUP BY `entityIri`) USING `entityIri`) FORMAT JSON

Google
Александр
01.05.2018
16:17:39
А то, что там выше - фигня )

?
01.05.2018
16:17:59
?

у меня вручную делается, что осложняет

Александр
01.05.2018
16:19:17
Ну да. Вручную такие запросы писать оооочень сложно.

?
01.05.2018
16:32:34
`reject-views-duration-average`, `repeating-views-count-average` FROM (SELECT `entityIri`, `watchers-count`, `time-repeating-average`, `reject-views-duration-average` FROM (SELECT `entityIri`, `watchers-count`, `time-repeating-average` FROM (SELECT `entityIri`, `watchers-count` FROM (SELECT `entityIri` FROM `CloM8CwMR2`) ANY LEFT JOIN (SELECT uniq(learnerId) as `watchers-count`, `entityIri` FROM `video_views` FINAL ARRAY JOIN `views` PREWHERE `entityIri` IN `CloM8CwMR2` AND `courseId` = 1 WHERE `learnerId` IN `tkRpHxGqM1` GROUP BY `entityIri`) USING `entityIri`) ANY LEFT JOIN (SELECT avg(viewDurationSum) as `time-repeating-average`, `entityIri` FROM (SELECT sum(views.viewDuration) as viewDurationSum, `entityIri`, `learnerId` FROM `video_views` FINAL ARRAY JOIN `views` PREWHERE `entityIri` IN `CloM8CwMR2` AND `courseId` = 1 WHERE `views`.`repeatingView` = 1 AND `learnerId` IN `tkRpHxGqM1` GROUP BY `learnerId`, `entityIri`) GROUP BY `entityIri`) USING `entityIri`) ANY LEFT JOIN (SELECT avg(views.viewDuration) as `reject-views-duration-average`, `entityIri` FROM `video_views` FINAL ARRAY JOIN `views` PREWHERE `entityIri` IN `CloM8CwMR2` AND `courseId` = 1 WHERE `views`.`reject` = 1 AND `learnerId` IN `tkRpHxGqM1` GROUP BY `entityIri`) USING `entityIri`) ANY LEFT JOIN (SELECT avg(viewsCount) as `repeating-views-count-average`, `entityIri` FROM (SELECT count() as viewsCount, `learnerId`, `entityIri` FROM `video_views` FINAL ARRAY JOIN `views` PREWHERE `courseId` = 1 AND `entityIri` IN `CloM8CwMR2` WHERE `views`.`repeatingView` = 1 AND `learnerId` IN `tkRpHxGqM1` GROUP BY `learnerId`, `entityIri`) GROUP BY `entityIri`) USING `entityIri`) ANY LEFT JOIN (SELECT avg(views.viewDuration) as `views-duration-average`, `entityIri` FROM `video_views` FINAL ARRAY JOIN `views` PREWHERE `entityIri` IN `CloM8CwMR2` AND `courseId` = 1 WHERE `learnerId` IN `tkRpHxGqM1` GROUP BY `entityIri`) USING `entityIri`) ANY LEFT JOIN (SELECT avg(views.watchedPart) as `watched-part-average`, `entityIri` FROM `video_views` FINAL ARRAY JOIN `views` PREWHERE `entityIri` IN `CloM8CwMR2` AND `courseId` = 1 WHERE `learnerId` IN `tkRpHxGqM1` GROUP BY `entityIri`) USING `entityIri`) ANY LEFT JOIN (SELECT count() as `rejects-count`, `entityIri` FROM `video_views` FINAL ARRAY JOIN `views` PREWHERE `entityIri` IN `CloM8CwMR2` AND `courseId` = 1 WHERE `views`.`reject` = 1 AND `learnerId` IN `tkRpHxGqM1` GROUP BY `entityIri`) USING `entityIri`) ANY LEFT JOIN (SELECT avg(progressMax) as `progress-average`, `entityIri` FROM (SELECT max(views.progress) as progressMax, `entityIri`, `learnerId` FROM `video_views` FINAL ARRAY JOIN `views` PREWHERE `entityIri` IN `CloM8CwMR2` AND `courseId` = 1 WHERE `learnerId` IN `tkRpHxGqM1` GROUP BY `learnerId`, `entityIri`) GROUP BY `entityIri`) USING `entityIri`) ANY LEFT JOIN (SELECT avg(fullWatchedViews) as `views-count-before-full-watched-average`, `entityIri` FROM `video_views` FINAL PREWHERE `entityIri` IN `CloM8CwMR2` AND `courseId` = 1 WHERE `learnerId` IN `tkRpHxGqM1` GROUP BY `entityIri`) USING `entityIri`) ANY LEFT JOIN (SELECT any(duration) as `duration`, `entityIri` FROM `video_views` FINAL PREWHERE `entityIri` IN `CloM8CwMR2` AND `courseId` = 1 WHERE `learnerId` IN `tkRpHxGqM1` GROUP BY `entityIri`) USING `entityIri`) ANY LEFT JOIN (SELECT uniq(learnerId) as `full-watched-learners-count`, `entityIri` FROM `video_views` FINAL PREWHERE `entityIri` IN `CloM8CwMR2` AND `courseId` = 1 WHERE `fullWatched` = 1 AND `learnerId` IN `tkRpHxGqM1` GROUP BY `entityIri`) USING `entityIri`) ANY LEFT JOIN (SELECT uniq(learnerId) as `overall-watchers-count`, `entityIri` FROM `video_views` FINAL ARRAY JOIN `views` PREWHERE `entityIri` IN `CloM8CwMR2` AND `courseId` = 1 WHERE `learnerId` IN `tkRpHxGqM1` GROUP BY `entityIri`) USING `entityIri`) ANY LEFT JOIN (SELECT uniq(learnerId) as `overall-full-watched-learners-count`,
фига?

Александр
01.05.2018
16:34:36
фига?
Это еще «маленький» :)

Атата
01.05.2018
16:35:45
Это еще «маленький» :)
Давайте в следующий раз через пастебин меряться ))

Александр
01.05.2018
16:36:20
Давайте в следующий раз через пастебин меряться ))
Ок :) просто это было из серии «не времени объяснять»)

papa
01.05.2018
18:59:04
Запрос SELECT `entityIri`, `watchers-count`, `time-repeating-average`, `reject-views-duration-average`, `repeating-views-count-average`, `views-duration-average`, `watched-part-average`, `rejects-count`, `progress-average`, `views-count-before-full-watched-average`, `duration`, `full-watched-learners-count`, `overall-watchers-count`, `overall-full-watched-learners-count`, `views-count`, `time-before-full-watched-average`, if (isNaN((`overall-full-watched-learners-count`/`overall-watchers-count`) * 100), 0, (`overall-full-watched-learners-count`/`overall-watchers-count`) * 100) as `overall-watched-part`, if (isNaN((`full-watched-learners-count`/`watchers-count` * 100)), 0, (`full-watched-learners-count`/`watchers-count` * 100)) as `full-watched-part`, if (isNaN((`rejects-count`/`views-count` * 100)), 0, (`rejects-count`/`views-count` * 100)) as `rejects-part` FROM (SELECT `entityIri`, `watchers-count`, `time-repeating-average`, `reject-views-duration-average`, `repeating-views-count-average`, `views-duration-average`, `watched-part-average`, `rejects-count`, `progress-average`, `views-count-before-full-watched-average`, `duration`, `full-watched-learners-count`, `overall-watchers-count`, `overall-full-watched-learners-count`, `views-count`, `time-before-full-watched-average` FROM (SELECT `entityIri`, `watchers-count`, `time-repeating-average`, `reject-views-duration-average`, `repeating-views-count-average`, `views-duration-average`, `watched-part-average`, `rejects-count`, `progress-average`, `views-count-before-full-watched-average`, `duration`, `full-watched-learners-count`, `overall-watchers-count`, `overall-full-watched-learners-count`, `views-count` FROM (SELECT `entityIri`, `watchers-count`, `time-repeating-average`, `reject-views-duration-average`, `repeating-views-count-average`, `views-duration-average`, `watched-part-average`, `rejects-count`, `progress-average`, `views-count-before-full-watched-average`, `duration`, `full-watched-learners-count`, `overall-watchers-count`, `overall-full-watched-learners-count` FROM (SELECT `entityIri`, `watchers-count`, `time-repeating-average`, `reject-views-duration-average`, `repeating-views-count-average`, `views-duration-average`, `watched-part-average`, `rejects-count`, `progress-average`, `views-count-before-full-watched-average`, `duration`, `full-watched-learners-count`, `overall-watchers-count` FROM (SELECT `entityIri`, `watchers-count`, `time-repeating-average`, `reject-views-duration-average`, `repeating-views-count-average`, `views-duration-average`, `watched-part-average`, `rejects-count`, `progress-average`, `views-count-before-full-watched-average`, `duration`, `full-watched-learners-count` FROM (SELECT `entityIri`, `watchers-count`, `time-repeating-average`, `reject-views-duration-average`, `repeating-views-count-average`, `views-duration-average`, `watched-part-average`, `rejects-count`, `progress-average`, `views-count-before-full-watched-average`, `duration` FROM (SELECT `entityIri`, `watchers-count`, `time-repeating-average`, `reject-views-duration-average`, `repeating-views-count-average`, `views-duration-average`, `watched-part-average`, `rejects-count`, `progress-average`, `views-count-before-full-watched-average` FROM (SELECT `entityIri`, `watchers-count`, `time-repeating-average`, `reject-views-duration-average`, `repeating-views-count-average`, `views-duration-average`, `watched-part-average`, `rejects-count`, `progress-average` FROM (SELECT `entityIri`, `watchers-count`, `time-repeating-average`, `reject-views-duration-average`, `repeating-views-count-average`, `views-duration-average`, `watched-part-average`, `rejects-count` FROM (SELECT `entityIri`, `watchers-count`, `time-repeating-average`, `reject-views-duration-average`, `repeating-views-count-average`, `views-duration-average`, `watched-part-average` FROM (SELECT `entityIri`, `watchers-count`, `time-repeating-average`, `reject-views-duration-average`, `repeating-views-count-average`, `views-duration-average` FROM (SELECT `entityIri`, `watchers-count`, `time-repeating-average`,
а это нельзя разве через один джойн посчитать?

Александр
01.05.2018
19:09:00
Некоторые данные можно

papa
01.05.2018
19:34:14
https://pastebin.com/HJzm5xiK вроде все можно, хотя без данных непонятно.

Alexander
01.05.2018
19:44:21
подскажите, как сделать JOIN без USING (Декартово произведение)?

Alexey
01.05.2018
19:47:03
CROSS JOIN

Alexander
01.05.2018
19:47:18
спасибо ☺️

Denis
01.05.2018
20:02:00
странная фича, если создать базу ENGINE = Dictionary, то словари обновляются при старте КХ, т.е. параметр dictionaries_lazy_load теряет смысл.

Alexey
01.05.2018
20:05:00
Действительно, странно. Я ожидал, что при первом обращении к этой БД.

Denis
01.05.2018
20:18:31
Действительно, странно. Я ожидал, что при первом обращении к этой БД.
видимо само создание / атач этой базы инициирует обновление словарей, в моем окружении получается что КХ не принимает соедения 5 мин. после service start и идут обновления словарей.

Roman
01.05.2018
20:26:18
https://github.com/HouseOps/HouseOps

Google
Denis
01.05.2018
20:36:27
100, длинные, широкие и латенси 200мс, а ну и проблема если 20 штук КХ перезапускать сразу (при апгрейде). (Dictionaries: memory taken: 3.55 GB)

Ivan
02.05.2018
05:26:46
Есть ли какие то настройки что бы управлть mark cache?

Slach
02.05.2018
05:29:49
https://github.com/HouseOps/HouseOps
пока выглядит как "до tabix ему еще топать и топать" =)

zigmund
02.05.2018
06:48:06
Подскажите по оптимизации. Есть кластер из 2 шардов, каждый из 2 реплик. ReplicatedMergeTree, 3 ноды Zookeeper, и "прокси" Destributed, через которую данные льются. Пара сотен инсертов в секунду, реализовать пакетный ввод сейчас не представляется возможным. Ноды достаточно нагружены по диску, так же сильно дёргают Zookeeper. Имеет ли смысл вкорячить Buffer в цепочку? И если да, то где? Перед Distributed на прокси, или перед перед ReplicatedMergeTree на датанодах? Мне видится правильным первый вариант. И получится ли таким образом снизить кол-во запросов в Zookeeper? То есть запросы туда идут per row или per insert (batch)?

Slach
02.05.2018
06:50:01
запросы в ZK идут per batch да, можно вкорячить buffer перед distributed еще есть вот такое https://github.com/Vertamedia/chproxy

zigmund
02.05.2018
06:51:57
Попробую буфер перед Distributed, посмотрим что из этого получится.

Alexander
02.05.2018
06:53:24
Я buffer использовал, за исключением нескольких ньюансов всё нормально было. Но без distributed.

zigmund
02.05.2018
07:33:35
Сделал. Получил отличные результаты.

Количество ZK транзакций в сек упало с ~400 до ~10

?
02.05.2018
10:53:56
а нет у нас какого-нить arrayFilterIF ? мне надо чтобы если пустой массив, то фильтр не использовался

хотя по идее можно условие внутрь лямбы перенести, щас попробую

Phsm
02.05.2018
11:04:16
Добрый день всем! Настроил получение данных через Kafka, materialized view-ом данные успешно закидываются в нужную мне таблицу. Но похоже что данные, попавшие в таблицу с помощью mat. view, не триггерят еще один mat. view, который дублирует их в следующую таблицу. Никто не сталкивался? Инстанс один, без кластеризации. то есть получается цепочка данных: Kafka -> mat.view повешенный на кафковую таблицу -> table1 -> mat. view повешенный на table1 -> table2

Да, явно данные, закинутые в таблицу мат. вьюхой, не цепляются следующей мат. вьюхой. А можно ли с помощью одного materialized view закидывать данные сразу в 2 таблицы?

Phsm
02.05.2018
11:42:01
то есть из кафковой таблицы вычитывать сразу двумя MV?

но я думал что там данные при селекте пропадают.. И получается одна вьюха первая получила данные, второй их уже не достанется. Или это точно работает?

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