OLAP ソリューションとして、Microsoft の Analysis Services (SSAS) から HP Vertica データベースに移行しています。その一環として、クエリ言語を MDX から SQL に変更する必要があります。必要なディメンションとファクト (出力) を指定することで、他のユーザーが API またはユーザー インターフェイスを介してデータを照会できるカスタム MDX クエリ ジェネレーターがありました。生成された 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
そして、それは本当に急速に複雑になります。
ディメンション テーブルとファクト テーブルの間の関係を格納するグラフ ベースのソリューションを考えています。グラフ内のノード間の最短パスを見つけることで、必要な結合を構築できます。
この種の問題の解決策やそれを解決できるサードパーティ製品の検索に使用する必要があるキーワードなど、この件に関する情報をいただければ幸いです。検索してみましたが、問題はかなり異なっていました。