Я пытаюсь создать источник данных OLAP из кучи двоичных файлов, а наша текущая модель просто не работает. Мы используем SSAS в качестве нашей модели анализа / отчетности для наших результатов, но не можем добиться желаемой производительности от SQL.
Наши основные ограничения:
База данных очень большая. У нас есть огромные таблицы измерений с миллионами строк и несколько меньших таблиц фактов (<1 000 000 строк).
У нас есть динамический куб. B / C таблицы фактов строятся динамически, и часто (возможно, несколько раз в день) не может быть больших накладных расходов при настройке куба. Текущее время развертывания на кубе может превышать 24 часа, и нам нужно на несколько порядков увеличить производительность, чего нам просто не даст оборудование.
По сути, нам нужна быстрая установка и развертывание, что по своей сути не поддается SSAS с использованием SQL Server 2005, но мы хотим использовать SSRS для отчетности и нам нужна модель OLAP для анализа в Excel, поэтому мы все равно хотели бы по возможности используйте SSAS для построения куба.
Распространенным решением в SSAS для быстрого развертывания является ROLAP, но мы получаем ошибки выполнения в больших запросах ROLAP, и нам также не нравятся все накладные расходы, связанные с преобразованием двоичных данных в SQL и загрузкой их в куб.
Кто-нибудь работал над настраиваемым источником данных OLAP, который может использовать SSAS? Мы планируем создать собственный механизм ROLAP, который будет напрямую запрашивать двоичные исходные файлы.





Если вам нужен куб с низкой задержкой (т. Е. Тот, который показывает актуальные данные), каноническая архитектура для таких вещей выглядит следующим образом:
Запросы к кубу будут попадать в относительно небольшой раздел ROLAP для самых последних данных и разделы MOLAP для исторических данных. Разделы MOLAP могут иметь агрегаты. Процесс продолжает отмечать передний край ROLAP-раздела и преобразовывать его предшественник. AS сохранит старый раздел и будет использовать его до тех пор, пока новый раздел не будет построен и не будет запущен.
Если этот тип архитектуры будет соответствовать вашим требованиям, вы можете подумать о том, чтобы сделать это таким образом.
Спасибо за ответ, Найджел.
Думаю, мне нужно объяснить это немного лучше. Мои исходные данные находятся в проприетарном формате, а не в базе данных, поэтому переход к самой таблице фактов занимает довольно много времени. Затем нам нужно развернуть куб как можно быстрее (желательно в течение нескольких минут) и получить быстрые ответы на запросы, чего мы в настоящее время не наблюдаем даже в небольшом наборе данных, использующем SQL.
Поскольку структура куба является динамической, нам часто приходится перестраивать каждый аспект куба, мы не вводим новые данные постфактум, поэтому разделение его частей как MOLAP и других частей ROLAP на самом деле не помогает. Ищем производительность по «Полному процессу».
Мы начинаем понимать, что просто не можем использовать SQL для запросов, и хотим знать, создал ли кто-нибудь собственный источник данных ROLAP, который могут читать службы анализа (или любой инструмент OLAP).
Мы можем быстро справиться с созданием наборов результатов; нам просто нужно выяснить, как получить запрос из SSAS и передать ему эти результаты. На самом деле мы просто хотим использовать SSAS в качестве посредника между нашей системой и Excel, SSRS и т. д., А не использовать его для обработки или агрегирования данных.
Не могли бы вы использовать что-то вроде р с библиотекой homebrew (она поддерживает Расширения C) для взаимодействия с вашими наборами данных. R предоставит вам достаточную гибкость для создания сложных отчетов или библиотек предварительной обработки данных. Он также имеет интерфейс с Excel.
Этот набор инструментов несколько отличается от традиционной модели DB / OLAP, но вы можете довольно легко написать быстрый загрузчик набора данных на C и пропустить промежуточный этап загрузки в базу данных.
Мне еще не повезло. Мы идем по пути создания собственного поставщика данных и надстроек для Excel для имитации поведения olap, ЛИБО с использованием функций CLR с табличным значением для имитации наших источников данных и построения куба на их основе. Одна попытка, которую я предпринял для среды CLR, имела ужасную производительность и провалилась из-за количества запросов, выполняемых SSAS при построении куба. Я жду, чтобы получить более новую более быструю машину в среде SQL 08, чтобы увидеть, возможно ли это. Удачи, Скотт.