Работа аналитических функций и др.

532 views
Skip to first unread message

Ury

unread,
Jul 22, 2016, 8:15:27 AM7/22/16
to ClickHouse
Добрый день, уважаемые коллеги.
Большое спасибо за открытие продукта, БД действительно быстрая, как он ней и сказали

Планируется ли расширение функциональности агрегации, хотелось бы, чтобы   БД больше напоминала привычную аналитическую БД.

Начали тестировать БД, наткнулись на следующее:

Очень не хватает оператора OVER (<конструкция_фрагментации> <конструкция_упорядочения> <конструкция_окна>) после функции агрегации
Очень не хватает функций GROUPING, GROUPING_SET
Не смог найти RANK, DENCE_RANK, ROW_NUMBER и др.
Нельзя делать GROUP BY ROLUP , CUBE

При работе со словарями не понятно как: 
- Просмотреть весь словарь с использованием SQL (Хотелось бы VIEW)
- Нет функции getChildren, и пр., для удобства работы с иерархиями, уровня иерархии и пр.
- Хотелось бы при работе со словарями иметь возможность делать JOIN через VIEW  - важно для BI - систем на основе схем звезды и снежинки

Другие вопросы:
- Планируются ли поддержка MDX?
- Планируется ли поддержка древовидных запросов вида START WITH ... CONNECT BY PRIOR и пр для работы с деревьями и графами
- Просьба добавить оператор DESCRIBE FUNCTION - сейчас нет возможности увидеть сигнатуры в system.functions
- Планируется ли писать Dialect для Hibernate (ORM для Java)
- Планируется ли прикрутить R ?

Спасибо.


man...@gmail.com

unread,
Jul 22, 2016, 5:50:09 PM7/22/16
to ClickHouse
Добрый день.

Да, аналитические функции не поддерживаются.
Предварительный план такой: разработка аналитических функций возможна только после реализации более важных задач, среди которых, например, поддержка стандартного синтаксиса для JOIN.


При работе со словарями не понятно как: 
- Просмотреть весь словарь с использованием SQL (Хотелось бы VIEW)
- Нет функции getChildren, и пр., для удобства работы с иерархиями, уровня иерархии и пр.
- Хотелось бы при работе со словарями иметь возможность делать JOIN через VIEW  - важно для BI - систем на основе схем звезды и снежинки

При разработке словарей сначала было желание сделать их доступными для просмотра в виде таблиц. Не сделали из-за каких-то мелочей в реализации (например того, что смысл не очевиден для cached словарей) и потому что не сильно было нужно.
Для иерархических словарей почему-то потребность ограничилась только проверкой принадлежности (dictIsIn) и получением предков (dictGetHierarchy).



Другие вопросы:
- Планируются ли поддержка MDX?
- Планируется ли поддержка древовидных запросов вида START WITH ... CONNECT BY PRIOR и пр для работы с деревьями и графами
- Просьба добавить оператор DESCRIBE FUNCTION - сейчас нет возможности увидеть сигнатуры в system.functions
- Планируется ли писать Dialect для Hibernate (ORM для Java)
- Планируется ли прикрутить R ?

В наших внутренних планах нет почти ничего из вышеперечисленного.
Возможно, будем пытаться использовать ClickHouse совместно с Mondrian для MDX.

Ury

unread,
Jul 25, 2016, 5:15:28 AM7/25/16
to ClickHouse
Коллеги, есть ли понимание по срокам реализации функционала - в частности когда следует ожидать появление аналитических функций, синтаксиса JOIN и доработку словарей?

man...@gmail.com

unread,
Jul 25, 2016, 7:38:38 PM7/25/16
to ClickHouse
Привет.

Доработка словарей - не запланировано. Можно попробовать убедить в необходимости реализации.
Синтаксис JOIN - запланировано на этот квартал. Может быть, придётся перенести, но сильно затягивать не собираемся.
Аналитические функции - не запланировано, ещё не до этого.

понедельник, 25 июля 2016 г., 12:15:28 UTC+3 пользователь Ury написал:

Ury

unread,
Jul 26, 2016, 3:31:00 AM7/26/16
to ClickHouse

Приветствую.

По поводу справочников решил попробовать дать обоснования их доработки.

Для BI систем является необходимым создавать многомерную модель,  представленную в виде схемы “Звезда” или “Снежинка”. В данной модели имеются таблицы фактов и таблицы измерений.

Классически существуют три уровня данной модели – физический, бизнес-модели  и  маппинга, презентационный.

На физическом уровне представлены источники данных, объекты источников данных (таблицы и представления) и связи между ними (в данном случае могут быть представлены ограничения внешнего ключа).  На физическом уровне к данным от справочников не может быть предоставлен в виде реляционного объекта. Конечно, если измерение хранится в другой СУБД – например в MySQL – через источник данных к ним может быть предоставлен доступ, но при этом тога теряется смысл использования справочников –на них не получится сослаться в BI-системе.

На уровне бизнес-модели и маппинга  происходит выделение  маппинг собственно метрик (measures) и измерений (dimensions), содержащие разного  типа иерархии и уровни или отношения – родитель-подчиненный.  Кроме всего прочего измерения содержат дескриптивные атрибуты, необходимые для вывода в удобочитаемой форме. По данным атрибутам осуществляется поиск (поиск в справочнике по атрибутам). При использовании иерархий происходят в OLAP операции  Roll Up Drill Down, Projection, Adhoc, Pivot. Для ряда случаев необходимы операции  для Parent-Child отношений: getParent, getChildren и пр. Кроме всего уровни в иерархии определяют уровень агрегации  например по времени (День, Неделя, Месяц, Полугодие, Год, За весь период) и т.д. Сейчас этого сделать нельзя. Грубо говоря решен вопрос отложенной (Late) материализации данных – но BI система больше заточена на выполнения SQL JOIN-ов на базе реляционных объектов или на базе нативных многомерных систем (например ESSBASE).

На презентационном уровне происходит из общей бизнес-модели выделение витрин данных и определение доступа к ним (например, выбираются заданные измерения и меры, создаются пользователи и группы, ограничивается доступ к членам измерения (в данном случае - по атрибутам справочников – к котором нет сейчас SQL-доступа) или фактам или всем элементам многомерной модели, возможность внесения в агрегаты в OnLine-режиме).

Далее таким образом полученные витрины могут быть использованы пользователями для визуализации в виде инструментальных панелей, отчетов, географических карт, на них может быть проведен R-анализ и пр.

Сейчас очевидно справочники не могут быть полноценно использованы в BI-системах без доработки – но ведь именно они рекомендуются для использования для создания измерений.

вторник, 26 июля 2016 г., 2:38:38 UTC+3 пользователь man...@gmail.com написал:

man...@gmail.com

unread,
Jul 26, 2016, 3:47:49 PM7/26/16
to ClickHouse
Спасибо.

Доступность справочников в виде таблиц нужна - будем делать.
(Сейчас это выполнено, если источником для справочника служит таблица в ClickHouse, но не для других источников.)
У нас в планах есть интеграция с BI системами. Соответственно, тогда и будем добавлять недостающую функциональность.

Ury

unread,
Jul 27, 2016, 3:18:59 AM7/27/16
to ClickHouse
Спасибо за ответ, коллеги. 

Есть небольшой вопрос.
Потенциально на базе одной таблицы ClickHouse может быть создано несколько справочников.
Движок самостоятельно узнает, что вместо заданного хранилища таблицы (собственно таблицы) использовать справочник и выбирает один из потенциально многих?
Прозрачен ли сам выбор (если он осуществляется) для пользователя? Если таких выборов и подстановок не происходит - то о какой доступности идет речь - просто просмотреть базовую таблицу? В этом случае BI-система все равно этот объект-справочник не выберет (не увидит как объект схемы) а будет использовать базовую таблицу.


вторник, 26 июля 2016 г., 22:47:49 UTC+3 пользователь man...@gmail.com написал:

man...@gmail.com

unread,
Jul 27, 2016, 7:45:55 PM7/27/16
to ClickHouse
Согласен.

Сейчас никаких подстановок не происходит.
При JOIN с таблицей-источником для словаря, сам словарь не используется.


среда, 27 июля 2016 г., 10:18:59 UTC+3 пользователь Ury написал:
Reply all
Reply to author
Forward
0 new messages