
Igor
28.12.2016
11:27:15
вообще, в reference_*.html жесть какая-то происходит, там подключается какой-то шаблонизатор на JS, и если работает что-то типа NoScript или uMatrix, то документация не особо читабельна

Igor
28.12.2016
11:27:42
Ну там markdown + чуть чуть html

Igor
28.12.2016
11:29:28
и бывают неконсистентные моменты, типа, где-то <h3>, а где-то ===маркдаун===

Igor
28.12.2016
11:29:31
Или не марк - но формат прослеживается ==functionName==\nDescription...

Google

Igor
28.12.2016
11:29:44
ну да, у маркдауна вроде #, тоже иногда путаюсь
а, вот.
// Генерация HTML по разметке, отдалённо напоминающей Wiki. Криво.
вообще, если уж на то пошло, было бы наверное круто расширить system.functions, добавив столбцы с параметрами и описанием функции, например

Alexey
28.12.2016
11:33:33
Да, было бы очень хорошо. И из этого можно генерировать документацию. Есть пара технических сложностей - чтобы более удобным образом (декларативно) задавать в коде сигнатуру функций. Если это сделать, то дальше будет проще.

Igor
28.12.2016
11:36:39
ой, а можно глупый вопрос? а в ближайшее время не планируется совершенствования clickhouse-client'а - то же самое автодополнение, например?

Alexey
28.12.2016
11:41:08
В планах нет. Я об этом думал.
Хотелось бы избавиться от библиотеки readline, так как она слишком тормозит при вставке больших запросов (вставить мегабайт из буфера обмена - сплошное мучение). В readline также очень трудно сделать подсветку синтаксиса по мере набора.
Есть библиотека linenoise, но она даже не поддерживает UTF-8 - невозможно пользоваться. Есть патчи с поддержкой, но они тоже ужасно тормозят.
Великолепно сделана подсветка синтаксиса и автодополнение в fish shell. Права вставка тоже тормозит.
Есть нормальная библиотека вместо readline для Python. Использовать не получится.
Задача не серьёзная, поэтому без сроков. Может быть можно сделать из чувтства прекрасного.

Igor
28.12.2016
11:41:58
> Есть нормальная библиотека вместо readline для Python.
это которая, prompt_toolkit?

Alexey
28.12.2016
11:42:11
Да, вроде так называется.

Igor
28.12.2016
11:42:18
я как раз на ней clickhouse-cli наваял
она очень хорошая, да, но меня очень-очень расстраивает тем, что она вмешивается в перенос строк при line wrapping'е длинных запросов
если копи-пастить из терминала SQL-запрос, а размер терминала не вмещает запрос по ширине, то в буфер обмена попадет нечто вроде:
:) SELECT 1, 2, 3, 4, 5, 6, arrayJ
oin(['1', '2', '3']);
с \n после arrayJ
причем этим страдают все софтины на ее основе - ipython, ptpython, pgcli, mycli и прочие
ну ладно, спасибо, буду по мере возможности допиливать автодополнение тогда в ней. опыта с этим мало очень, никогда ничего подобного не писал )

Dmitry
28.12.2016
11:46:56
подсветка и дополнение хорошо сделаны в ipython

Google

Igor
28.12.2016
11:47:20
да, он с какой-то версии тоже, как и ptpython, перешел на prompt_toolkit
если хотите, можете потыкать clickhouse-cli, но он правда очень-очень кривой, мне стыдно
https://github.com/hatarist/clickhouse-cli
поддержкой второго питончика не занимался еще

Dmitry
28.12.2016
11:48:12
в принципе, для работы с данными можно использовать jupyter notebook

Alexey
28.12.2016
11:48:40

Igor
28.12.2016
11:49:28

Igor
28.12.2016
12:04:01
SuperSet прикрутили к CH ?

Igor
28.12.2016
12:06:23
ну, мне сегодня удалось, правда, кхм, частично
после установки sqlalchemy-clickhouse
там, правда, на этапе агрегаций уже какие-то ошибки посыпались, точно не помню, но было бы странно ожидать другого от драйвера двухнедельной давности с одним коммитом)

Igor
28.12.2016
13:02:38
ну он полгода назад был очень очень глючным... но если его завести с druid он круто работал

Roman
28.12.2016
13:13:35

Nikita
28.12.2016
13:15:32
еще бы стоил не как самолет :)

Igor
28.12.2016
13:16:12
я сегодня впервые им воспользовался вообще и никогда не юзал ниче подобного, поэтому вряд ли подскажу, сорри :(
там можно для любого столбца задать "a valid sql expression", в который будут преобразовываться данные из этого столбца
и есть фильтрация/сортировка/группировка, но вроде больше ниче нет

Roman
28.12.2016
13:17:21
А кто юзал, подскажите, там динамические обновляемые диаграммы как в kibana/grafana делать можно?

Igor
28.12.2016
13:17:46
Динамика, да есть
Для druid , а как оно будет с CH - не знаю

Google

Roman
28.12.2016
13:18:25
Динамика, да есть
Динамика — то есть подгрузка и обновление диаграммы без необходимости перерисоывания всего дашборда, да?

Igor
28.12.2016
13:18:46
посмотрел щас, есть refresh interval для дашборды, можно 10 сек минимум указать
причем модули (слайсы? диаграммы? хрен знает как их назвать) обновляются независимо друг от друга

Roman
28.12.2016
13:20:05
спасибо

Igor
28.12.2016
13:20:13
ну, по крайней мере, анимация не одновременная :)))

Igor
28.12.2016
13:22:53
tableau + CH только в весии Professional можно запустить или в Public тоже можно подружить их ?

Roman
28.12.2016
13:25:12

Vladislav
28.12.2016
13:27:32
у паблика вообще почти нет коннекторов, кроме веба и локальных файлов
только если прослойку делать

Igor
28.12.2016
13:28:03
А прослойку через вот эту штуку http://tableau.github.io/webdataconnector/ ?

Roman
28.12.2016
13:28:09

Igor
28.12.2016
13:28:25
:))

Roman
28.12.2016
13:28:53
Блин, черти в Tableau сделали Personal edition платной за 1К или она уже была платной?

Vladislav
28.12.2016
13:29:31

Vil
28.12.2016
13:29:41

Nikita
28.12.2016
13:30:06

Roman
28.12.2016
13:30:12

Google

Nikita
28.12.2016
13:32:02
web data connector разве умеет запросы какие-то проксировать? он же вроде тупо данные отдает
ну типа как csv, а все остальнео уже сама tableau делает. мне всегда казалось, что так

Roman
28.12.2016
13:33:31

Igor
28.12.2016
13:36:08
http://tableau.github.io/webdataconnector/docs/wdc_tutorial.html
Вот пример хороший

Nikita
28.12.2016
13:37:47
из этого примера я и сделал вывод, что все данные должны отдаться в tableau и он уже будет делать аггрегацию. я посмотрел elasticsearch-tableau-connector по скриншотам там такая же петрушка. т.е. сам запрос tablue в wdc прокинуть не может

Roman
28.12.2016
13:39:39
Кто использует активно Tableu с мощными реализционками типа Vertica, скажите, оно умеет агрегаты запрашивать у источника, не пытаясь агрегировать самой?

Андрей
28.12.2016
13:40:02
Умеет, но это зависит от коннектора, разумеется.

Roman
28.12.2016
13:40:15
Вот с кубами MSSSAS/Essbase оно именно так и работает — транслирует в MDX свои запросы и получает в ответ готовые агрегаты.

Андрей
28.12.2016
13:40:49
А с flat file, он полностью агрегирует на своей стороне, потому что у csv никаких движков в принципе нет.

Roman
28.12.2016
13:41:00

Андрей
28.12.2016
13:41:09
Поэтому, зависит от источника данных ~ коннектора.

Roman
28.12.2016
13:41:41
Умеет, но это зависит от коннектора, разумеется.
Какие это ограничения накладывает? Например, продолжая тему кубов — при работе с кубами через MDX отключается 2/3 собственного языка Tableau. Но это не особо страшно, расчетные меры и новые мемберы измерений можно прямо в Tableau писать на MDX.
А как в случае с реляционками, которые умеют оттдавать агрегаты быстро, Tableau понимает, нужно ли просить агрегат или агрегировать самой?

Андрей
28.12.2016
14:05:32
Если честно, то не помню.
Обычно я пользовался Custom SQL и это решало все вопросы с тем на какой стороне происходит агрегация.

Nikita
28.12.2016
17:24:06
думал тут про tableau еще.. подумалось, что можно же еще написать fdw для постгреса, через какой-нибудь multicorn. правда как я понял multicorn пока не поддерживает aggregation pushdown, но это можно обойти с помощью созданием разных таблиц под разные запросы. зато условия в where будут работать честно и в tableau будут приезжать не все данные, а только нужные
mutlicorn это что бы fdw пистаь на питоне. ну по простому же

Roman
28.12.2016
17:25:19
"Перезжаем на Yandex.ClickHouse" https://www.youtube.com/watch?v=tf38TPvwjJ4 / Если кто еще не видел, презентация Alexander Zaitsev с HighLoad'2016 про замену Вертики на КХ в компании LifeStreet Media, в которой работает Александр. #video #Y2016

Google

Nikita
28.12.2016
17:31:04
в постгресе ты можешь создать табличку, к который запросы будут идти через экстеншн (ну совсем по простому), multicorn это экстеншн на си, который позволяет писать экстеншены на питоне. ты описываешь какую-то табличку со всеми полями которые должны быть в результате, делаешь select field from tbl, тебе в питон обработчик приходит запрос, мол дай такие-то колонки с таким-то условием (ну после where), на основании этого ты идешь в CH, делаешь там какой угодно запрос и возвращаешь нужные колонки. group by как я понимаю в multicorn нет, но на разные колонки можно создать разные таблицы


Roman
28.12.2016
17:32:39
в постгресе ты можешь создать табличку, к который запросы будут идти через экстеншн (ну совсем по простому), multicorn это экстеншн на си, который позволяет писать экстеншены на питоне. ты описываешь какую-то табличку со всеми полями которые должны быть в результате, делаешь select field from tbl, тебе в питон обработчик приходит запрос, мол дай такие-то колонки с таким-то условием (ну после where), на основании этого ты идешь в CH, делаешь там какой угодно запрос и возвращаешь нужные колонки. group by как я понимаю в multicorn нет, но на разные колонки можно создать разные таблицы
Лексер и парсер чьи в этом случае? PG разбирает запрос, но реализацию каждой команды и функции SQL нужно самому писать?


Nikita
28.12.2016
17:34:04
я не настоящий сварщик, multicorn никогда не использовал. но у меня в голове я вижу это так, тебе в питон придет название таблицы, колонки которые спрашиваешь, и как сортировать. в зависимости от названия таблицы ты поставляешь нужны запрос с нужными колонками и нужным order by.

Roman
28.12.2016
17:34:47

Nikita
28.12.2016
17:35:05
да. но сам запрос который уходит в CH уже геенрится на основании названия таблицы

Roman
28.12.2016
17:35:13
Кто делает join'ы и groupby'и? PG?

Nikita
28.12.2016
17:35:17
т.е. это как вьюха получается

Roman
28.12.2016
17:35:26
Или экстеншен это должен делать?

Nikita
28.12.2016
17:35:45
тебе придется описать каждый вариант group by разной таблицей :)

Roman
28.12.2016
17:36:26
Понятно.
Скучно :)

Nikita
28.12.2016
17:37:05
ну лучше чем csv :) по-моему или 10, или 9.6 постгрес умеют и join push down и всякое такое. но писать экстеншн уже надо будет на сях
mongodb, простите меня, делаала что-то подобное в своем коннектере для bi

Igor
28.12.2016
17:38:22
ну это же только для платной версии prof сработает ?

Nikita
28.12.2016
17:38:40
да, personal версия там какая-то совсем не о чем если честно

Igor
28.12.2016
17:42:06
я думаю потенциал CH только руками раскрыть можно) bi только примитивные вещи сможет
как я понимаю это Аналитик Яндекса писал
https://nbviewer.jupyter.org/github/miptgirl/attribution_modelling/blob/master/220volt_case.ipynb#Модели-аттрибуции
Вопрос: такие "вещи" sql сразу в питоне пишутся внутри яндекса? т.е есть ли тулл для автокомплитов и подсказок ?

Nikita
28.12.2016
17:53:51
какая-то крутая ссылка. откуда она? :)

Igor
28.12.2016
17:55:16
С конференции Imetrics

Alexandra
28.12.2016
18:01:36
Это мы показывали в рамках мастер-класса по использованию нового Logs API и ClickHouse

Mariya
28.12.2016
18:17:30
Как автор notebook'a, отвечу :) Чаще всего аналитики пишут sql запросы прямо в python'e (обычно в jupyter'e) без подсказок и автокомплитов