Я начал изучать облачную архитектуру и обнаружил, что все они используют столбчатые базы данных, которые утверждают, что они более эффективны, поскольку они хранят столбец, а не строку, чтобы уменьшить дублирование.
С точки зрения витрины данных (допустим, для организации отдел хочет только отслеживать рост продаж в Интернете, а некоторые другие отделы хотят сосредоточиться на производительности торговых точек), как я могу разработать архитектуру, которая может обрабатывать загрузку данных и предоставлять простые данные доступ. Я знаю, как на его основе можно легко спроектировать витрину данных, и конечному пользователю вообще не нужно беспокоиться о расчетах.
У меня был опыт работы с SSAS (OLAP), в котором все вычисления в большом хранилище данных уже вычислены, и обычный бизнес-пользователь может напрямую подключиться к кубу и анализировать данные с помощью инструмента самообслуживания BI (так же просто, как перетаскивание) на с другой стороны, столбчатые базы данных, похоже, следуют подходу ELT и оставляют все вычисления либо на запросах (представлениях), либо на инструменте отчетности.
Поскольку у меня есть опыт работы с SQL Server, я предполагаю, что мой запрос (например, ниже)
SELECT
region,
state,
City,
Country,
SUM(Sales_Amount),
AVG(Discount_Sale),
SUM(xyz)
....
FROM Columnar_DataTable
собирается сканировать всю таблицу, что может увеличить стоимость. Представьте, что вышеуказанный запрос выполняется более 1000 раз в день для крупного предприятия.
Итак, уместно ли создавать OLAP поверх столбчатых баз данных с многомерным моделированием или лучше сначала загрузить данные, а затем отфильтровать / преобразовать их в инструменте отчетности? Учитывая, что большинство инструментов самостоятельной бизнес-аналитики уже помните об этом и ограничьте использование потребления данных (например, версия сообщества Power BI для настольных ПК допускает 10 ГБ на набор данных) и заставляет пользователя выполнять свои собственные вычисления.
Если мы разделим данные на несколько таблиц, тогда все инструменты отчетности, в любом случае, потребуют связи между таблицами для фильтрации.
Если мы сохраним формат единой таблицы, тогда инструмент отчетности должен будет прочитать все данные, прежде чем производить какие-либо вычисления.