Adakah yang bisa menunjukkan kepada saya contoh yang baik tentang keunggulan MDX dibandingkan SQL biasa ketika melakukan kueri analitik? Saya ingin membandingkan kueri MDX dengan kueri SQL yang memberikan hasil serupa.
Meskipun dimungkinkan untuk menerjemahkan beberapa dari ini ke dalam SQL tradisional, seringkali akan memerlukan sintesis ekspresi SQL yang canggung bahkan untuk ekspresi MDX yang sangat sederhana.
Tetapi tidak ada kutipan atau contoh. Saya sepenuhnya sadar bahwa data yang mendasarinya harus diatur secara berbeda, dan OLAP akan membutuhkan lebih banyak pemrosesan dan penyimpanan per sisipan. (Proposal saya adalah pindah dari Oracle RDBMS ke Apache Kylin + Hadoop )
Konteks: Saya mencoba meyakinkan perusahaan saya bahwa kita harus menanyakan database OLAP daripada database OLTP. Sebagian besar permintaan SIEM banyak menggunakan pengelompokan berdasarkan kelompok, jenis, dan agregasi. Selain peningkatan kinerja, saya pikir permintaan OLAP (MDX) akan lebih ringkas dan lebih mudah untuk membaca / menulis daripada OLTP SQL yang setara. Contoh konkret akan mengarahkan poin, tapi saya bukan ahli SQL, apalagi MDX ...
Jika ini membantu, berikut adalah contoh kueri SQL terkait SIEM untuk peristiwa firewall yang terjadi dalam seminggu terakhir:
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