
f1yegor
08.06.2017
13:13:00
да, у меня что-то типа такого и получилось
$rateColumns(type, sum(query_duration_ms) c) FROM system.query_log_all WHERE $timeFilter

Roman
08.06.2017
13:15:02
да, а почему Вы думаете, что что-то может пойти не так?

Google

f1yegor
08.06.2017
13:15:29
наверное потому что что-то не так пошло)

Roman
08.06.2017
13:15:40
WHERE $timeFilte
не нужен
он подставляется

f1yegor
08.06.2017
13:16:30
вот так получилось
SELECT
$timeSeries as t,
avg(query_duration_ms) select_duration
FROM system.query_log_all
WHERE $timeFilter AND type = 2
and query like 'SELECT%'
GROUP BY t
ORDER BY t
тут мне говорят что у меня старая версия плагина, так что простой копипаст может не работать!

papa
08.06.2017
14:18:25

Alexander
08.06.2017
14:21:08
всем привет. кто-нибудь подключал здесь odbc драйвер на винде? пытались подключить его к spss моделлеру - ничего не вышло. скачивали сборку из гитхаба последнюю

Denys
08.06.2017
14:21:57
JDBC драйвер прекрасно работает с DBeaver под Windows

Alexander
08.06.2017
14:23:17
нужен конкретно odbc драйвер. с jdbc делали подключение через плагин для языка R.

Alex
08.06.2017
14:23:26
оке. допустим параметры хранятся в филде типа Array. как правильно указать условия WHERE и GROUP BY если нужна группировка по переменным с конкретными значениями? SELECT * FROM table WHERE urlvar IN (1,2,3) GROUP BY urlvar

Alexander
08.06.2017
14:24:28
можете подсказать к кому обратиться по вопросу с odbc? если помогут разобраться - могу сделать PR с описание как его собрать/настроить

f1yegor
08.06.2017
14:25:53
сделал такую штуку,

Google

f1yegor
08.06.2017
14:25:55
CREATE TABLE system.query_log_all AS system.query_log ENGINE = Distributed(cluster, system, query_log, rand());
CREATE TABLE system.processes_all AS system.processes ENGINE = Distributed(cluster, system, processes, rand());

papa
08.06.2017
14:26:12

f1yegor
08.06.2017
14:26:17
но непонятно как отличать запросы на разных нодах друг от друга

papa
08.06.2017
14:28:09

Alex
08.06.2017
14:32:47
такой запрос теряет смысл, потому что нет привязки между урлами и Param.Keys и Param.Values. Не факт, что в урле вообще будут какие-то параметры. Смысл в получении отчета по трафику, который пришел с урла с определенными переменными в урле и их значениями.

papa
08.06.2017
14:34:07
ну так если у урла нет параметров, то он явно не относится к этому трафику.

Alex
08.06.2017
14:34:17
раньше для таких репортов в мускуле пришлось завести отдельные таблицы, которые мержились с основной статой по primary key

papa
08.06.2017
14:34:29
а что такое "отчет по трафику"

Alexander
08.06.2017
14:35:41
сделал такую штуку,
Мы еще добавляем node, чтоб ы можно было из одного места смотреть все и в разбивке по нодам. Для этого на каждой ноде создается view, где в node прописано имя ноды, а потом уже distributed смотрит на все вместе

papa
08.06.2017
14:35:43
может вам нужно arrayExists(x,y-> x='k' and y='v', Param.Key, Param.Value) ?

Alex
08.06.2017
14:36:09
имеется ввиду таблица MergeTree, в которую сливается стата по импрешенам-кликам, и в которую пишутся страна, ось, браузер и тд и тп

papa
08.06.2017
14:37:37
вам по параметрам урлов надо группировать или фильтровать?

Alex
08.06.2017
14:38:22
и то и другое.

papa
08.06.2017
14:39:22
и что именно у вас не получается?

Alex
08.06.2017
14:40:35
не могу понять как правильно запрос формировать к фиелду типа Array

Igor
08.06.2017
14:40:49

Alex
08.06.2017
14:40:57
чтоб и фильтровать и группировать

Oleg
08.06.2017
14:41:12
можно кстати сложить их допольнительными строками в БД, вместо Array
тогда с группировкой и фильтрацией попроще

Pavel
08.06.2017
14:42:51
мне хочется странной визуализиации в кликхаусе, у меня около 15ти числовых полей (32 бита) в базе, я хочу делать отражения в 3х мерное пространство трех заданных полей.

Google

Pavel
08.06.2017
14:43:13
и хочу видеть это на 3х мерной картинке с возможностью ее покрутить

papa
08.06.2017
14:43:25

Pavel
08.06.2017
14:44:45
тут много плагинов для визуализации обсуждается
для 2х мерного случая я абсолютно рад графане, но для 3д в голову не приходит ничего

papa
08.06.2017
14:46:37
последнее куда я данные заливал, был projector.tensorflow.org , можно сразу в 15 измерениях PCA построить или t-SNE
хотя он немного не для этого.

Pavel
08.06.2017
14:50:19
красиво, но хочется что-то stand alone, в облаке много штук которые это могут, но обычно хочут денег

Alex
08.06.2017
14:50:46
в текущей реализации, есть основная таблица со статой с primary key statId, таблица urlvars (statid, varid, varval), таблица var (varid, varname). По условию varval и varname выбираются подходящие statId и проводится группировка

papa
08.06.2017
14:51:39
может вам нужно arrayExists(x,y-> x='k' and y='v', Param.Key, Param.Value) ?

Alex
08.06.2017
14:53:27
хм... скорее всего. а это сработает если помимо необходимых переменных и значений, в фиелде Array будут другие переменные?
и как можно ускорить работу по этому филду?

?
08.06.2017
14:54:54
Всем привет, скажите пожалуйста для каких целей Вы используюете ClickHouse?

Pavel
08.06.2017
14:55:53
Храню Netflow/sflow телеметрию с сетей в нем ;)

Александр
08.06.2017
14:55:58

papa
08.06.2017
14:57:09

Alexander
08.06.2017
14:57:49

papa
08.06.2017
14:58:05

Alex
08.06.2017
14:59:03
papa, спасибо, сейчас буду тестить, но видимо это то, что мне нужно!

Google

Alex
08.06.2017
15:01:17
кликхаус это просто праздник какой-то

papa
08.06.2017
15:02:25
arratFilter arrayMap тоже могут принимать несколько массивов и лямбду соответствующей арности

Roman
08.06.2017
15:04:06

Pavel
08.06.2017
15:05:10
@hagen1778 супер! спасибо!

Roman
08.06.2017
15:05:17
спасибо https://grafana.com/orgs/natel

Alexander
08.06.2017
15:06:51
Вопрос: хочу избежать дублей для таблицы в которой будет храниться словарь. Вроде Set лёг бы идеально, но словари с ним не работают. Вопрос: как бы лучше и быстрее осуществить вставку недублирующих значений, ну или проверку + ставку если нет.

Roman
08.06.2017
15:07:56
Добрый день.
Каким-нибудь образом реально делать суточные бекапы, учитывая, что партиции бывают только месячные?
И соответственно вопрос, что если использовать месячные партиции как суточные, имитируя новый месяц каждый день?

Vladimir
08.06.2017
15:07:58

Vladimir
08.06.2017
15:08:59
очень ждут :(

Roman
08.06.2017
15:09:19
Ага, это я видел :)
Но теоретически имитация нового месяца вполне рабочий вариант?
Начиная с 197001 и вперед

Vladimir
08.06.2017
15:09:45
и вопрос - что делать потом?

Roman
08.06.2017
15:09:55
Ну лет вперед же много )

Vladimir
08.06.2017
15:10:09
так мне кажется в КХ только до 2038 года date сейчас
хотя я не помню...

Vladimir
08.06.2017
15:10:31

Vladimir
08.06.2017
15:10:57
то есть хватит на 816 дней
условно

Google

Vladimir
08.06.2017
15:11:12
а там партицирование заработает))

Vladimir
08.06.2017
15:11:21
ага, но потом переделывать все )

Roman
08.06.2017
15:11:30
ну то есть если нужны данные за 2 года, можно по модулю 365*2 даты ротировать :)
дропая старые партиции
это конечно не очень классно, но ждать тоже неклассно )

Pavel
08.06.2017
15:12:01
иногда подождать - лучшее решение

Vladimir
08.06.2017
15:12:15
нужно как-то в софте поддерживать маппинг 1970-01 в реальную дату
еще и консистентно везде

Roman
08.06.2017
15:12:48
Ну это реалистично. Неудобно конечно.
В принципе можно конечно итеративно снимать бекап месяца, просто к концу месяца он уже будет совсем большой

Pavel
08.06.2017
15:13:15
или использовать дедупликацию в бэкапе
хотя бы на блочном уровне

Roman
08.06.2017
15:13:38
Хм. А поподробнее?

Pavel
08.06.2017
15:14:22
ну если система бэкапа умеет поблочную дедупликацию, то можно делать бэкап каждый день, но по факту будет добавляться лишь вновь добавленная информация

Roman
08.06.2017
15:14:52
а система бекапа = это не FREEZE PARTITION?

Pavel
08.06.2017
15:15:04
ага, консистентности так или иначе надо как-то добиваться
ну или LVM snapshot / ZFS snapshot и разморозка сразу же

Alexander
08.06.2017
15:15:30
В общем, наверное, все таблицы из system.*

Igor
08.06.2017
15:23:46