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

Oracle BI presentation variables

$
0
0
Всем доброго времени суток,
пара вопросов по топику.
Исходные данные (максимально упростил):
Измерение "Календарь":
Year_ID (Int)(2000, 2001, ...)
YearName (Char)(2000 г., 2001 г., ...)

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

Создаю приглашение для столбца "Календарь"."Год", указываю в параметрах задать переменную SelectedYear.
Фильтр "Год равно\находится в @SelectedYear" работает.
Фильтр "Год меньше @SelectedYear" не работает, точнее, работает как "равно"!

Что я не так делаю?

Что можно сделать на практике?

$
0
0
Прочла пару книг по ХД, прослушала лекции. Немного разобралась в теории.

В резюме необходимо вписать строчку про мое непосредственное участие в проектировании или еще какой реализации ХД. Врать по суперопыт не хочу, подразумевая, что я пару раз нарисовала "снежинку", пока вникала. Вся остальная познавательная деятельность ограничивалось ответами на вопросы.

В реальный какой-то проект вписаться, понятное дело, не могу - там и практикантов-айтишников хватает. Не претендую. Но что можно сделать, чтобы эта резюмешная строчка, в итоге, была?

Не обязательно очень ценное. Маленький опыт лучше чем ничего.

SSRS 2016 Standart, native mode: Как настроить подписку (subscription)?

$
0
0
Привет!

Фигня какая-то! Нам необходимо настроить рассылку одного отчета без параметров по E-Mail.

Через SSRS Configuration Manager (Native Mode) настроили:

- E-Mail Settings
- пользователя в Execution Account
- пользователя в Subscription Settings
- в DataSource (обращается к SSAS) настроена Integrated Authentication (первая в списке)

Теперь в настройках самого отчета выбираю настройки подписки и мне говорит, что не может, т.к. не настроен пользователь для аутентификации. Ничего не понимаю! Что ему еще надо-то?

ProcessUpdate для измерения

$
0
0
Всем привет!
В моем кубе долго процесится измерение, а хотелось бы этот процесс ускорить.
Из хранилища(DWH) данные затягиваются достаточно быстро, для наших дисков, а вот построение индексов идет на порядок дольше.
Поиском нашел интересную статью
https://blog.calvett.co.uk/2013/02/21/the-anatomy-of-a-process-update-part-2/

Как я понял, автор предлагает селектить фактические таблицы, отсортированными по ключу измерения. Но как это сделать? Ведь у меня не одно измерение, а сортировка задается один раз(есть кластерный индекс)?

И еще, подскажите как посмотреть реальный размер для Index size?

Путь к кубу
Program Files\Microsoft SQL Server\MSAS11.MSSQLSERVER\OLAP\Data\OLAP.108.db
Внутри OLAP.108.db для каждого измерения своя папка и одна для всех мер

Какие файлы мне нужно проанализировать?

SSAS. Совместная работа

$
0
0
Коллеги, день добрый,
где можно почитать про совместную работу в проекте SSAS/Tabular Mode?
Проект разрабатываем на SSDT for VS 2013
Хотелось бы организовать процесс так:
- разработчик работает с моделью
- администратор выдает права пользователям.
В идеале несколько разработчиков работают с моделью.
Такой функционал существует?

Как назвать...?

$
0
0
...имеется обычный DWH (по Кимбалу но не суть), пара десятков сорсов...
звездочки, кубики, отчеты, итд.

Клиенту понадобилось срочно перевести десяток отчетов которые были
на транскционной системы (один из сорсов) с оригинального сервера на DWH сервер.
Самое быстрое решение -- скопировать часть транскционной системы в DWH
и тупо перенести отчеты сохранив все схему data-source.

Сам датасоурс будет интегрирован в DWH, но в будущем.

Вопрос: есть ли научное название части DWH котороя является
* частичной копией ODS
* сохраняет 3NF но не интегривованой (то есть не Иммон)

Подойдет ли название DWH-ODS или DWH-MIX, или лучше никак
не называть эту фигню?

Заранее спасибо.

Проблема при загрузке Excel файла как набора данных в OBIEE 12c

$
0
0
При загрузке Excel файла, как источника данных, столкнулся со следующей проблемой:
Картинка с другого сайта.

После ожидания, файл также не загружается.

Смущает количество места, выделенное для хранения источников данных:
Картинка с другого сайта.

Возможно проблема заключается в том, что при развертывании OBIEE не было выделено место под хранение таких файлов? Возможно ли увеличить это место средствами администрирования?

При попытке просмотра "Хранилища источников данных", появляется следующая ошибка:
Картинка с другого сайта.

Процессы Oracle BIEE 12.2.1.2.0 периодически падают

$
0
0
Процессы Oracle BIEE периодически падают, логируя следующую ошибку в файл bi/servers/AdminServer/logs/AdminServer.log:

Картинка с другого сайта.

[Server start command for OBIPS server 'obips1' failed due to: [Server failed to start up but Node Manager was not aware of the reason]. Please check 
Node Manager log and/or server 'obips1' log for detailed information.]. Please check Node Manager log for details

Некоторые источники (1, 2), утверждают, что это связано с файлами репозитория liverpd.* и для решения этой проблемы, эти файлы нужно удалить и загрузить репозиторий заново.

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

Может быть кто-нибудь сталкивался с подобным поведением? Есть ли альтернативные и долгосрочные способы решения?

Также, после падения, некоторые процессы не запускаются, а выдают ошибку:

*имя_упавшего_процесса* [46137] CSF error encountered. Error code: 43131.

Полагаю, что данная ошибка как-то связна с безопасностью, но как именно? Пока решение это проблемы: одно-, многократный перезапуск процесса.

SSAS stored procedure timeout

$
0
0
Добрый день, коллеги.

Не знаю как побороть следующую проблему. Есть процедура на C#, деплойнули в SSAS.

Вызываем MDX:

call SqlQuery.ExecuteProc("olap.sp_SBC_Cost", "@f_month = ....

получаем:

Query (1, 6) Execution of the managed stored procedure ExecuteProc failed with the following error: Exception has been thrown by the target of an invocation.Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.

Работает ровно 30 секунд и обрывается.

Кто подскажет куда копать? Что/где поменять, чтобы выполнялось столько, сколько выполнялось (без ограничений по времени)?

Gartner BI 2017

SSAS 2012 AttributeHierarchyEnabled

$
0
0
Всем привет.
Есть измерение, в котором я хочу ряд атрибутов сделать свойствами.

Для этого через vs2012 подключаюсь к кубу, открываю измерение и устанавливаю свойство AttributeHierarchyEnabled в False.
После чего нажимаю кнопку сохранить и получаю сообщение с ошибкой.

Измерение с Parent

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

Имеется куб от MS. В нем есть измерение "Очереди проектов", которое содержит атрибут "Портфели", которое используется как Parent, а так же отдельную иерархию, как показано на картинке 1.

При использовании данного измерения, которое отфильтровано по значению "Проект 1" иерархии "очереди проектов", в VS с измерением 1, строки по измерению 1 не отображают данных по другим проектам. Картинка 2.

При использовании такого же способа отображения в Excel, строки по измерению 1 отображаются со значениями других проектов. При этом у измерения "Очереди проектов" значения заполнены только на уровне фильтрованных значений. Картинка 3.

Почему разные способы отображения?

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

Все измерения в кубе используются с обычной связью.

Не работает фильтр в анализе Oracle BI

$
0
0
Приветствую! При создании анализа пытаюсь изменить формулу столбца, прописав условие:

FILTER(COUNT("DB"."Table_2") USING ("DB"."Region" = 'Moscow'))

Выражение обрабатывается, но не происходит фильтрации после условия USING. То есть возвращается только COUNT, а на смену региона никак не реагирует. Тоже самое с датами - какую не вбивай, все равно возвращает общий итог.

Почему второе условие не срабатывает? Хотя в мануалах, найденных в интернете, при таком условии вроде как должно быть всё Ок.

OLAP. Меры не раскладываются по всем измерениям

$
0
0
Коллеги, добрый день

Нужен совет экспертов. Аналитика нашей программы лояльности предоставляется нам внешним подрядчиком в виде кубов (смотрим через Эксель). Куб достаточно большой: почти 200 мер и еще больше измерений (куб один на несколько клиентов). При этом не все меры "раскладываются" по всем измерениям. Одни меры можно детализировать по одним измерениям, а другие меры - по другим. Таких наборов мер/измерений 5 штук. Поэтому иногда складывается ситуация, что выбрав 2 измерения, я не могу получить результат на их пересечении. Так как у каждого измерения есть "своя" мера, а общей меры часто нет.

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

Поэтому прошу совета у сообщества. Насколько корректна описанная архитектура куба? Каковы лучшие практики в данной области?


P.S. В дальнейшем планируем формальный аудит решения, поэтому высказывайте свою готовность участвовать в комментариях.

Спасибо

Миграция базы MDS 2012 на MDS 2016 SP1

$
0
0
Кто успешно мигрировал (бэкап, ресторе, апгрейд базы) ?
У кого какие проблемы есть, сообщите, плииз?

Win Server 2012 + SSAS 2012 vs Win Server 2016 + SSAS 2016

$
0
0
Есть странная ситуация.
Есть куб, примерно 30Gb, разрабатывается в SSAS под SQL Server 2012 Developer Edition и используется в SSAS SQL Server 2012 Standard Edition, ОС Win Server 2012.
Сервер под разработку не особо мощный - виртуалка, 2 ядра, 20Gb RAM.

Теперь странности. Хотим мигрировать продакшн на SQL Server Enterprise 2016. Подняли виртуалку в Amazon, ОС Win Server 2016, 4 ядра, 30Gb RAM. Разворачиваю куб, все в порядке, начинаю выполнять запросы и весь сервер будто зависает - не реагирует на нажатия кнопок мыши, например, пока запрос не выполнится. при этом, аналогичные запросы выпольняются в 5-10 раз дольше по сравнению с 2012.
Также смотрю на Task Manager - в 2012 загрузка процессора 15-30%, в 2016 - не выше 5%. Почему так?

на SQL Server 2016 поставили SP1 и CU к нему - не помогает. такое чувство что что-то ограничивает использование процессора в 2016.

Куда смотреть с админами чтобы понять причину?
Единственное что 2016 виртуалка оригинально была 8 ядер + 61 Gb RAM (r3.2xlarge), потом решили что это много и дорого и понизили до r4.xlarge - 4 ядра, 30Gb RAM. Может ли это быть причиной?

Oracle BIP XSLT

$
0
0
Добрый день
Никогда не сталкивался с применением XSLT макетов в BI Publisher
Имею такие данные:

<?xml version="1.0" encoding="UTF-8"?>
<!--Generated by Oracle BI Publisher 11.1.1.7.140715 -Dataengine, -->
<DATA_DS><P_DATE_BEGIN>2017-01-01T00:00:00.000+06:00</P_DATE_BEGIN><P_DATE_END>2017-01-01T00:00:00.000+06:00</P_DATE_END>
<G_1>
<CAMPAIGN_ID>5052</CAMPAIGN_ID>
<CAMP_NAME>Cam1</CAMP_NAME>
<G_2>
<ORD>1</ORD>
<CAMPAIGN_ID>5052</CAMPAIGN_ID>
<D_D>2017-01-01T00:00:00.000+06:00</D_D>
<D_D_CHAR>01.01.2017</D_D_CHAR>
<VAL>2</VAL>
<DIALER_STATUS_NAME>Выключен/ вне зоны доступа</DIALER_STATUS_NAME>
<CAMP_NAME>Cam1</CAMP_NAME>
</G_2>
<G_2>
<ORD>2</ORD>
<CAMPAIGN_ID>5052</CAMPAIGN_ID>
<D_D>2017-01-01T00:00:00.000+06:00</D_D>
<D_D_CHAR>01.01.2017</D_D_CHAR>
<VAL>13</VAL>
<DIALER_STATUS_NAME>Попытки звонка прерваны из за нехватки агентов</DIALER_STATUS_NAME>
<CAMP_NAME>Cam1</CAMP_NAME>
</G_2>
<G_2>
<ORD>3</ORD>
<CAMPAIGN_ID>5052</CAMPAIGN_ID>
<D_D>2017-01-01T00:00:00.000+06:00</D_D>
<CNT>4</CNT>
<D_D_CHAR>01.01.2017</D_D_CHAR>
<VAL>4</VAL>
<DIALER_STATUS_NAME>Нет ответа от сети (провайдера)</DIALER_STATUS_NAME>
<CAMP_NAME>Cam1</CAMP_NAME>
<PRC>13.33</PRC>
</G_2>
<G_2>
<ORD>4</ORD>
<CAMPAIGN_ID>5052</CAMPAIGN_ID>
<D_D>2017-01-01T00:00:00.000+06:00</D_D>
<D_D_CHAR>01.01.2017</D_D_CHAR>
<VAL>6</VAL>
<DIALER_STATUS_NAME>Нет сигнала в линии</DIALER_STATUS_NAME>
<CAMP_NAME>Cam1</CAMP_NAME>
</G_2>
<G_2>
<ORD>5</ORD>
<CAMPAIGN_ID>5052</CAMPAIGN_ID>
<D_D>2017-01-01T00:00:00.000+06:00</D_D>
<CNT>8</CNT>
<D_D_CHAR>01.01.2017</D_D_CHAR>
<VAL>8</VAL>
<DIALER_STATUS_NAME>Клиент не поднимает трубку</DIALER_STATUS_NAME>
<CAMP_NAME>Cam1</CAMP_NAME>
<PRC>26.67</PRC>
</G_2>
</G_1>
<G_1>
<CAMPAIGN_ID>5049</CAMPAIGN_ID>
<CAMP_NAME>Cam2</CAMP_NAME>
<G_2>
<ORD>1</ORD>
<CAMPAIGN_ID>5049</CAMPAIGN_ID>
<D_D>2017-01-01T00:00:00.000+06:00</D_D>
<CNT>25</CNT>
<D_D_CHAR>01.01.2017</D_D_CHAR>
<VAL>2</VAL>
<DIALER_STATUS_NAME>Выключен/ вне зоны доступа</DIALER_STATUS_NAME>
<CAMP_NAME>Cam2</CAMP_NAME>
<PRC>18.38</PRC>
</G_2>
<G_2>
<ORD>2</ORD>
<CAMPAIGN_ID>5049</CAMPAIGN_ID>
<D_D>2017-01-01T00:00:00.000+06:00</D_D>
<D_D_CHAR>01.01.2017</D_D_CHAR>
<VAL>13</VAL>
<DIALER_STATUS_NAME>Попытки звонка прерваны из за нехватки агентов</DIALER_STATUS_NAME>
<CAMP_NAME>Cam2</CAMP_NAME>
</G_2>
<G_2>
<ORD>3</ORD>
<CAMPAIGN_ID>5049</CAMPAIGN_ID>
<D_D>2017-01-01T00:00:00.000+06:00</D_D>
<CNT>23</CNT>
<D_D_CHAR>01.01.2017</D_D_CHAR>
<VAL>4</VAL>
<DIALER_STATUS_NAME>Нет ответа от сети (провайдера)</DIALER_STATUS_NAME>
<CAMP_NAME>Cam2</CAMP_NAME>
<PRC>16.91</PRC>
</G_2>
<G_2>
<ORD>4</ORD>
<CAMPAIGN_ID>5049</CAMPAIGN_ID>
<D_D>2017-01-01T00:00:00.000+06:00</D_D>
<D_D_CHAR>01.01.2017</D_D_CHAR>
<VAL>6</VAL>
<DIALER_STATUS_NAME>Нет сигнала в линии</DIALER_STATUS_NAME>
<CAMP_NAME>Cam2</CAMP_NAME>
</G_2>
<G_2>
<ORD>5</ORD>
<CAMPAIGN_ID>5049</CAMPAIGN_ID>
<D_D>2017-01-01T00:00:00.000+06:00</D_D>
<D_D_CHAR>01.01.2017</D_D_CHAR>
<VAL>8</VAL>
<DIALER_STATUS_NAME>Клиент не поднимает трубку</DIALER_STATUS_NAME>
<CAMP_NAME>Cam2</CAMP_NAME>
</G_2>
</G_1>
</DATA_DS>


Сделал template
<?xml version="1.0"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:ora="http://www.oracle.com/XSL/Transform/java/" xmlns:xdofo="http://xmlns.oracle.com/oxp/fo/extensions" xmlns:xdoxslt="http://www.oracle.com/XSL/Transform/java/oracle.apps.xdo.template.rtf.XSLTFunctions" xmlns:xdoxliff="urn:oasis:names:tc:xliff:document:1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:msxsl="urn:schemas-microsoft-com:xslt">

 <xsl:template match="/">
  <xsl:processing-instruction name="mso-application">
   <xsl:text>progid="Excel.Sheet"</xsl:text>
  </xsl:processing-instruction>

<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office"
   xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
   xmlns:html="http://www.w3.org/TR/REC-html40">
   <ss:Styles>
    <ss:Style ss:ID="Default" ss:Name="Normal">
     <ss:Font ss:Color="black" ss:Size="10" ss:Bold="1" ss:FontName="Arial"/>
    </ss:Style>
    <ss:Style ss:ID="x1">
     <ss:Font ss:Color="black" ss:Size="10" ss:FontName="Arial"/>
    </ss:Style>
    <ss:Style ss:ID="xdo2">
     <ss:Font  ss:Color="black"  ss:Size="10"  ss:FontName="Arial"/>
     <ss:NumberFormat  Format="$#,##0;[Red]$#,##0"  Bold="0" />
    </ss:Style>
   </ss:Styles>
<!--   <xsl:apply-templates select="DATA_DS"/>-->


<!--   </xsl:template>
   <xsl:template match="DATA_DS">-->
    <xsl:for-each select="/DATA_DS/G_1">
    <Worksheet  Name="{.//CAMP_NAME}">
     <Table x:FullColumns="1" x:FullRows="1">
      <Row>
       <Cell>
        <Data ss:Type="String">col_1_BEGIN</Data>
       </Cell>
       <Cell>
        <Data ss:Type="String">col_2</Data>
       </Cell>
       <Cell>
        <Data ss:Type="String">col_3</Data>
       </Cell>
       <Cell>
        <Data ss:Type="String">col_4</Data>
       </Cell>
       <Cell>
        <Data ss:Type="String">col_5</Data>
       </Cell>
       <Cell>
        <Data ss:Type="String">col_6_END</Data>
       </Cell>
      </Row>
     <xsl:for-each select="/DATA_DS/G_2">
      <Row>
       <Cell ss:StyleID="x1">
        <Data ss:Type="String">
         <xsl:value-of select=".//ORD"/>
        </Data>
       </Cell>
      <Cell ss:StyleID="x1">
       <Data ss:Type="String">
        <xsl:value-of select=".//VAL"/>
       </Data>
      </Cell>
     <Cell ss:StyleID="x1">
      <Data ss:Type="String">
       <xsl:value-of select=".//DIALER_STATUS_NAME"/>
      </Data>
     </Cell>
     <Cell ss:StyleID="x1">
      <Data ss:Type="String">
       <xsl:value-of select=".//CNT"/>
      </Data>
     </Cell>
     <Cell ss:StyleID="x1">
      <Data ss:Type="String">
       <xsl:value-of select=".//PRC"/>
      </Data>
     </Cell>
     <Cell ss:StyleID="x1">
      <Data ss:Type="Number">
       <xsl:value-of select=".//CNT"/>
      </Data>
     </Cell>
    </Row>
   </xsl:for-each>
  </Table>
  </Worksheet>
  </xsl:for-each>
   </Workbook>
 </xsl:template>
</xsl:stylesheet>



смущает что
1. При генерации отчета я не могу получить Excel или XML таблицу (могу получить ТЕКСТ, HTML, XML) файл почему то получить от BI не могу. Как сделать чтобы после генерации отчета получался файл?
2. совсем не отрабатывает <xsl:for-each select="/DATA_DS/G_2">.
3. Может кто нибудь поделится стартовым шаблоном?

В какую сторону копать?

Кто использует Azure DWH?

$
0
0
Приветствую!
Поделитесь информацией кто использует (мигрировал) на Azure DWH с Azure Data Factory.
Какие там основные "болячки" пришлось решать при миграции?

процессинг куба отваливается по таймауту

$
0
0
есть хранилище на SQL2000. И есть куб, построенный в SQL2012 Standard
На хранилище лежат т.фактов, в каждой из которой примерно по 3млн записей. По этим т.фактов построена вьюха вида:
CREATE view SSFactsAll as
select .......
from Facts_2015
union all
select .......
from Facts_2016
union all
select .......
from Facts_2017

на всех ключевых полях (для связи со справочниками) есть индексы.

И вот при построении куба в студии первые сутки все отлично процессилось примерно за час-полтора. На след.день при открывании проекта там же в студии и процессинге вручную, произошло отваливание по таймауту через 4 часа (время отваливания разное: от часа до пяти). С тех пор больше не удавалось отпроцессить куб.

Еще заметил сильные подвисания студии при попытке добавить в DataSourceView новую таблицу в окошке "Add/Remove Tables". Студия долго-долго думает (минут 5-10) и выводит наконец в колонке Available objects доступные таблицы. Такое же подвисание происходит при выборе таблицы для новой партиции если выбран DataSource, а не DataSourceView.
Но после такой паузы потом все отображается быстро.

Другие подобные решения (solutions), когда тот же OLAP-сервер обращается к той же базе на SQL2000, работают нормально.

Подскажите, в какую сторону копать?

olap: эксель32 to 64

$
0
0
ms ssas 2012
у пользователя были настроенные эксельки (которые тащили данные из кубов), созданные в Эксель 2013, 32-разрядная версия
установили ей Эксель 2013, 64-разрядная версия

теперь при открытии выдает ошибку
"ошибка в части содержимого в книге ... Выполнить попытку восстановления?"
при этой попытке
выдает "Эксель удалось открыть файл восстановив или удалив нечитаемое содержимое"

>Удаленный компонент: Компонент /xl/pivotTables/pivotTable1.xml. (Представление сводной таблицы)
>Удаленные записи: Свойства книги из части /xl/workbook.xml (Книга)

т.е. эксель сносит "подключение" (олап), после чего отчет становится не рабочим
На моей машине стоит 32х разрядная версия, такой проблемы с этими файлами не происходит.

Никто не подскажет доколе как побороть? Только заново создать/настроить все отчеты?
Viewing all 1167 articles
Browse latest View live