ColumnDependency
Overview
The ColumnDependency
class in the TCDX object model represents a column-level dependency between a Consumer (such as an Excel workbook or Power BI report) and a tabular model. It is used to track which columns within a model are referenced by a given Consumer or Item.
Purpose
The primary functions of the ColumnDependency
class include:
- Tracking column dependencies within a tabular model.
- Providing metadata about the columns accessed by a Consumer or Item.
- Facilitating auditing, performance tuning, and data governance by analyzing column usage patterns.
- Helping in optimization efforts by identifying unused or frequently used columns in reporting tools.
This class is essential for query analysis, dependency tracking, and governance within Power BI, Excel, and other analytics environments.
Public Properties
The ColumnDependency
class consists of the following key properties:
Property | Type | Description |
---|---|---|
Model |
ModelDependency |
A reference to the tabular model where the column resides. |
TableName |
TcdxName |
The name of the table containing the referenced column. |
ColumnName |
TcdxName |
The name of the referenced column within the table. |
Table |
TableDependency |
A reference to the table dependency associated with this column. |
ModelColumn |
Dax.Metadata.Column |
A reference to the column in the VertiPaq Analyzer (VPAX) object model, if available. |
Property Details
- Model
- This property links the
ColumnDependency
to a specific tabular model via aModelDependency
object. - It helps track which model the column belongs to.
- This property links the
- TableName
- Stores the name of the table that contains the referenced column.
- This ensures clarity when analyzing column usage within a tabular model.
- ColumnName
- Identifies the specific column being referenced.
- Helps in determining which fields are directly used in a pivot table, Power BI visual, or any other Consumer component.
- Table
- Provides a reference to the TableDependency associated with this column.
- This allows for tracking how tables and columns are used together.
- ModelColumn
- If available, this property provides a reference to the DAX Metadata representation of the column.
- Enables deeper analysis of column structure, relationships, and performance implications.
Relationships with Other Classes
The ColumnDependency
class interacts with multiple components in the TCDX model:
- ModelDependency → Links the column to the specific tabular model.
- TableDependency → Represents the table that contains the referenced column.
- Consumer → Stores column dependencies used within Excel, Power BI, or other client applications.
- Item → Represents individual objects (pivot tables, visuals) that reference specific columns.
- MeasureDependency → Captures measure dependencies that rely on a specific column.
Class Diagram Representation
ColumnDependency
├── Model : ModelDependency
├── TableName : TcdxName
├── ColumnName : TcdxName
├── Table : TableDependency
└── ModelColumn : Dax.Metadata.Column
- Item → references multiple
ColumnDependency
- ColumnDependency → belongs to
TableDependency
- ColumnDependency → belongs to
ModelDependency
- MeasureDependency → may reference
ColumnDependency
Conclusion
The ColumnDependency
class is a critical component of the TCDX object model, allowing for structured tracking of column-level dependencies in tabular models. By linking Consumers, Items, Tables, and Models, it provides valuable insights into how data is utilized.
This class is particularly useful for:
- Auditing → Understanding which columns are frequently used in reports and workbooks.
- Performance Optimization → Identifying unused or redundant columns that may impact model efficiency.
- Governance & Data Lineage → Ensuring compliance with best practices for data modeling and report design.
By integrating ColumnDependency
into the TCDX model, organizations can gain insights into tabular model usage and enhance data governance and performance across Power BI, Excel, and other reporting tools.
Note:
for privacy reasons, strings are implemented as TcdxName objects, to allow a future implementation of objects anonymization.