Retrieving Metadata from an Analytical Data Source

Metadata is important to applications that retrieve and work with analytical data. When retrieving data from a relational data source, the dimensionality of such data is predictable, even with nested datasets. Result sets from a relational database are typically two-dimensional or scalar in structure. However, data retrieved from analytical data sources can be of variable dimensionality, organized along potentially deep hierarchies.

To handle the complexity of metadata retrieval from analytical data sources, ADOMD.NET provides two forms of metadata retrieval:

  • The Object Model
    The ADOMD.NET object model is generally easier to use than schema rowsets. For most scenarios, you can access the metadata of various database objects just by using the object model. ADOMD.NET exposes the object model through the AdomdConnection.

    For more information: Working with the ADOMD.NET Object Model

  • Schema Rowsets
    A complete, but more difficult approach to retrieving metadata is through using schema rowsets. A schema rowset is an OLE DB rowset that encapsulates the description for all objects of a particular type in the database. Schema information in an analytical data source includes databases or catalogs available from the data source, cubes and mining models in a database, roles that exist for cubes at the data source, and so on. This metadata can be retrieved by using the GetSchemaDataSet method, passing in either a GUID or an XML for Analysis (XMLA) name.

    For more information: Working with Schema Rowsets in ADOMD.NET

Each of these metadata retrieval methods access different types of metadata. The following table describes the different metadata available for each method, and the methods used to access it.

GUID (used in Schema Rowsets)

XMLA Name (used in Schema Rowsets)

ADOMD.NET Object Model

Actions

MDSCHEMA_ACTIONS Rowset

Catalogs

DBSCHEMA_CATALOGS Rowset

Columns

DBSCHEMA_COLUMNS Rowset

Connections

DISCOVER_CONNECTIONS

Cubes

MDSCHEMA_CUBES Rowset

AdomdConnection.Cubes

DataSources

DISCOVER_DATASOURCES Rowset

DBConnections

DISCOVER_DB_CONNECTIONS

Dimensions

MDSCHEMA_DIMENSIONS Rowset

AdomdConnection.Cubes[].Dimensions

DimensionStat

DISCOVER_DIMENSION_STAT

Enumerators

DISCOVER_ENUMERATORS Rowset

Functions

MDSCHEMA_FUNCTIONS Rowset

Hierarchies

MDSCHEMA_HIERARCHIES Rowset

AdomdConnection.Cubes[].Dimensions[].Hierarchies

InputDataSources

MDSCHEMA_INPUT_DATASOURCES Rowset

Instances

DISCOVER_INSTANCES Rowset

Jobs

DISCOVER_JOBS

Keywords

DISCOVER_KEYWORDS Rowset (OLE DB for OLAP)

Kpis

MDSCHEMA_KPIS Rowset

AdomdConnection.Cubes[].KPIs

Levels

MDSCHEMA_LEVELS Rowset

AdomdConnection.Cubes[].Dimensions[].Hierarchies[].Levels

Literals

DISCOVER_LITERALS Rowset

Locations

DISCOVER_LOCATIONS

Locks

DISCOVER_LOCKS

MasterKey

DISCOVER_MASTER_KEY

MeasureGroupDimensions

MDSCHEMA_MEASUREGROUP_DIMENSIONS Rowset

MeasureGroups

MDSCHEMA_MEASUREGROUPS Rowset

Measures

MDSCHEMA_MEASURES Rowset

AdomdConnection.Cubes[].Measures

MemberProperties

MDSCHEMA_PROPERTIES Rowset

PropertyCollection available from most major ADOMD.NET objects.

Members

MDSCHEMA_MEMBERS Rowset

AdomdConnection.Cubes[].Dimensions[].Hierarchies[].Levels[].GetMembers()

MemoryGrant

DISCOVER_MEMORYGRANT

MemoryUsage

DISCOVER_MEMORYUSAGE

MiningColumns

DMSCHEMA_MINING_COLUMNS Rowset

AdomdConnection.MiningModels[].MiningModelColumns

MiningFunctions

DMSCHEMA_MINING_FUNCTIONS Rowset

MiningModelContent

DMSCHEMA_MINING_MODEL_CONTENT Rowset

AdomdConnection.MiningModels[].MiningContentNodes

MiningModelContentPmml

DMSCHEMA_MINING_MODEL_CONTENT_PMML Rowset

MiningModels

DMSCHEMA_MINING_MODELS Rowset

AdomdConnection.MiningModels

MiningModelXml

DMSCHEMA_MINING_MODEL_XML Rowset

MiningServiceParameters

DMSCHEMA_MINING_SERVICE_PARAMETERS Rowset

AdomdConnection.MiningServices[].MiningServiceParameters

MiningServices

DMSCHEMA_MINING_SERVICES Rowset

AdomdConnection.MiningServices

MiningStructureColumns

DMSCHEMA_MINING_STRUCTURE_COLUMNS Rowset

AdomdConnection.MiningStructures[].MiningStructureColumns

MiningStructures

DMSCHEMA_MINING_STRUCTURES Rowset

AdomdConnection.MiningStructures

PartitionDimensionStat

DISCOVER_PARTITION_DIMENSION_STAT

PartitionStat

DISCOVER_PARTITION_STAT

PerformanceCounters

DISCOVER_PERFORMANCE_COUNTERS

ProviderTypes

DBSCHEMA_PROVIDER_TYPES Rowset

SchemaRowsets

DISCOVER_SCHEMA_ROWSETS Rowset

Sessions

DISCOVER_SESSIONS

Sets

MDSCHEMA_SETS Rowset

AdomdConnection.Cubes[].NamedSets

Tables

DBSCHEMA_TABLES Rowset

TablesInfo

DBSCHEMA_TABLES_INFO

TraceColumns

DISCOVER_TRACE_COLUMNS

TraceDefinitionProviderInfo

DISCOVER_TRACE_DEFINITION_PROVIDERINFO

TraceEventCategories

DISCOVER_TRACE_EVENT_CATEGORIES

Traces

DISCOVER_TRACES

Transactions

DISCOVER_TRANSACTIONS

XmlaProperties

DISCOVER_PROPERTIES Rowset

XmlMetadata

DISCOVER_XML_METADATA Rowset

See Also

Reference

ADOMD.NET Client Programming

ADOMD.NET Client Programming

Analysis Services Schema Rowsets