Herhangi biri bana analitik sorgular yaparken normal SQL'e göre MDX'in avantajlarına iyi bir örnek gösterebilir mi? Bir MDX sorgusu benzer sonuçlar veren bir SQL sorgusu ile karşılaştırmak istiyorum.
Bunlardan bazılarını geleneksel SQL'e çevirmek mümkün olsa da, çok basit MDX ifadeleri için bile sıklıkla beceriksiz SQL ifadelerinin sentezini gerektirecektir.
Ancak ne bir alıntı ne de bir örnek var. Altta yatan verilerin farklı şekilde organize edilmesi gerektiğinin tamamen farkındayım ve OLAP, ek başına daha fazla işleme ve depolama gerektirecektir. (Benim önerim Oracle RDBMS'den Apache Kylin + Hadoop'a geçmek )
Bağlam: Şirketimi bir OLTP veritabanı yerine bir OLAP veritabanını sorgulamamız gerektiğine ikna etmeye çalışıyorum. Çoğu SIEM sorgusu, gruplama, sıralama ve toplama işlemlerinden yoğun şekilde yararlanır. Performans artışının yanı sıra, OLAP (MDX) sorgularının eşdeğer OLTP SQL'den daha özlü ve okunması / yazılması daha kolay olacağını düşünüyorum. Somut bir örnek noktayı eve götürür, ancak SQL'de uzman değilim, çok daha az MDX ...
Yardımcı olursa, geçen hafta gerçekleşen güvenlik duvarı olayları için SIEM ile ilgili örnek bir SQL sorgusu verilmiştir:
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