Qualcuno può mostrarmi un buon esempio dei vantaggi di MDX rispetto al normale SQL quando si eseguono query analitiche? Vorrei confrontare una query MDX con una query SQL che fornisce risultati simili.
Mentre è possibile tradurre alcuni di questi in SQL tradizionale, spesso richiederebbe la sintesi di espressioni goffe di SQL anche per espressioni MDX molto semplici.
Ma non c'è né una citazione né un esempio. Sono pienamente consapevole che i dati sottostanti devono essere organizzati in modo diverso e OLAP richiederà una maggiore elaborazione e archiviazione per inserto. (La mia proposta è di passare da un RDBMS Oracle ad Apache Kylin + Hadoop )
Contesto: sto cercando di convincere la mia azienda che dovremmo interrogare un database OLAP anziché un database OLTP. La maggior parte delle query SIEM fa ampio uso di raggruppamento, ordinamento e aggregazione. Oltre all'aumento delle prestazioni, penso che le query OLAP (MDX) sarebbero più concise e più facili da leggere / scrivere rispetto all'equivalente OLTP SQL. Un esempio concreto porterebbe il punto a casa, ma non sono un esperto di SQL, tanto meno MDX ...
Se aiuta, ecco una query SQL di esempio relativa a SIEM per eventi firewall verificatisi la scorsa settimana:
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