ทุกคนสามารถแสดงให้ฉันเห็นตัวอย่างที่ดีเกี่ยวกับข้อดีของ MDX เหนือ SQL ทั่วไปเมื่อทำการสอบถามวิเคราะห์? ฉันต้องการเปรียบเทียบแบบสอบถาม MDX กับแบบสอบถาม SQL ที่ให้ผลลัพธ์ที่คล้ายกัน
แม้ว่ามันจะเป็นไปได้ที่จะแปลบางส่วนเหล่านี้เป็น SQL แบบดั้งเดิม แต่มันก็มักจะต้องมีการสังเคราะห์นิพจน์ SQL ที่เงอะงะแม้สำหรับ MDX ที่ง่ายมาก
แต่ไม่มีการอ้างอิงหรือตัวอย่าง ฉันตระหนักดีว่าข้อมูลพื้นฐานจะต้องมีการจัดระเบียบที่แตกต่างกันและ OLAP จะต้องการการประมวลผลและการจัดเก็บต่อการแทรกเพิ่ม (ข้อเสนอของฉันคือการย้ายจาก Oracle RDBMS ไปยังApache Kylin + Hadoop )
บริบท:ฉันพยายามโน้มน้าวใจ บริษัท ของฉันว่าเราควรทำการสืบค้นฐานข้อมูล OLAP แทนฐานข้อมูล OLTP ข้อความค้นหา SIEM ส่วนใหญ่ใช้การเรียงลำดับตามกลุ่มและการรวมกันเป็นจำนวนมาก นอกเหนือจากการเพิ่มประสิทธิภาพแล้วฉันคิดว่าข้อความค้นหา OLAP (MDX) จะกระชับและอ่าน / เขียนได้ง่ายกว่า OLTP SQL ที่เทียบเท่า ตัวอย่างที่เป็นรูปธรรมจะผลักดันจุดกลับบ้าน แต่ฉันไม่ใช่ผู้เชี่ยวชาญของ SQL ซึ่งมี MDX น้อยกว่า ...
ถ้าช่วยได้นี่คือตัวอย่างแบบสอบถาม SQL ที่เกี่ยวข้องกับ SIEM สำหรับเหตุการณ์ไฟร์วอลล์ที่เกิดขึ้นในสัปดาห์ที่ผ่านมา:
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