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 |