Recuperar metadados – Trabalhar com o modelo de objeto do ADOMD.NET
O ADOMD.NET oferece um modelo de objeto para a exibição dos cubos e dos objetos subordinados contidos em uma fonte de dados analíticos. No entanto, nem todos os metadados de uma determinada fonte de dados analíticos estarão disponíveis por meio do modelo de objeto. O modelo de objeto só fornece acesso às informações mais úteis para que um aplicativo cliente as exiba e permita que um usuário crie comandos de forma interativa. Por causa da complexidade reduzida dos metadados em apresentar, o modelo de objeto do ADOMD.NET é mais fácil usar.
No modelo de objeto ADOMD.NET, AdomdConnection o objeto fornece acesso a informações sobre os cubos OLAP (processamento analítico online) e modelos de mineração definidos em uma fonte de dados analíticos e objetos relacionados, como dimensões, conjuntos nomeados e algoritmos de mineração.
Recuperando metadados OLAP
Cada AdomdConnection objeto tem uma coleção de CubeDef objetos que representam os cubos disponíveis para o usuário ou aplicativo. O CubeDef objeto expõe informações sobre o cubo, bem como vários objetos relacionados ao cubo, como dimensões, indicadores chave de desempenho, medidas, conjuntos nomeados e assim por diante.
Sempre que possível, você deve usar CubeDef o objeto para representar metadados em aplicativos cliente projetados para dar suporte a vários servidores OLAP ou para fins gerais de exibição e acesso de metadados.
Observação
Para provedor metadados específicos, ou para acesso e exibição detalhados de metadados, use conjuntos de linhas do esquema para recuperar metadados. Para obter mais informações, consulte Working with Schema Rowsets in ADOMD.NET.
O exemplo a seguir usa o CubeDef objeto para recuperar os cubos visíveis e suas dimensões do servidor local:
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();
}
Recuperando metadados de mineração de dados
Cada AdomdConnection objeto tem várias coleções que fornecem informações sobre os recursos de mineração de dados da fonte de dados:
O MiningModelCollection contém uma lista de cada modelo de mineração na fonte de dados.
O MiningServiceCollection fornece informações sobre os algoritmos de mineração disponíveis.
O MiningStructureCollection expõe informações sobre as estruturas de mineração no servidor.
Para determinar como consultar um modelo de mineração no servidor, itere por meio da coleção Microsoft.AnalysisServices.AdomdServer.MiningModel.Columns. Cada MiningModelColumn objeto expõe as seguintes características:
Se o objeto é uma coluna de entrada (IsInput).
Se o objeto é uma coluna de previsão (IsPredictable).
Os valores associados a uma coluna discreta (Values)
O tipo de dados na coluna (Type).