Quantcast
Channel: SQL.ru: OLAP и DWH
Viewing all 1167 articles
Browse latest View live

Что необходимо доустановить в Visual Studio 2015 Ent для работы со старыми OLAP-проектами

$
0
0
Добрый день!
Необходимо в VS 2015 открыть проект OLAP-куба, созданного в VS 2005.
При попытке открытия студия сообщает:
Не поддерживается
В этой версии Visual Studio невозможно открыть следующие проекты. Возможно, типы проектов не установлены или данная версия Visual Studio не поддерживает их.
Дополнительные сведения о включении поддержки этих типов проектов или о переносе ваших активов иным образом см. сведения в "Отчете о переносе", который отображается после нажатия кнопки "ОК".
- Move, "C:\Work\Move\Move\Move.dwproj"


Изменения не требуются.
Эти проекты можно без внесения изменений открыть в Visual Studio 2015, Visual Studio 2013, Visual Studio 2012 и Visual Studio 2010 с пакетом обновления 1 (SP1).
- Move, "C:\Work\Move\Move.sln"



Похоже, что в студии что-то недоустановлено. Подскажите, что именно?

BI Publisher 11g XSLT

$
0
0
Добрый день

Сделал работающий вариант XSLT макета , который преобразует в XML Workbook
1. Что удивительно, он вполне приемлемо работает в XML SPY < 2 минут на фиксированом периоде отчета. (экспортировал данные из паблишера и скармливал XML SPY)
Но на сервере работает в разы дольше, на этом же периоде ~10 минут. С чем это может быть связано? Как можно ускорить?
Я конечно понимаю, что я не слишком оптимально нарисовал xslt. Но так ведь не может быть, что могучий сервер обрабатывает xslt на этих же данных в разы медленнее.
Возможно есть какие то опции на самом сервере, которые позволяют ускорить выгрузку

2. BI 11G отчет стал выбрасывать текст , после применения XSLT . На другом сервере с браузером IE поток XML прекрасно понимался как "родной" Excel. Перенес отчет на другой сервер и получил гору текстовых данных которые можно экспортировать.. но как то не красивенько. Что то можно с этим сделать?

Книги на русском по DWH

$
0
0
Посоветуйте книги на русском языке по построению хранилищ
Очень желательно не древние, года от 2012+
Желательно также с использованием средств Microsoft, но это не обязательно.

Документирование проектов SSAS

$
0
0
Поделитесь информацией кто и как делает. Можно ли как то выгрузить метаданные в табличный вид или еще как то, что бы потом было удобно и понятно разобраться?
В sap bo есть возможность выгрузить описание юниверсов, нужно что то подобное.

Настройка сервера SSAS

$
0
0
Всем привет.

Есть отдельный сервер под SSAS.
Дисковая подсистема очень слабенькая, а ОЗУ 128Гб.

При процессинге узким местом является создание множества мелких файлов в TEMPDB.

Нашел хорошие статьи
http://www.dvbi.ru/articles/readingroom/tabid/99/ArticleId/61/language/ru-RU/Default.aspx
http://www.sql.ru/articles/mssql/2007/01310sqlserver2000analysisservicesoperationsguide.shtml

хочу попробовать поиграть с настройками
  • Process Buffer Size
  • Read Ahead Buffer Size

    Проблема заключается в том, что не могу найти где это настраивается.
    Пожалуйста помогите.

    SSAS 2014
  • Логика расчета

    $
    0
    0
    Здравствуйте!

    Есть 4 варианта вычисляемых мер в MDX-запросе.
    +
    WITH
    SET [Анализируемый месяц] AS [Время].[Месяц].&[2016-12-01T00:00:00] 
    
    MEMBER [Measures].[Вычисляемая мера Вариант1] AS	
    	    SUM([Анализируемый месяц],
    	    	    [Measures].[Мера1]) * 
    	    SUM([Анализируемый месяц].Item(0).Lag(1),
    		    [Measures].[Мера2] / [Measures].[Мера1])	
    
    MEMBER [Measures].[Вычисляемая мера Вариант2] AS	
    	    SUM([Анализируемый месяц],
    	 	    [Measures].[Мера1]) * 
    	    SUM([Анализируемый месяц].Item(0).Lag(1),
    		    [Measures].[Мера2]) /
    	    SUM([Анализируемый месяц].Item(0).Lag(1),
    		    [Measures].[Мера1])
    
    MEMBER [Measures].[Вычисляемая мера Вариант3] AS
    	(CASE WHEN SUM([Анализируемый месяц].Item(0).Lag(1),[Measures].[Мера1])<>0  THEN
    	    SUM([Анализируемый месяц],
    	    	    [Measures].[Мера1]) * 
    	    SUM([Анализируемый месяц].Item(0).Lag(1),
    		    [Measures].[Мера2] / [Measures].[Мера1])
    	END)
    
    MEMBER [Measures].[Вычисляемая мера Вариант4] AS
    	(CASE WHEN SUM([Анализируемый месяц].Item(0).Lag(1),[Measures].[Мера1])<>0  THEN
    	    SUM([Анализируемый месяц],
    	 	    [Measures].[Мера1]) * 
    	    SUM([Анализируемый месяц].Item(0).Lag(1),
    		    [Measures].[Мера2]) /
    	    SUM([Анализируемый месяц].Item(0).Lag(1),
    		    [Measures].[Мера1])
           END)
    
    SELECT
    	{[Measures].[Вычисляемая мера Вариант1],
    	[Measures].[Вычисляемая мера Вариант2],
    	[Measures].[Вычисляемая мера Вариант3],
    	[Measures].[Вычисляемая мера Вариант4]} ON 0,
    NON EMPTY
    	[SKU].[SKU].[SKU] ON 1
    FROM
    	(SELECT [Время].[Месяц].&[2016-11-01T00:00:00]: [Время].[Месяц].&[2016-12-01T00:00:00] on 0 FROM Profit)
    

    Выдает такой результат:
    SKUВычисляемая мера Вариант1Вычисляемая мера Вариант2Вычисляемая мера Вариант3Вычисляемая мера Вариант4
    SKU1500.22500.22457889500.22457889500.22457889
    SKU2600.94600.9441800486600.9441800486600.9441800486


    1. Корректно считать, что следующие записи из варианта 1 и 2 равносильны?
    SUM([Анализируемый месяц].Item(0).Lag(1), [Measures].[Мера2] / [Measures].[Мера1])	
    и
    SUM([Анализируемый месяц].Item(0).Lag(1), [Measures].[Мера2]) / SUM([Анализируемый месяц].Item(0).Lag(1),  [Measures].[Мера1])
    
    И почему в первом варианте в результате короткая дробная часть?


    2. Обратите внимание в 3 и 4 варианте, когда добавили проверочное условие,то в результате присутствуют только длинные дробные части. Не как вариант 1 и 2. Почему так?


    3. Если запись в субкубе
    [Время].[Месяц].&[2016-11-01T00:00:00]:[Время].[Месяц].&[2016-12-01T00:00:00]
    
    заменить на
    [Время].[Месяц].&[2016-12-01T00:00:00]
    
    , то результат тот же самый. Если в субкубе я задал декабрь 2016, то MDX в кубе все равно вытягивает предыдущий месяц и не показывает ошибку. Почему так?

    Continuous integration в ХД - кто как делает?

    $
    0
    0
    Всем доброго времени суток.

    Стоит задача сделать continuous integration для BI проекта. У заказчика есть все - и SQL Server, и SSAS, и отдельно другие СУБД, и Hadoop, и Informatica.... чего только нет.

    То есть, надо чтобы разработчики делали коммит, в коммите включали пачку изменений (альтеры баз данных, скрипты для перезаполнения таблиц, включали сами пакеты, bash файлы и т.д. - все, что они проделали, и это все вначале деплоилось на QA, прогонялась пачка тестов, если вдруг зафейлился апдейт одного чего-то - должен идти rollback всего (вот это самая большая загвоздка - КАК?), и т.д.

    Вопрос: кто решал подобные задачи? Может кто-то статьи видел на эту тему?

    Буду благодарен за ЛЮБУЮ информацию на эту тему.

    SmartView

    $
    0
    0
    Добрый день! Пыталась соединить Oracle BI EE c Excel с помощью SmartView. Возникла ошибка (скрин ниже). Полезла в логи, выдает

    ####<Mar 7, 2017 11:49:49 AM NOVT> <Info> <Health> <deve> <AdminServer> <weblogic.GCMonitor> <<anonymous>> <> <9b5a0998d83a2600:-4a314da0:1598ba7adf6:-8000-0000000000000027> <1488862189519> <BEA-310002> <22% of the total memory in the server is free> 
    ####<Mar 7, 2017 11:49:50 AM NOVT> <Error> <HTTP> <deve> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <9b5a0998d83a2600:-4a314da0:1598ba7adf6:-8000-000000000008cb06> <1488862190936> <BEA-101017> <[ServletContext@42382749[app:jbips module:analytics/jbips path:/analytics/jbips spec-version:2.5 version:11.1.1]] Root cause of ServletException.
    javax.servlet.ServletException: Client version is not supported
    at oracle.bi.nanserver.fwk.servlet.as.BIRemotingServlet.handleRequest(BIRemotingServlet.java:79)
    at oracle.bi.nanserver.fwk.servlet.BIServlet.doGet(BIServlet.java:78)
    at oracle.bi.nanserver.fwk.servlet.BIServlet.doPost(BIServlet.java:106)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.bi.nanserver.fwk.servlet.cs.BICSServletFilter.doFilter(BICSServletFilter.java:62)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
    at java.security.AccessController.doPrivileged(Native Method)
    at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:324)
    at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:460)
    at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
    at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
    at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:163)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)

    Кто-нибудь знает, почему клиентская версия может не поддерживаться? Может какие-то модули нужно доставить?

    Oracle BIEE - Выгрузка отчета на диск без его открытия.

    $
    0
    0
    Добрый день.

    Ребята, направьте на путь истинный пожалуйста.
    У меня есть "самостоятельные" пользователи, которые настоятельно хотят выгружать "матрасы" сырых данных, для их последующей собственной обработки.
    Как сделать в Oracle BI, чтобы запрос по ссылке или нажатию кнопки, выполнялся и сразу выгружался в csv формате на локальный диск пользователя, без его визуального отражения?

    Разный результат вычисляемой меры

    $
    0
    0
    При запросе к кубу вида
    with
    MEMBER
    ...
    select
    ...
    Имеем одни данные.

    Если же у нас мера сохранена в кубе (код меры тот же)
    CREATE MEMBER CURRENTCUBE

    select
    ...

    Тот же запрос возвращает другие данные

    С чем связано такое поведение?

    вычисляемая мера

    $
    0
    0
    Доброго

    Мера "Счета" (SumValue) привязаны к измерениям "Дата создание" (DateCreate), "Оплатить до"(DateToPay).
    Хочу получить новую меру 'Сумма счетов к оплате' (SumToPay).
    Хотел сделать через NULL-меру:

         SCOPE ([Measures].[SumToPay], [DateCreate].[Dt].[Dt]);            
        this =
         SUM({NULL
           :StrToMember("[DateToPay].[Dt].&["+ Format(cdate([DateCreate].[Dt].CurrentMember.PROPERTIES("Member_Value")), "yyyy-MM-dd")+"]"
        )    
        }
                ,[Measures].[SumValue]);           
        END SCOPE; 
    


    Суммы не сходятся. Сделал через "настоящию" меру.
    Подскажите, как надо было делать через вычисляемую.
    Спасибо.

    Как учесть зависимость связей элементов Dimension Hierarchie от времени?

    $
    0
    0
    Добрый день всем!
    Прошу помочь чайнику разъяснением по архитектурному вопросу Oracle OLAP Option.
    Опыт работы с OLAP: ~ 0, инструментарий: Olacle AWM, OLAP Option: Olacle 11R2.

    Пример для формулировки вопроса:
    Имеются измерительные приборы. Имеются объекты (дома). См. картинку.
    В OLTP:
    Измерительный прибор (ID=1) устанавливают на объект (ID=100) и с момента установки (Дата 1) до момента демонтажа (Дата 2) прибор поставляет данные в OLTP.
    Потом этот же прибор (ID=1) устанавливают на другой объект (ID=200) и с момента установки (Дата 3) по настоящее время прибор опять поставляет данные в OLTP.
    Данные с Прибора это: ID прибора, Время измерения (Oracle Date) и Измеренное значение (Number).
    Время измерения строго квантовано: 1 раз в час в 00 минут 00 секунд.

    Что хочу от OLAP (одна из задач!):
    - Агрегацию измеренных значений на уровне Объектов с учетом интервалов привязки Приборов к Объектам

    Вопрос:
    - Как следует учитывать временнЫе интервалы в иерархических связях значений dimension levels?:
    a. для получения желаемого результата при агрегации с меньшими затратами на вычисления
    b. для снижения затрат на вычисления при загрузке новых данных в куб

    Что сделал в Oracle AWM:
    1. Создал AW
    2. Создал dimensions для приборов и объектов
    3. НЕ создал иерархию [Объект -> Прибор] , т.к. не понимаю как правильно учитывать зависимость связей её элементов от времени.

    Помогите с запросом

    $
    0
    0
    Помогите с запросом, есть 2 таблицы данных с суммами продаж - в таблице pred - предварительные данные за вчерашний день, в osn - абсолютно корректные данные о продажах за всё время (от начала времён :))
    Данные в осн таблице могут обновляться с опазданием по тех причинам. Нужно создать такой запрос, если open_dt (дата открытия дог-ра) в осн таблице есть за вчер день, взять всё данные с начала мес оттуда, если позавчера, то всё из основной, а вчерашний день - из предварительной

    Как вывести свойства в MDX запросе

    $
    0
    0
    Добрый день
    Есть запрос:

    SELECT
    NON EMPTY { [Measures].[Measure - Sales - Product Quantity]} ON COLUMNS,
    NON EMPTY { ([dimDate].[Hierarchy - Callendar YQMD].[Attribute - Month].ALLMEMBERS
    * [dimMaterial].[Attribute- Material - Material Code SAP].[Attribute- Material - Material Code SAP]) }
    DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS
    FROM [UNIVERSE]
    WHERE [dimCustomer].[Attribute - Client - Client Code].&[0012970554]

    Мне нужно возвращать не только Attribute- Material - Material Code SAP в строках,но и одно из его свойств
    [dimMaterial].[Attribute- Material - Material Code SAP].[Attribute- Material - Material Code SAP].Properties( "Attribute- Material - Description" )

    Подскажите пожалуйста , как это сделать.

    Oracle OLAP 12. Ускорение загрузки.

    $
    0
    0
    Привет!

    Куб Oracle OLAP 12.2. Пять размерностей, включая дату начиная с 2015. Партицирование по году. Одно измерение. Загружено около 200 млн. записей. Ежедневно подгружаются около 2 млн. записей за последние десять дней. При запуске maintain Analytic WorkSpace записи за последние десять дней грузятся быстро, но шаг SOLVE в AWM 12.2.0.1 за предыдущие года выполняется очень долго, хотя данные для обработки только за последние 10 дней.

    Как ускорить загрузку данных?

    Спасибо.
    Сергей.

    SAS INFILE: зачитается только первая строка текствого файла

    $
    0
    0
    вопрос: как сделать так, чтобы кроме первой зачитывались и остальные?
    заранее спасибо

    SSAS - LastChild и/или LastNonEmpty пропускает данные в календаре

    $
    0
    0
    есть меры LastChild (aka Last Value) и/или LastNonEmpty (aka Last non-empty Value) например для данных раз в неделю (любой день недели, к примеру по вторникам)

    связь группы мер с измерением времени - по дням (измерение времени полное, т.е. весь год 365 дней, а не 52 даты только вторников) - измерение настроено (как время и атрибут дата как календарная)

    можно-ли как заставить меры LastChild/LastNonEmpty показывать данные не только по вторникам, а по всем дням календаря? т.е. продолжать предыдущее значение до тех пор пока в фактах не появится следующее (по всем дням недели до след. вторника)
    сейчас почему-то пропускает дни за которые нет данных - хотя измерение календаря полное и данные для других групп мер за другие даты показываются..

    или только если SQL запросом дублировать данные на каждый день (или ETL) до SSAS запроса (материализовав и увеличив размеры партиций и время на их сканирование и process), или МDX скриптом распределять на ходу (увеличив время выполнения запроса пользователем)?

    Перестал работать клиент Excel, потерял доступ к кубу

    $
    0
    0
    Добрый день.
    Переехали в новый офис, некоторые сервера поменяли IP
    Еще вчера (в новом офисе) я мог обновить данные из куба в Excel, сегодня выдается ошибка, см. вложение.
    SQL Server 2005, 2 инстанса, один по умочанию, второй именованный. Excel подключается к именованному.
    Служба SQL Server Analysis Services (Именованный) - запущена
    Служба SQL Server Browser - запущена
    запущены под пользователем, имеющим админские права на сервере.
    остальные службы запущены.
    ОС сервера Windows Server 2008 R2 Enterprise SP1
    При попытке обновления кубика в Excel выдается ошибка
    "Ошибки поставщика OLE DB. Невозможно соединится с перенаправителем. Проверте, запущена ли служба SQL Server Browser на сервере "name_server"

    Microsoft SQL Server 2005 Analysis Services 9.0 OLE DB Provider - на локальном компьютере установлен.
    Что еще может случится?
    Может что-нибудь про порты или брандмауер?
    Заранее спасибо, Николай.

    OBIEE 12c + OHS

    $
    0
    0
    Всем привет.

    У кого-нибудь есть мануал об установке этой связки?
    Одна из задач размещение - статических файлов.
    Или есть альтернативы?

    Рецепт деплоя при автопартицировании

    $
    0
    0
    SSAS 2016.

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

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

    Кто нибудь знает более цивилизованные решения?

    Я слышал что люди используют отдельные сервера для процессинга кубов, и отдельные сервера для пользователей.
    Viewing all 1167 articles
    Browse latest View live