分析クエリを実行するときに、通常のSQLよりもMDXが優れている例を誰かに教えてもらえますか?MDXクエリを、同様の結果が得られるSQLクエリと比較したいと思います。
これらの一部を従来のSQLに変換することは可能ですが、非常に単純なMDX式の場合でも、不格好なSQL式の合成が必要になることがよくあります。
しかし、引用も例もありません。基礎となるデータを異なる方法で整理する必要があること、およびOLAPでは挿入ごとにより多くの処理とストレージが必要になることを十分に認識しています。(私の提案は、Oracle RDBMSからApache Kylin + Hadoopに移行することです)
コンテキスト: OLTPデータベースではなくOLAPデータベースにクエリを実行する必要があることを会社に納得させようとしています。ほとんどのSIEMクエリは、group-by、sort、aggregationを頻繁に使用します。パフォーマンスの向上に加えて、OLAP(MDX)クエリは、同等のOLTP SQLよりも簡潔で読み書きも簡単だと思います。具体例は要点を突き止めるだろうが、私はSQLの専門家ではなく、MDXははるかに少ない...
役立つ場合は、過去1週間に発生したファイアウォールイベント用のサンプルSIEM関連SQLクエリを次に示します。
SELECT 'Seoul Average' AS term,
Substr(To_char(idate, 'HH24:MI'), 0, 4)
|| '0' AS event_time ,
Round(Avg(tot_accept)) AS cnt
FROM (
SELECT *
FROM st_event_100_#yyyymm-1m#
WHERE idate BETWEEN trunc(sysdate, 'iw')-7 AND trunc(sysdate, 'iw')-3 #stat_monitor_group_query#
UNION ALL
SELECT *
FROM st_event_100_#yyyymm#
WHERE idate BETWEEN trunc(sysdate, 'iw')-7 AND trunc(sysdate, 'iw')-3 #stat_monitor_group_query# ) pm
GROUP BY substr(to_char(idate, 'HH24:MI'), 0, 4)
|| '0'
UNION ALL
SELECT 'today' AS term ,
substr(to_char(idate, 'HH24:MI'), 0, 4)
|| '0' AS event_time ,
round(avg(tot_accept)) AS cnt
FROM st_event_100_#yyyymm# cm
WHERE idate >= trunc(sysdate) #stat_monitor_group_query#
GROUP BY substr(to_char(idate, 'HH24:MI'), 0, 4)
|| '0'
ORDER BY term DESC,
event_time ASC