2015-03-28 2 views
0

Мы переходим от служб анализа Microsoft (SSAS) к ​​базе данных HP Vertica в качестве нашего решения OLAP. Отчасти это связано с изменением языка запросов с MDX на SQL. У нас был пользовательский генератор запросов MDX, который позволял другим запрашивать данные через api или пользовательский интерфейс, указав необходимые измерения и факты (выходы). Сгенерированные запросы MDX были в порядке, и нам не пришлось обрабатывать соединения вручную.Рекомендации по созданию генератора аналитических запросов (SQL)

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

Например. если пользователь хочет видеть имя клиента вместе с количеством продаж, мы могли бы принять запрос:

dimensions: { 'client_name' } 
facts: { 'total_number_of_sales' } 

и генерировать запрос следующим образом:

select clients.name, sum(sales.total) 
from clients 
join sales on clients.id = sales.client_id 
group by 1 

И это становится более сложным, очень быстро ,

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

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

ответ

1

Вы можете использовать бесплатный OLAP-движок Mondrian, который может выполнять запросы, написанные на языке MDX в верхней части реляционной базы данных (РСУБД).

Для получения информации вы можете попросить Saiku или Pentaho BI server на странице Mondrian OLAP.

Смежные вопросы