Microsoft Analysis Services и Java

newyorker
Уже с Приветом
Posts: 292
Joined: 09 Aug 2007 21:20
Location: new york

Microsoft Analysis Services и Java

Post by newyorker »

У кого то есть опыт работы с Microsoft Analysis Services через java? Нашел библиотеку olap4j. Но как то оно подозрительно выглядит, год не обновлялась. И больше никаких решений нет?
newyorker
Уже с Приветом
Posts: 292
Joined: 09 Aug 2007 21:20
Location: new york

Re: Microsoft Analysis Services и Java

Post by newyorker »

ping
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Microsoft Analysis Services и Java

Post by Alexandr »

понимаете, извращенцев крайне мало, поэтому и пингуется вопрос плохо :)
Пробуйте, что получилось нарыть на жабе, если толкового ничего не получится, легче прокладку Жаба-НЕТную написать, чем копаться
newyorker
Уже с Приветом
Posts: 292
Joined: 09 Aug 2007 21:20
Location: new york

Re: Microsoft Analysis Services и Java

Post by newyorker »

А можно подробно про прокладку? Спасибо!
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Microsoft Analysis Services и Java

Post by Alexandr »

newyorker wrote:А можно подробно про прокладку? Спасибо!
Это я к тому, что если "драйвер" для доступа к mssql ограниченный и что-то что нужно не умеет, то можно сделать прокладку на .NET и ее уже из Java юзать
Andrey Strelnikov
Уже с Приветом
Posts: 607
Joined: 17 Dec 2009 11:27

Re: Microsoft Analysis Services и Java

Post by Andrey Strelnikov »

а что нужно от этого компонента? данные он вроде получает как xmla. Дальше парсит и выливает в каком-то виде. Если это он умеет без ошибок то и дальнейшего развития от него ждать смысла нет.
Andriy777
Уже с Приветом
Posts: 1486
Joined: 28 Jan 2002 10:01

Re: Microsoft Analysis Services и Java

Post by Andriy777 »

Это 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) и это может быть трудно для непростых случаев.
newyorker
Уже с Приветом
Posts: 292
Joined: 09 Aug 2007 21:20
Location: new york

Re: Microsoft Analysis Services и Java

Post by newyorker »

Вобщем первую часть задачи - выполнение MDX запросов и получение результатов в джаву olap4j решает.
Нужно теперь научится создавать из джавы кубы и наполнять их данными.
Andrey Strelnikov
Уже с Приветом
Posts: 607
Joined: 17 Dec 2009 11:27

Re: Microsoft Analysis Services и Java

Post by Andrey Strelnikov »

newyorker wrote: Нужно теперь научится создавать из джавы кубы и наполнять их данными.
А зачем?
Делать кубы на SSAS и наполнять их умеет Visual Studio. Других инструментов никто не использует.
Вы собираетесь полностью повторить ее функционал?
newyorker
Уже с Приветом
Posts: 292
Joined: 09 Aug 2007 21:20
Location: new york

Re: Microsoft Analysis Services и Java

Post by newyorker »

Часть функционала проекта - это наполнение mongoDB данными из неких источников и потом потроение на основе этих данных кубов. Проект пришется на Java.
Andrey Strelnikov
Уже с Приветом
Posts: 607
Joined: 17 Dec 2009 11:27

Re: Microsoft Analysis Services и Java

Post by Andrey Strelnikov »

И интерфейс создания кубов будете повторять?
Microsoft Analysis Services выбрали чтобы пользователи из экселя работали с данными?
Может стоит в сторону Pentaho посмотреть?
newyorker
Уже с Приветом
Posts: 292
Joined: 09 Aug 2007 21:20
Location: new york

Re: Microsoft Analysis Services и Java

Post by newyorker »

Andrey Strelnikov wrote:Microsoft Analysis Services выбрали чтобы пользователи из экселя работали с данными?
Может стоит в сторону Pentaho посмотреть?
У компании есть решение для показа клиентам аналитики из кубов. Нужно только их наполнить :)
Andrey Strelnikov
Уже с Приветом
Posts: 607
Joined: 17 Dec 2009 11:27

Re: Microsoft Analysis Services и Java

Post by Andrey Strelnikov »

ну так и постройте куб один раз в Visual Studio. Сделайте обычный SSIS пакет для получения данных из mongoDB через текстовые файлы и тп. И разместите его на том же виндовом сервере. А процесинг может дергать из java-приложения посылкой xmla команды - раз уж так хочется на java. Хотя это все можно и так делать джобами.
newyorker
Уже с Приветом
Posts: 292
Joined: 09 Aug 2007 21:20
Location: new york

Re: Microsoft Analysis Services и Java

Post by newyorker »

Куб нужно для каждого нового НАШЕГО клинта оздавать заново. под его конкретные нуждны.
Workflow такой. Есть новый клиент. Указываем правила трансформации, dimentions, etc. Вкачиваем данные в MONGO, затем строим куб.
Клинтов много и часто.
Andrey Strelnikov
Уже с Приветом
Posts: 607
Joined: 17 Dec 2009 11:27

Re: Microsoft Analysis Services и Java

Post by Andrey Strelnikov »

Java клиент ---> WCF обертка для работы с ADOMD.NET на сервере ---> SSAS
newyorker
Уже с Приветом
Posts: 292
Joined: 09 Aug 2007 21:20
Location: new york

Re: Microsoft Analysis Services и Java

Post by newyorker »

Andrey Strelnikov wrote:Java клиент ---> WCF обертка для работы с ADOMD.NET на сервере ---> SSAS
Те например при помощи mdx куб не создать?
Andrey Strelnikov
Уже с Приветом
Posts: 607
Joined: 17 Dec 2009 11:27

Re: Microsoft Analysis Services и Java

Post by Andrey Strelnikov »

newyorker wrote:
Andrey Strelnikov wrote:Java клиент ---> WCF обертка для работы с ADOMD.NET на сервере ---> SSAS
Те например при помощи mdx куб не создать?
ну в моем понимании mdx это select и функции... Я создавал всегда штатными средствами куб.

Покапайтесь в mondrian. Может там есть какие-то библиотеки для генерации XMLA скриптов. По идее вам нужно сгенерить такой скрипт, положить на сервер SSAS. Там запустить. Можно по расписанию запускать автоматом. Те через 15 минут джоб ходит и смотрит папку со скриптами.
Andriy777
Уже с Приветом
Posts: 1486
Joined: 28 Jan 2002 10:01

Re: Microsoft Analysis Services и Java

Post by Andriy777 »

Куб можно создать и заполнять (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.
Andriy777
Уже с Приветом
Posts: 1486
Joined: 28 Jan 2002 10:01

Re: Microsoft Analysis Services и Java

Post by Andriy777 »

Еще... А почему именно куб? Описанная ситуация - множество пользователей, у каждого - свое отображаемое в уникальный куб (или базу данных). 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-ами, как описал выше, и модели просты, то может не все так страшно.
newyorker
Уже с Приветом
Posts: 292
Joined: 09 Aug 2007 21:20
Location: new york

Re: Microsoft Analysis Services и Java

Post by newyorker »

Andriy777 wrote:Куб можно создать и заполнять (Process) с любого клиента (с правами администратора для создания). Нет необходимости решать это через jobs на сервере.

Все что нужно - XMLA скрипт. Его послать. А это просто текст. И его нужно правильно сформировать (написать алгоритм).
Как создать XMLA скрипт более не менее понятно. Осталнось только выяснить, возможно ли его ыполнить при помощи olap4j. В документации и в примерах там только про MDX запросы есть.
newyorker
Уже с Приветом
Posts: 292
Joined: 09 Aug 2007 21:20
Location: new york

Re: Microsoft Analysis Services и Java

Post by newyorker »

Более не мене понятно, что XMLA script из Java напрямую не выполнить. Нужно какой то сервис на .net которому из java передется текст скрипта ,а тот его исполняет. Я в .net абсолютный чайник, подскажите пожалуйста куда копать.
Спасибо!

Return to “Вопросы и новости IT”