← يتطلب: SQL على IRIS التحليلات متقدم ⏱ 5 ساعات الدورة 21

التحليلات التفاعلية DeepSee

DeepSee Interactive Analytics

🎯 أهداف التعلم

1فهم Cubes
2إنشاء تحليلات
3بناء KPIs
4تصميم تقارير

01 مقدمة في DeepSee

DeepSee هو محرك التحليلات المدمج في IRIS.

Class MyApp.Cube.Sales Extends %DeepSee.CubeDefinition {
  XData Cube {
    
      
        
          
        
      
      
    
  }
}

02 MDX Queries المتقدمة

MDX هي لغة الاستعلام للبيانات متعددة الأبعاد.

// استعلام MDX متقدم
ClassMethod RunAdvancedMDX() {
  // إجمالي المبيعات حسب الشهر
  Set query = ""
  Set query = query _ "SELECT {[Measures].[TotalSales]} ON 0, "
  Set query = query _ "{[Date].[2024].Members} ON 1 "
  Set query = query _ "FROM [SalesCube] "
  Set query = query _ "WHERE [Product].[Category].[Electronics]"
  
  Set rs = ##class(%DeepSee.ResultSet).%New()
  Set rs.%QueryText = query
  Do rs.%Execute()
  
  While rs.%Next() {
    Write rs.%GetString(1), ": ", rs.%GetString(2), !
  }
}

// KPI مخصص
ClassMethod CalculateKPI() {
  &sql(SELECT AVG(SalesAmount) INTO :avg FROM SalesData WHERE Year = 2024)
  &sql(SELECT SUM(SalesAmount) INTO :total FROM SalesData WHERE Year = 2024)
  
  Set kpi = {}
  Set kpi.average = avg
  Set kpi.total = total
  Set kpi.growth = ((total - lastYearTotal) / lastYearTotal) * 100
  
  Return kpi
}
03

استعلامات MDX متقدمة

كتابة استعلامات MDX متقدمة للتحليلات.

// استعلامات MDX متقدمة
Class Hospital.DeepSee.AdvancedQueries
{
    // Year-over-Year comparison
    ClassMethod YearOverYear()
    {
        Set mdx = "SELECT {[Measures].[TotalSales]} ON COLUMNS, "
                _ " {[DateDim].[H1].[Month].Members} ON ROWS "
                _ " FROM [SalesCube]"
        
        Set result = ##class(%DeepSee.ResultSet).%ExecuteDirect(mdx)
        While result.%Next() {
            Write result.%GetString(1), ": ", result.%GetString(2), !
        }
    }
    
    // Percentage of total
    ClassMethod PercentOfTotal()
    {
        Set mdx = "SELECT "
                _ " {[Measures].[TotalSales]} ON COLUMNS, "
                _ " TOPCOUNT({[ProductDim].[H1].[Product].Members}, 10, [Measures].[TotalSales]) ON ROWS "
                _ " FROM [SalesCube]"
        
        Set result = ##class(%DeepSee.ResultSet).%ExecuteDirect(mdx)
        While result.%Next() {
            Write result.%GetString(1), ": ", result.%GetString(2), !
        }
    }
    
    // Running total
    ClassMethod RunningTotal()
    {
        Set mdx = "SELECT "
                _ " {MEASURES.[TotalSales]} ON COLUMNS, "
                _ " ORDER({[DateDim].[H1].[Month].Members}, [DateDim].[H1].[Month].CurrentMember.Properties("MonthNumber"), BASC) ON ROWS "
                _ " FROM [SalesCube]"
        
        Set result = ##class(%DeepSee.ResultSet).%ExecuteDirect(mdx)
        While result.%Next() {
            Write result.%GetString(1), ": ", result.%GetString(2), !
        }
    }
}

📝 اختبار التحقق

1. ما هو DeepSee؟

محرك التحليلات التفاعلية المدمج في IRIS

ما هي لغة الاستعلام للبيانات متعددة الأبعاد في DeepSee؟

MDX (Multi-Dimensional Expressions) هي لغة الاستعلام للبيانات متعددة الأبعاد

ما هو الفرق بين DeepSee و iKnow؟
💡 الشرح

DeepSee للتحليلات العددية/الإحصائية، iKnow لتحليل النصوص واللغة الطبيعية

💡 النقاط الرئيسية

  • DeepSee يوفر قدرات OLAP مدمجة في IRIS
  • MDX هي لغة الاستعلام للتحليلات متعددة الأبعاد
  • Cubes تحتوي على Dimensions وMeasures
  • Dashboards تعرض البيانات بشكل بصري تفاعلي
  • KPIs تقيس مؤشرات الأداء الرئيسية