我们正在从 Microsoft 的 Analysis Services (SSAS) 迁移到 HP Vertica 数据库作为我们的 OLAP 解决方案。其中一部分涉及将我们的查询语言从 MDX 更改为 SQL。我们有一个自定义的 MDX 查询生成器,它允许其他人通过指定所需的维度和事实(输出)通过 api 或用户界面查询数据。生成的 MDX 查询没问题,我们不必手动处理连接。
但是,现在我们使用的是 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
而且它很快变得更加复杂。
我正在考虑基于图形的解决方案,该解决方案将存储维度表和事实表之间的关系,并且我可以通过查找图中节点之间的最短路径来构建所需的连接。
我非常感谢有关此主题的任何信息,包括我应该使用的任何关键字来搜索此类问题的解决方案或可以解决该问题的 3rd 方产品。我已经尝试搜索它,但问题完全不同。