Microsoft Analysis Services и Java
-
- Уже с Приветом
- Posts: 292
- Joined: 09 Aug 2007 21:20
- Location: new york
Microsoft Analysis Services и Java
У кого то есть опыт работы с Microsoft Analysis Services через java? Нашел библиотеку olap4j. Но как то оно подозрительно выглядит, год не обновлялась. И больше никаких решений нет?
-
- Уже с Приветом
- Posts: 292
- Joined: 09 Aug 2007 21:20
- Location: new york
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Microsoft Analysis Services и Java
понимаете, извращенцев крайне мало, поэтому и пингуется вопрос плохо
Пробуйте, что получилось нарыть на жабе, если толкового ничего не получится, легче прокладку Жаба-НЕТную написать, чем копаться
Пробуйте, что получилось нарыть на жабе, если толкового ничего не получится, легче прокладку Жаба-НЕТную написать, чем копаться
-
- Уже с Приветом
- Posts: 292
- Joined: 09 Aug 2007 21:20
- Location: new york
Re: Microsoft Analysis Services и Java
А можно подробно про прокладку? Спасибо!
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Microsoft Analysis Services и Java
Это я к тому, что если "драйвер" для доступа к mssql ограниченный и что-то что нужно не умеет, то можно сделать прокладку на .NET и ее уже из Java юзатьnewyorker wrote:А можно подробно про прокладку? Спасибо!
-
- Уже с Приветом
- Posts: 607
- Joined: 17 Dec 2009 11:27
Re: Microsoft Analysis Services и Java
а что нужно от этого компонента? данные он вроде получает как xmla. Дальше парсит и выливает в каком-то виде. Если это он умеет без ошибок то и дальнейшего развития от него ждать смысла нет.
-
- Уже с Приветом
- Posts: 1486
- Joined: 28 Jan 2002 10:01
Re: Microsoft Analysis Services и Java
Это Web Browser Client Code, который на Java будет вызывать OLAP сервер? Или это сам сервер, который гонит Java код будет вызывать OLAP сервер? Если операционка которая будет гонять Java код - Windows то можно предложить варианты.
Даже если Java не на Windows но есть возможность включить в решение какую-нибудь Windows машину, то можно обойтись без XMLA.
Пример: наверняка идет речь о нескольких (MDX/DAX) запросах. Java код на клиенте вызывает нечто на сервере. Сервер просит Windows машину выполнить запросы и предоставить результаты в удобном формате. Json/ХМL? Windows машина запросит через AdomdClient, получит CellSet, пройдет по нему легким C# кодом и сформирует Json. Java будет обрабатывать Json.
OLAP Server ваш? Значит это уже Windows машина. Можно тот переходничек MDX->Json оформить как сервис на той же самой машине. Он ничего не будет делать как перекидывать запрос и конвертировать в Ваш удобный формат.
Иначе нужно знать представление результатов запросов в XMLA, разгребать (parse) и это может быть трудно для непростых случаев.
Даже если Java не на Windows но есть возможность включить в решение какую-нибудь Windows машину, то можно обойтись без XMLA.
Пример: наверняка идет речь о нескольких (MDX/DAX) запросах. Java код на клиенте вызывает нечто на сервере. Сервер просит Windows машину выполнить запросы и предоставить результаты в удобном формате. Json/ХМL? Windows машина запросит через AdomdClient, получит CellSet, пройдет по нему легким C# кодом и сформирует Json. Java будет обрабатывать Json.
OLAP Server ваш? Значит это уже Windows машина. Можно тот переходничек MDX->Json оформить как сервис на той же самой машине. Он ничего не будет делать как перекидывать запрос и конвертировать в Ваш удобный формат.
Иначе нужно знать представление результатов запросов в XMLA, разгребать (parse) и это может быть трудно для непростых случаев.
-
- Уже с Приветом
- Posts: 292
- Joined: 09 Aug 2007 21:20
- Location: new york
Re: Microsoft Analysis Services и Java
Вобщем первую часть задачи - выполнение MDX запросов и получение результатов в джаву olap4j решает.
Нужно теперь научится создавать из джавы кубы и наполнять их данными.
Нужно теперь научится создавать из джавы кубы и наполнять их данными.
-
- Уже с Приветом
- Posts: 607
- Joined: 17 Dec 2009 11:27
Re: Microsoft Analysis Services и Java
А зачем?newyorker wrote: Нужно теперь научится создавать из джавы кубы и наполнять их данными.
Делать кубы на SSAS и наполнять их умеет Visual Studio. Других инструментов никто не использует.
Вы собираетесь полностью повторить ее функционал?
-
- Уже с Приветом
- Posts: 292
- Joined: 09 Aug 2007 21:20
- Location: new york
Re: Microsoft Analysis Services и Java
Часть функционала проекта - это наполнение mongoDB данными из неких источников и потом потроение на основе этих данных кубов. Проект пришется на Java.
-
- Уже с Приветом
- Posts: 607
- Joined: 17 Dec 2009 11:27
Re: Microsoft Analysis Services и Java
И интерфейс создания кубов будете повторять?
Microsoft Analysis Services выбрали чтобы пользователи из экселя работали с данными?
Может стоит в сторону Pentaho посмотреть?
Microsoft Analysis Services выбрали чтобы пользователи из экселя работали с данными?
Может стоит в сторону Pentaho посмотреть?
-
- Уже с Приветом
- Posts: 292
- Joined: 09 Aug 2007 21:20
- Location: new york
Re: Microsoft Analysis Services и Java
У компании есть решение для показа клиентам аналитики из кубов. Нужно только их наполнитьAndrey Strelnikov wrote:Microsoft Analysis Services выбрали чтобы пользователи из экселя работали с данными?
Может стоит в сторону Pentaho посмотреть?
-
- Уже с Приветом
- Posts: 607
- Joined: 17 Dec 2009 11:27
Re: Microsoft Analysis Services и Java
ну так и постройте куб один раз в Visual Studio. Сделайте обычный SSIS пакет для получения данных из mongoDB через текстовые файлы и тп. И разместите его на том же виндовом сервере. А процесинг может дергать из java-приложения посылкой xmla команды - раз уж так хочется на java. Хотя это все можно и так делать джобами.
-
- Уже с Приветом
- Posts: 292
- Joined: 09 Aug 2007 21:20
- Location: new york
Re: Microsoft Analysis Services и Java
Куб нужно для каждого нового НАШЕГО клинта оздавать заново. под его конкретные нуждны.
Workflow такой. Есть новый клиент. Указываем правила трансформации, dimentions, etc. Вкачиваем данные в MONGO, затем строим куб.
Клинтов много и часто.
Workflow такой. Есть новый клиент. Указываем правила трансформации, dimentions, etc. Вкачиваем данные в MONGO, затем строим куб.
Клинтов много и часто.
-
- Уже с Приветом
- Posts: 607
- Joined: 17 Dec 2009 11:27
Re: Microsoft Analysis Services и Java
Java клиент ---> WCF обертка для работы с ADOMD.NET на сервере ---> SSAS
-
- Уже с Приветом
- Posts: 292
- Joined: 09 Aug 2007 21:20
- Location: new york
Re: Microsoft Analysis Services и Java
Те например при помощи mdx куб не создать?Andrey Strelnikov wrote:Java клиент ---> WCF обертка для работы с ADOMD.NET на сервере ---> SSAS
-
- Уже с Приветом
- Posts: 607
- Joined: 17 Dec 2009 11:27
Re: Microsoft Analysis Services и Java
ну в моем понимании mdx это select и функции... Я создавал всегда штатными средствами куб.newyorker wrote:Те например при помощи mdx куб не создать?Andrey Strelnikov wrote:Java клиент ---> WCF обертка для работы с ADOMD.NET на сервере ---> SSAS
Покапайтесь в mondrian. Может там есть какие-то библиотеки для генерации XMLA скриптов. По идее вам нужно сгенерить такой скрипт, положить на сервер SSAS. Там запустить. Можно по расписанию запускать автоматом. Те через 15 минут джоб ходит и смотрит папку со скриптами.
-
- Уже с Приветом
- Posts: 1486
- Joined: 28 Jan 2002 10:01
Re: Microsoft Analysis Services и Java
Куб можно создать и заполнять (Process) с любого клиента (с правами администратора для создания). Нет необходимости решать это через jobs на сервере.
Все что нужно - XMLA скрипт. Его послать. А это просто текст. И его нужно правильно сформировать (написать алгоритм).
Чтобы понять как правильно, можно на Visual Studio менять что-нибудь, а потом из SQL Server Management Studio скриптовать объекты. Выделяете в Object Explorer базу данных, контекст меню, Script to Window. Получаете XMLA. Таким образом можно windiff 2 состояния - до экпериментальных изменений из Visual Studio и после.
Так Вы поймете как описать на XMLA - Database, Data Source, Data Source View, Dimension, Attribute, Cube Measure Group Dimension.
Когда придут знания (для простых кубов много не надо), можно написать свою объектную модель на Java, или еще чем, которая будет формировать XMLA/A.
Ну а если включить в решение программирование на C# и вызывать ее для формирования куба, то там есть Microsoft Analysis Services.dll. Она - объектная модель и будет формировать XMLA.
Все что нужно - XMLA скрипт. Его послать. А это просто текст. И его нужно правильно сформировать (написать алгоритм).
Чтобы понять как правильно, можно на Visual Studio менять что-нибудь, а потом из SQL Server Management Studio скриптовать объекты. Выделяете в Object Explorer базу данных, контекст меню, Script to Window. Получаете XMLA. Таким образом можно windiff 2 состояния - до экпериментальных изменений из Visual Studio и после.
Так Вы поймете как описать на XMLA - Database, Data Source, Data Source View, Dimension, Attribute, Cube Measure Group Dimension.
Когда придут знания (для простых кубов много не надо), можно написать свою объектную модель на Java, или еще чем, которая будет формировать XMLA/A.
Ну а если включить в решение программирование на C# и вызывать ее для формирования куба, то там есть Microsoft Analysis Services.dll. Она - объектная модель и будет формировать XMLA.
-
- Уже с Приветом
- Posts: 1486
- Joined: 28 Jan 2002 10:01
Re: Microsoft Analysis Services и Java
Еще... А почему именно куб? Описанная ситуация - множество пользователей, у каждого - свое отображаемое в уникальный куб (или базу данных). SQL данных много? Это те, которые будут наполнять кубы?
Можно рассмотреть не OLAP, a Tabular. Если у Вас SQL Server 2012 или 2014, то Analysis Services поддерживают оба вида.
Tabular - загоняет данные полностью в память в сжатом виде (по-колоночно). Скорость запросов на DAX может снести крышу, если повезет, ну или быть "все равно быстрее". Иногда может не повезти. OLAP имеет способность агрегировать факты (суммы для All, по городам, штатам ... как закажете в агрегациях и как много места на диске и как сильно диск перетруждается). Tabular использует трюки в памяти, но он всегда сканирует. Диск не трогается. Из-за column oriented store не только память помогает, но и CPU cache.
Одно "но"... Описание Tabular модели происходит при помощи старой (OLAP). То, что выглядит как набор таблиц с колонками на XMLA будет выглядеть как Куб, Dimensions, и пр. Но если поисследовать windiff-ами, как описал выше, и модели просты, то может не все так страшно.
Можно рассмотреть не OLAP, a Tabular. Если у Вас SQL Server 2012 или 2014, то Analysis Services поддерживают оба вида.
Tabular - загоняет данные полностью в память в сжатом виде (по-колоночно). Скорость запросов на DAX может снести крышу, если повезет, ну или быть "все равно быстрее". Иногда может не повезти. OLAP имеет способность агрегировать факты (суммы для All, по городам, штатам ... как закажете в агрегациях и как много места на диске и как сильно диск перетруждается). Tabular использует трюки в памяти, но он всегда сканирует. Диск не трогается. Из-за column oriented store не только память помогает, но и CPU cache.
Одно "но"... Описание Tabular модели происходит при помощи старой (OLAP). То, что выглядит как набор таблиц с колонками на XMLA будет выглядеть как Куб, Dimensions, и пр. Но если поисследовать windiff-ами, как описал выше, и модели просты, то может не все так страшно.
-
- Уже с Приветом
- Posts: 292
- Joined: 09 Aug 2007 21:20
- Location: new york
Re: Microsoft Analysis Services и Java
Как создать XMLA скрипт более не менее понятно. Осталнось только выяснить, возможно ли его ыполнить при помощи olap4j. В документации и в примерах там только про MDX запросы есть.Andriy777 wrote:Куб можно создать и заполнять (Process) с любого клиента (с правами администратора для создания). Нет необходимости решать это через jobs на сервере.
Все что нужно - XMLA скрипт. Его послать. А это просто текст. И его нужно правильно сформировать (написать алгоритм).
-
- Уже с Приветом
- Posts: 292
- Joined: 09 Aug 2007 21:20
- Location: new york
Re: Microsoft Analysis Services и Java
Более не мене понятно, что XMLA script из Java напрямую не выполнить. Нужно какой то сервис на .net которому из java передется текст скрипта ,а тот его исполняет. Я в .net абсолютный чайник, подскажите пожалуйста куда копать.
Спасибо!
Спасибо!