@clickhouse_ru

Страница 164 из 723
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

тут мне говорят что у меня старая версия плагина, так что простой копипаст может не работать!

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
оке. допустим параметры хранятся в филде типа Array. как правильно указать условия WHERE и GROUP BY если нужна группировка по переменным с конкретными значениями? SELECT * FROM table WHERE urlvar IN (1,2,3) GROUP BY urlvar
давайте начнем немного с начала. у вас есть таблица, в ней одна строка это нечто с урлом. также у вас есть колонка Array(String) с параметрами, например с их именами. а рядом, можно предположить, есть еще одна колонка с значениями, тоже Array(String), в хорошем случае такой же длины как первый.

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

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
чтоб и фильтровать и группировать
хорошо, а если бы эти параметры лежали в другой таблице 1 ко многим, вы бы как этот запрос написали?

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
хм... скорее всего. а это сработает если помимо необходимых переменных и значений, в фиелде Array будут другие переменные?
какие другие? arrayExists выдает true если для хотя бы одного индекса предикат выполнился.

Alexander
08.06.2017
14:57:49
papa
08.06.2017
14:58:05
Всем привет, скажите пожалуйста для каких целей Вы используюете ClickHouse?
когда мне скучно, я его ломаю, это поднимает настроение.

Alex
08.06.2017
14:59:03
Всем привет, скажите пожалуйста для каких целей Вы используюете ClickHouse?
логирование траффика для последующего анализа

papa, спасибо, сейчас буду тестить, но видимо это то, что мне нужно!

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

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

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: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
Для разных вещей: список процессов, список запросов, колонки и таблицы -- чтобы можно было с одного места увидеть все, сравнить между нодами и т.п.
Интересно насколько реализация в tabix хуже, я сделал так: SELECT * FROM remote('_NODES_LIST_',system.processes) где в nodes перечислены все узлы кластера через запятую На наших 12ти нодах на ура работает ))

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