Пользовательский источник данных ROLAP в SSAS

Я пытаюсь создать источник данных OLAP из кучи двоичных файлов, а наша текущая модель просто не работает. Мы используем SSAS в качестве нашей модели анализа / отчетности для наших результатов, но не можем добиться желаемой производительности от SQL.

Наши основные ограничения:

  1. База данных очень большая. У нас есть огромные таблицы измерений с миллионами строк и несколько меньших таблиц фактов (<1 000 000 строк).

  2. У нас есть динамический куб. B / C таблицы фактов строятся динамически, и часто (возможно, несколько раз в день) не может быть больших накладных расходов при настройке куба. Текущее время развертывания на кубе может превышать 24 часа, и нам нужно на несколько порядков увеличить производительность, чего нам просто не даст оборудование.

По сути, нам нужна быстрая установка и развертывание, что по своей сути не поддается SSAS с использованием SQL Server 2005, но мы хотим использовать SSRS для отчетности и нам нужна модель OLAP для анализа в Excel, поэтому мы все равно хотели бы по возможности используйте SSAS для построения куба.

Распространенным решением в SSAS для быстрого развертывания является ROLAP, но мы получаем ошибки выполнения в больших запросах ROLAP, и нам также не нравятся все накладные расходы, связанные с преобразованием двоичных данных в SQL и загрузкой их в куб.

Кто-нибудь работал над настраиваемым источником данных OLAP, который может использовать SSAS? Мы планируем создать собственный механизм ROLAP, который будет напрямую запрашивать двоичные исходные файлы.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
2 286
4

Ответы 4

Если вам нужен куб с низкой задержкой (т. Е. Тот, который показывает актуальные данные), каноническая архитектура для таких вещей выглядит следующим образом:

  • Постепенно загружайте таблицу фактов с измененными данными из вашего источника.
  • Создайте секционированный куб с процессом, который генерирует новые секции каждый день или в другой подходящий период. В кубе самый последний раздел настроен в режиме ROLAP, а более старые разделы созданы в режиме MOLAP.
  • Настройте процесс, который обновляет разделы и меняет старые разделы с ROLAP на MOLAP, поскольку он создает новый передний раздел.

Запросы к кубу будут попадать в относительно небольшой раздел 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, чтобы увидеть, возможно ли это. Удачи, Скотт.

Другие вопросы по теме