Поделиться через


Получение метаданных — работа с объектной моделью ADOMD.NET

Компонент ADOMD.NET предоставляет модель объектов для просмотра кубов и подчиненных объектов, содержащихся в источниках аналитических данных. Однако эта модель объектов предоставляет доступ не ко всем метаданным для источника аналитических данных. Модель объектов обеспечивает доступ только к наиболее полезным сведениям, которые будет отображать клиентское приложение, чтобы пользователь мог составлять команды в интерактивном режиме. Представляемые метаданные имеют менее высокую сложность, поэтому модель объектов ADOMD.NET проще использовать.

В объектной модели AdomdConnection ADOMD.NET объект предоставляет доступ к информации о КУБАХ OLAP и моделях интеллектуального анализа данных, определенных в источнике аналитических данных, и связанных объектах, таких как измерения, именованные наборы и алгоритмы интеллектуального анализа данных.

Извлечение метаданных OLAP

Каждый AdomdConnection объект имеет коллекцию CubeDef объектов, представляющих Кубы, доступные пользователю или приложению. CubeDefОбъект предоставляет сведения о Кубе, а также различные объекты, связанные с кубом, такие как измерения, ключевые показатели эффективности, меры, именованные наборы и т. д.

По возможности следует использовать CubeDef объект для представления метаданных в клиентских приложениях, предназначенных для поддержки нескольких серверов OLAP, а также для общих задач отображения метаданных и доступа к ним.

Примечание

Для извлечения метаданных, характерных для поставщика, или для отображения и доступа к подробным метаданным используйте наборы строк схемы. Дополнительные сведения см. в статье Working with Schema Rowsets in ADOMD.NET.

В следующем примере объект используется CubeDef для получения видимых кубов и их измерений с локального сервера:

private string RetrieveCubesAndDimensions()
{
    System.Text.StringBuilder result = new System.Text.StringBuilder();

    //Connect to the local server
    using (AdomdConnection conn = new AdomdConnection("Data Source=localhost;"))
    {
        conn.Open();

        //Loop through every cube
        foreach (CubeDef cube in conn.Cubes)
        {
            //Skip hidden cubes.
            if (cube.Name.StartsWith("$"))
                continue; 

            //Write the cube name
            result.AppendLine(cube.Name);

            //Write out all dimensions, indented by a tab.
            foreach (Dimension dim in cube.Dimensions)
            {
                result.Append("\t");
                result.AppendLine(dim.Name);
            }
        }

        //Close the connection
        conn.Close();
    }

    //Return the results
    return result.ToString();
}

Извлечение метаданных интеллектуального анализа данных

Каждый AdomdConnection объект имеет несколько коллекций, предоставляющих сведения о возможностях интеллектуального анализа данных источника данных:

  • Объект MiningModelCollection содержит список всех моделей интеллектуального анализа данных, содержащихся в источнике.

  • MiningServiceCollectionПредоставляет сведения о доступных алгоритмах интеллектуального анализа данных.

  • Объект MiningStructureCollection предоставляет сведения о структурах интеллектуального анализа данных на сервере.

Чтобы определить, как выполнять запросы к модели интеллектуального анализа данных на сервере, выполните итерацию по коллекции Microsoft. AnalysisServices. того объектная AdomdServer. MiningModel. Columns. Каждый MiningModelColumn объект предоставляет следующие характеристики:

  • Является ли объект входным столбцом ( IsInput ).

  • Является ли объект столбцом прогноза ( IsPredictable ).

  • Значения, связанные с дискретным столбцом ( Values )

  • Тип данных в столбце ( Type ).