From cc37e3cacd24cef91ebdb7ca5d865b1a3f8ef493 Mon Sep 17 00:00:00 2001 From: greggyb Date: Tue, 27 Jan 2026 20:19:06 +0100 Subject: [PATCH 1/7] Add docs for Semantic Bridge MVP - feature docs - semantic bridge - metric view validation --- configuration/filterConfig.yml | 35 + content/_apiSource/SemanticBridge.dll | Bin 0 -> 284160 bytes content/_apiSource/SemanticBridge.xml | 4252 +++++++++++++++++ .../semantic-bridge-file-menu-import.png | Bin 0 -> 26606 bytes .../semantic-bridge-import-diagnostics.png | Bin 0 -> 42314 bytes .../semantic-bridge-import-failed.png | Bin 0 -> 8658 bytes ...ntic-bridge-import-success-with-issues.png | Bin 0 -> 8900 bytes .../semantic-bridge-import-success.png | Bin 0 -> 8875 bytes .../semantic-bridge-metric-view-details.png | Bin 0 -> 9430 bytes ...semantic-bridge-metric-view-validation.png | Bin 0 -> 65454 bytes ...emantic-bridge-metric-view-validation2.png | Bin 0 -> 60710 bytes ...emantic-bridge-metric-view-validation3.png | Bin 0 -> 100301 bytes content/features/index.md | 4 +- ...emantic-bridge-metric-view-object-model.md | 20 + .../semantic-bridge-metric-view-validation.md | 225 + content/features/semantic-bridge.md | 217 + content/features/toc.md | 39 +- 17 files changed, 4774 insertions(+), 18 deletions(-) create mode 100644 content/_apiSource/SemanticBridge.dll create mode 100644 content/_apiSource/SemanticBridge.xml create mode 100644 content/assets/images/features/semantic-bridge/semantic-bridge-file-menu-import.png create mode 100644 content/assets/images/features/semantic-bridge/semantic-bridge-import-diagnostics.png create mode 100644 content/assets/images/features/semantic-bridge/semantic-bridge-import-failed.png create mode 100644 content/assets/images/features/semantic-bridge/semantic-bridge-import-success-with-issues.png create mode 100644 content/assets/images/features/semantic-bridge/semantic-bridge-import-success.png create mode 100644 content/assets/images/features/semantic-bridge/semantic-bridge-metric-view-details.png create mode 100644 content/assets/images/features/semantic-bridge/semantic-bridge-metric-view-validation.png create mode 100644 content/assets/images/features/semantic-bridge/semantic-bridge-metric-view-validation2.png create mode 100644 content/assets/images/features/semantic-bridge/semantic-bridge-metric-view-validation3.png create mode 100644 content/features/semantic-bridge-metric-view-object-model.md create mode 100644 content/features/semantic-bridge-metric-view-validation.md create mode 100644 content/features/semantic-bridge.md diff --git a/configuration/filterConfig.yml b/configuration/filterConfig.yml index 1ff23c96..a7f328cb 100644 --- a/configuration/filterConfig.yml +++ b/configuration/filterConfig.yml @@ -1,4 +1,5 @@ apiRules: +# TabularEditor.Shared exclusions - exclude: uidRegex: ^TabularEditor\.Shared\.Services type: Namespace @@ -11,6 +12,40 @@ apiRules: - exclude: uidRegex: ^TabularEditor\.TOMWrapper\.Utils\.DaxDependencyHelper\.GetCachedSemantics type: Method + +# SemanticBridge exclusions - only expose SemanticBridgeService, DatabricksMetricViewService, and their dependencies +- exclude: + uidRegex: ^TabularEditor\.SemanticBridge\.ServiceInitializationResult + type: Type +- exclude: + uidRegex: ^TabularEditor\.SemanticBridge\.AbstractModel + type: Namespace +- exclude: + uidRegex: ^TabularEditor\.SemanticBridge\.Exceptions + type: Namespace +- exclude: + uidRegex: ^TabularEditor\.SemanticBridge\.Util + type: Namespace +- exclude: + uidRegex: ^TabularEditor\.SemanticBridge\.Platforms\.Databricks\.Exceptions + type: Namespace +- exclude: + uidRegex: ^TabularEditor\.SemanticBridge\.Platforms\.Databricks\.Mapping + type: Namespace +- exclude: + uidRegex: ^TabularEditor\.SemanticBridge\.Platforms\.Databricks\.MetricView\.Extensions + type: Namespace +- exclude: + uidRegex: ^TabularEditor\.SemanticBridge\.Platforms\.Databricks\.MetricView\.Serialization + type: Namespace +- exclude: + uidRegex: ^TabularEditor\.SemanticBridge\.Platforms\.Tabular + type: Namespace +- exclude: + uidRegex: ^TabularEditor\.SemanticBridge\.Orchestration\.(?!DiagnosticMessage|DiagnosticSeverity) + type: Type + +# Global exclusion for EditorBrowsable(Never) - exclude: hasAttribute: uid: System.ComponentModel.EditorBrowsableAttribute diff --git a/content/_apiSource/SemanticBridge.dll b/content/_apiSource/SemanticBridge.dll new file mode 100644 index 0000000000000000000000000000000000000000..71808c216dc26fd629d6e88a795cea093f9916df GIT binary patch literal 284160 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 L|4skeQsBP;3L3Ce literal 0 HcmV?d00001 diff --git a/content/_apiSource/SemanticBridge.xml b/content/_apiSource/SemanticBridge.xml new file mode 100644 index 00000000..b62ada94 --- /dev/null +++ b/content/_apiSource/SemanticBridge.xml @@ -0,0 +1,4252 @@ + + + + SemanticBridge + + + + + Base record for model objects with common properties + + + + + Base record for model objects with common properties + + + + + + + + + + + + + + + + + These are defined such that the success case is the lowest integral value. + + + + + Key of the field fragment that represents the primary key for this dimension. + If not set, no field will be marked as a key. + + + + + Ensure FactKey, DimensionKey, and RelationshipKey are all set, and that + the relationships are valid according to cardinality constraints: + fact to dim is N:1 and left-to-right. Additionally ensure that the + referenced fact knows about this dimension reference. + + + + + + Used as a placeholder source for dummy fact + + + + + Used as a placeholder for dimension references during construction. + Since Fact is a record, this creates a minimal instance rather than inheriting. + + + + + Used as a placeholder for fields during construction of an ITableLike + + + + + Always call after resolving fields + + + + + + Platform-specific expression for derived fields. + When set, the fragment builds to a DerivedField instead of a Field. + + + + + Gets the keys of all fields in this table-like fragment. + + + + + Ensure fragment is a valid part of a model. + + A collection of build errors found during resolution. + + Intended to be used as part of the model build process. + If errors are returned, then the model cannot have a fully successful + build; partial success is possible + + + + + Resolve left and right fields, check that cardinalities, kind, and + direction are set. If direction is not set, check whether sides are + fact and dimension: set to dimension filters fact. + + + Build errors: + - if missing or nonexistent field references + - if not a fact and dimension + - if any property is unset that is required for an Root.Relationship + + + + + + A field derived from a platform-specific expression. + Similar to CalculatedMeasure, this represents a computed value + that cannot be directly translated to DAX. + + + + + Mapping of platforms to platform-specific expressions implementing + the field calculation. + + + + + Data type of the derived field. + + + + + The table containing this field. + + + + + Constructor for DerivedField. + + Friendly name for display to users + Name for internal use by the OLAP engine + Prose describing the object + The table containing this field + Data type of the field + + Mapping of platforms to platform-specific expressions implementing + the calculation + + + + + Determines equality by comparing scalar properties and Expressions + dictionary contents. Excludes parent Table to avoid circular references. + + The other DerivedField to compare with + + True if both objects have equal scalar properties and equivalent Expressions + + + + + Generates hash code based on scalar properties and Expressions + dictionary contents. Excludes parent Table to avoid circular references. + + A hash code that remains consistent for equivalent objects + + + + Accepts a visitor for processing this DerivedField. + + + + + Context for analysis + + + + + Collection of descriptive properties + + + + + Technical name of the primary key field for this dimension. + Null if no primary key is explicitly defined. + + + + + Collection of hierarchies + + + + + Reference to source system and queryable or embedded query + + + + + Determines equality by comparing scalar properties and collection + contents order-independently. + + The other Dimension to compare with + + True if both objects have equal scalar properties and equivalent collections. + + + + + Generates hash code based on scalar properties and collection contents. + Fields property is not included since it's computed from Attributes. + + A hash code that remains consistent for equivalent objects + + + + Descriptive property in a dimension + + + + + Creates a DimensionAttribute from any IField, setting the dimension as the parent table. + + + + + Data type of the attribute + + + + + Field reference in the source; the TechnicalName of the source field. + + + + + Indicates if this attribute is a key + + + + + The underlying field this attribute wraps. + Used by visitors to determine if special handling is needed (e.g., DerivedField). + + + + + Determines equality by comparing scalar properties and underlying field type, + excluding parent Dimension to avoid circular references. + + The other DimensionAttribute to compare with + + True if both objects have equal scalar properties (excluding parent reference) + + + + + Generates hash code based on scalar properties excluding parent + Dimension to avoid circular references. + + A hash code that remains consistent for equivalent objects + + + + Determines equality by comparing scalar properties and child references, + excluding parent Fact to avoid circular references. + + The other DimensionReference to compare with + + True if both objects have equal scalar properties and equivalent child references + + + + + Generates hash code based on scalar properties and child references, + excluding parent Fact to avoid circular references. + + A hash code that remains consistent for equivalent objects + + + + Data types for attributes and measures + + + + + Permission levels for object rules + + + + + Represents a business event or measurement context + + + + + Collection of quantifiable values + + + + + Collection of dimension references + + + + + Type of fact + + + + + Reference to source system and queryable or embedded query + + + + + Determines equality by comparing scalar properties and collection contents order-independently. + + The other Fact to compare with + True if both objects have equal scalar properties and equivalent collections + + + + Generates hash code based on scalar properties and collection contents. + + A hash code that remains consistent for equivalent objects + + + + Type of fact table + + + + + Additivity types for measures + + + + + Aggregation types for measures + + + + + Determines equality by comparing scalar properties excluding parent + Table to avoid circular references. + + The other Field to compare with + + True if both objects have equal scalar properties (excluding + parent reference) + + + + + Generates hash code based on scalar properties excluding parent + Table to avoid circular references. + + A hash code that remains consistent for equivalent objects + + + + Logical path for drill-down analysis + + + + + Ordered collection of dimension attributes + + + + + Indicates if hierarchy has inconsistent depth + + + + + Determines equality by comparing scalar properties and Levels + collection contents. + + The other Hierarchy to compare with + True if both objects have equal scalar properties and equivalent Levels + + + + Generates hash code based on scalar properties and Levels + collection contents. + + A hash code that remains consistent for equivalent objects + + + + Common properties for all model objects + + + + + Friendly name for display to users + + + + + Name for internal use in formulas by the OLAP engine, potentially the same as Name + + + + + Prose describing the object + + + + + Represents a data source system that can be referenced by model objects + + + + + Type-specific identifier for this source system + + + + + Represents a source reference with query information + + + + + Reference to the source system + + + + + Database or catalog name + + + + + Marker interface for Abstract Model objects that can accept visitors. + All Abstract Model domain objects (Root, Fact, Dimension, Measure, etc.) + implement this. This interface enables the visitor pattern for + traversing the Abstract Model object graph. + + + + + Accepts a visitor that produces a result of type TResult. + The concrete type dispatches to the appropriate Visit overload on + the visitor based on its runtime type. + + The type of value produced by the visitor + The visitor to accept + The result produced by the visitor + + + + Visitor interface for the Abstract Model object graph. + Extends the generic IVisitor pattern with Abstract Model-specific + visitation methods. This interface enables type-safe transformation of + Abstract Model objects while supporting generic orchestration through + the base IVisitor interface. + + + The type of value produced by visiting Abstract Model objects + + + + + Visits a Root (the top-level Abstract Model container). + + + + + Visits a Fact (business event or measurement context). + + + + + Visits a Dimension (context for analysis). + + + + + Visits a DimensionReference (link between Fact and Dimension). + + + + + Visits a SimpleMeasure (quantifiable value with simple aggregation). + + + + + Visits a CalculatedMeasure (quantifiable value with + platform-specific calculation). + + + + + Visits a SimpleRelationship. + + + + + Visits a RolePlayingRelationship. + + + + + Visits a DimensionAttribute (descriptive property in a dimension). + + + + + Visits a Hierarchy (logical drill-down path). + + + + + Visits a Field. + + + + + Visits a DerivedField (field with platform-specific expression). + + + + + Visits a QueryableSource (source referring to a table/view). + + + + + Visits a QuerySource (source using custom query). + + + + + Visits a Perspective (named subset of model objects). + + + + + Visits a SecurityModel (access control specifications). + + + + + Visits a Role (security role definition). + + + + + Base record for measures with common properties + + + + + Display formatting + + + + + Constructor for base Measure record + + Friendly name for display to users + Name for internal use in formulas by the OLAP engine + Prose describing the object + Display formatting + Data type of the measure + + + + Accepts a visitor for the appropriate measure subtype. + + + + + Quantifiable value in a fact, with a simple aggregation + + + + + Field reference + + + + + Table containing the field + + + + + Additivity type + + + + + Collection of dimensions over which a semi-additive measure is additive + + + + + Aggregation type + + + + + Constructor for SimpleMeasure + + Friendly name for display to users + Name for internal use in formulas by the OLAP engine + Prose describing the object + Display formatting + Data type of the measure + Field reference + Table containing the field + Additivity type + + Collection of dimensions over which a semi-additive measure is additive + + Aggregation type + + + + Determines equality by comparing scalar properties and + AdditiveOverDimensions collection contents. + + The other SimpleMeasure to compare with + + True if both objects have equal scalar properties and equivalent collections + + + + + Generates hash code based on scalar properties and + AdditiveOverDimensions collection contents. + + A hash code that remains consistent for equivalent objects + + + + Quantifiable value in a fact, with a platform-specific calculation + + Currently no parsing, validation, or attempted translation for these + + + + Mapping of platforms to platform-specific expressions implementing + the calculation + + + + + Constructor for CalculatedMeasure + + Friendly name for display to users + Name for internal use in formulas by the OLAP engine + Prose describing the object + Display formatting + Data type of the measure + + Mapping of platforms to platform-specific expressions implementing + the calculation + + + + + Determines equality by comparing scalar properties and Expressions + dictionary contents. + + The other CalculatedMeasure to compare with + + True if both objects have equal scalar properties and equivalent Expressions + + + + + Generates hash code based on scalar properties and Expressions + dictionary contents. + + A hash code that remains consistent for equivalent objects + + + + Named subset of model objects for specific usage + + + + + Collection of included model objects + + + + + Documentation of intended users + + + + + Determines equality by comparing scalar properties and ModelObjects + collection contents. + + The other Perspective to compare with + + True if both objects have equal scalar properties and equivalent ModelObjects + + + + + Generates hash code based on scalar properties and ModelObjects + collection contents. + + A hash code that remains consistent for equivalent objects + + + + Cardinality of a field in a join/relationship + + + + + Abstract representation of a dimensional model + + + + + Collection of facts in the model + + + + + Collection of dimensions in the model + + + + + Collection of perspectives in the model + + + + + Security model + + + + + Determines equality by comparing scalar properties and collection contents order-independently. + + The other Root to compare with + True if both objects have equal scalar properties and equivalent collections + + + + Generates hash code based on scalar properties and collection contents. + + A hash code that remains consistent for equivalent objects + + + + Creates a dimension reference between a fact and dimension with a + simple equi-join relationship. + + Name of the fact to add the dimension reference to + Name of the dimension to reference + Foreign key field in the fact + Primary key field in the dimension + + Filter direction for the relationship (defaults to RightFiltersLeft) + + The created dimension reference + + + + Creates a dimension reference between a fact and dimension with a + simple equi-join relationship, looking up fields by name. + + Name of the fact to add the dimension reference to + Name of the dimension to reference + Name of the foreign key field in the fact + Name of the primary key field in the dimension + + Filter direction for the relationship (defaults to RightFiltersLeft) + + The created dimension reference + + + + Creates a dimension reference between a fact and dimension with the + specified relationship. + + Name of the fact to add the dimension reference to + Name of the dimension to reference + The relationship defining how fact and dimension connect + The created dimension reference + + + + Row level security rule + + + + + Row level security rule + + + + + Target table or dimension + + + + + Filter expression + + + + + Object level security rule + + + + + Object level security rule + + + + + Target object + + + + + Permission level + + + + + Security role definition + + + + + Expressions restricting data access by dimension values + + + + + Settings controlling object visibility + + + + + Users who belong to a given role + + + + + Determines equality by comparing scalar properties and collection contents. + + The other Role to compare with + + True if both objects have equal scalar properties and equivalent collections + + + + + Generates hash code based on scalar properties and collection contents. + + A hash code that remains consistent for equivalent objects + + + + Access control specifications + + + + + Collection of roles + + + + + Determines equality by comparing scalar properties and Roles + collection contents. + + The other SecurityModel to compare with + True if both objects have equal scalar properties and equivalent Roles + + + + Generates hash code based on scalar properties and Roles + collection contents. + + A hash code that remains consistent for equivalent objects + + + + Represents a source that refers to a specific queryable object (table/view) + + + + + Determines equality by comparing scalar properties and Fields + dictionary contents. + + The other QueryableSource to compare with + True if both objects have equal scalar properties and equivalent Fields + + + + Generates hash code based on scalar properties and Fields + dictionary contents. + + A hash code that remains consistent for equivalent objects + + + + Represents a source that uses a custom query + + + + + Determines equality by comparing scalar properties and Fields + dictionary contents. + + The other QuerySource to compare with + True if both objects have equal scalar properties and equivalent Fields + + + + Generates hash code based on scalar properties and Fields + dictionary contents. + + A hash code that remains consistent for equivalent objects + + + + Databricks source system + + + + Friendly name for display to users + Name for internal use by the OLAP engine + Description of the source system + Databricks host address + HTTP path for the Databricks workspace + Optional database name + Optional schema name + Optional port number (default is 443) + + + + Host name or IP address + + + + + HTTP path for the Databricks workspace + + + + + Port number (default is 443) + + + + + + + + Generates an M (Power Query) expression for the specified source. + Dispatches to type-specific generation methods based on ISource implementation. + + + The source to generate an M expression for (QueryableSource or QuerySource) + + M expression string that can be used in a Tabular Model partition + + Thrown when the source type is not supported + + + + + Generates M expression for a QueryableSource (table/view reference). + Creates Power Query M code that references a Databricks catalog object. + + + The queryable source containing database, schema, and object names + + M expression referencing the Databricks object + + + + Generates M expression for a QuerySource (custom SQL query). + Wraps a SQL query in Databricks connection context. + + The query source containing the SQL query text + M expression that executes the query against Databricks + + + + Determines equality by comparing scalar properties and Properties dictionary contents. + + The other GenericSourceSystem to compare with + True if both objects have equal scalar properties and equivalent Properties + + + + Generates hash code based on scalar properties and Properties dictionary contents. + + A hash code that remains consistent for equivalent objects + + + + ODBC source system + + + + Friendly name for display to users + Name for internal use by the OLAP engine + Description of the source system + DSN name or connection identifier + + + + DSN name or connection identifier + + + + + + + + SQL Server source system + + + + Friendly name for display to users + Name for internal use by the OLAP engine + Description of the source system + Server DNS name or IP address + Optional port number (default is 1433) + + + + Server DNS name or IP address + + + + + Port number for SQL Server connection + + + + + + + + Thrown in a mapping context when there is no way to represent a concept or + construct from the `SourceModel` in the `TargetModel`. Currently used both + for not-yet-supported and impossible-to-map. + + + + + + + + + Thrown in a mapping context when there is no way to represent a concept or + construct from the `SourceModel` in the `TargetModel`. Currently used both + for not-yet-supported and impossible-to-map. + + + + + + + + + Simple abstraction for checking if SemanticBridge feature is enabled. + This avoids circular dependency with TabularEditor3.Shared. + Internal to prevent license bypass - users cannot implement their own feature check. + + + + + Returns true if the SemanticBridge feature is enabled for the current license. + + + + + Generic visitor interface for traversing object graphs. + + + + + Databricks MetricView operations and state management service. + Manages a single current MetricView instance and provides operations for + loading, validation, and conversion to Tabular models. + + + + + Gets the currently loaded MetricView, or null if no view is loaded. + Use or to load a view. + + + + + Creates a new instance of the Databricks MetricView service. + This constructor is internal and should only be called by . + + + + + Loads a Databricks MetricView from a YAML file and sets it as the current view. + Loading a new view replaces any previously loaded view. + + Full path to the YAML file on disk. + Thrown when the YAML is invalid. + Thrown when the file does not exist. + + + + Deserializes a Databricks MetricView from a YAML string and sets it as the current view. + Deserializing a new view replaces any previously loaded view. + + The YAML string to deserialize. + Thrown when the YAML is invalid. + + + + Saves the currently loaded MetricView to a YAML file. + + The path where the YAML file should be saved. + Thrown when no MetricView is currently loaded. + Thrown when the file cannot be written. + + + + Serializes the currently loaded MetricView to a YAML string. + + The YAML representation of the current MetricView. + Thrown when no MetricView is currently loaded. + + + + Validates the currently loaded MetricView using default validation rules. + + An enumerable of diagnostic messages from validation. + Thrown when no MetricView is currently loaded. + + + + Validates the currently loaded MetricView using the provided custom validation rules. + Default rules are not applied unless explicitly included in the rules parameter. + + The validation rules to apply. + An enumerable of diagnostic messages from validation. + Thrown when no MetricView is currently loaded. + + + + Creates a context-aware validation rule for a specific MetricView object type. + The validation function receives both the object and the validation context. + + + Type of MetricView object the rule applies to (View, Join, Dimension, or Measure) + + Unique name for the validation rule + Category for organizational purposes (e.g., "Naming", "Structure") + + Validation function that receives the object and context, and returns diagnostic messages + + + A validation rule that can be used with + + + + + Creates a validation rule for a specific type of MetricView object with simple predicate validation. + + + Type of MetricView object the rule applies to (View, Join, Dimension, or Measure) + + Unique name for the validation rule + Category for organizational purposes (e.g., "Naming", "Structure") + Error message returned when the object is invalid + Predicate function that returns true when the object is invalid + + A validation rule that can be used with + + + + + Creates a validation rule for the root View object. + + Name of the rule. + Category for the rule. + Error message to return if validation fails. + Predicate function to determine if the view is invalid. + A validation rule for use in validation. + + + + Creates a validation rule specifically for Join objects. + + Unique name for the validation rule + Category for organizational purposes + Error message returned when the join is invalid + Predicate function that returns true when the join is invalid + A validation rule for Join objects + + + + Creates a validation rule specifically for Dimension objects. + + Unique name for the validation rule + Category for organizational purposes + Error message returned when the dimension is invalid + Predicate function that returns true when the dimension is invalid + A validation rule for Dimension objects + + + + Creates a validation rule for Measure objects. + + Unique name for the validation rule + Category for organizational purposes + Error message returned when the measure is invalid + Predicate function that returns true when the measure is invalid + A validation rule for Measure objects + + + + Converts the currently loaded Databricks MetricView to a Tabular Model. + + The target TOM model to populate. + Databricks host name for connection. + Databricks HTTP path for connection. + Diagnostic messages from validation and conversion. + If true, abort on validation errors before creating TOM objects. + True if conversion succeeded, false if critical errors occurred. + Thrown when no MetricView is currently loaded. + + + + Loads a MetricView from a YAML file and converts it to a Tabular Model in one operation. + + Full path to the YAML file to load. + The target TOM model to populate. + Databricks host name for connection. + Databricks HTTP path for connection. + Diagnostic messages from validation and conversion. + If true, abort on validation errors before creating TOM objects. + True if conversion succeeded, false if critical errors occurred. + + + + Throws InvalidOperationException if no MetricView is currently loaded. + + Thrown when no MetricView is currently loaded. + + + + Marker interface for all MetricView domain objects. + Used for type safety and identification in public API + + + + + Interface for validation rules that can be applied to metric view objects. + ValidMetricViewRules encapsulate a specific validation check that produces + diagnostic messages when validation fails. + + + + + Gets the unique name of the validation rule. + Names should be descriptive and indicate what the rule validates. + + + + + Gets the category of the validation rule for organizational purposes. + Categories help group related rules (e.g., "Names", "Structure", "Expressions"). + + + + + Gets the type of object this rule is designed to validate. + This allows for efficient filtering and application of rules. + + + + + Validates the target object using the provided read-only context. + ValidMetricViewRules receive a read-only view to prevent accidental + mutation of validation state. + + The object to validate + + Read-only validation context with state information including path tracking + and uniqueness collections + + + Collection of diagnostic messages for any validation failures, or an empty + collection if validation passes + + + + + This is a platform-specific interface that enables the visitor pattern + for traversing the MetricView object graph. + + + + + Accepts a visitor that produces a result of type TResult. + The concrete type dispatches to the appropriate Visit overload on + the visitor based on its runtime type (View, Join, Dimension, or + Measure). + + The type of value produced by the visitor + The visitor to accept + The result produced by the visitor + + + + Visitor interface for the MetricView object graph. + Extends the generic IVisitor pattern with MetricView-specific visitation methods. + This interface enables type-safe transformation of MetricView objects while + supporting generic orchestration through the base IVisitor interface. + + The type of value produced by visiting MetricView objects + + + + Visits a MetricView root object. + + + + + Visits a Join (dimension relationship) in the MetricView. + + + + + Visits a Dimension (attribute) in the MetricView. + + + + + Visits a Measure (metric) in the MetricView. + + + + + Entry point for generic visitor pattern orchestration. + Delegates to the visitable object's Accept method for double dispatch, + which calls back to the appropriate type-specific Visit method (View, Join, Dimension, or Measure). + This method enables generic orchestration code to work with MetricView objects + through the IVisitor interface while maintaining complete type safety. + The compiler enforces that only IMetricViewVisitable objects can be passed to this method. + + The MetricView object to visit (View, Join, Dimension, or Measure) + The builder with fragments added based on the visited object + + + + Create relationship and dimension reference fragments from the join. + Ensure that the fields referenced are in the fact and dimension. + Ensure the dimension exists. + + + + + + + Helper for managing field fragments during Metric View to Abstract Model mapping. + Handles field lookup, creation, and type updates for fields referenced by measures. + + + This helper encapsulates the logic for ensuring fields exist in both the fact table + and its source, managing data type updates when measures require Decimal types, + and searching for existing fields by name or technical name. + + + Creates a new FieldFragmentHelper for managing field fragments. + + The model builder containing all fragments + The fact fragment to manage fields for + The source fragment for the fact + + + + Helper for managing field fragments during Metric View to Abstract Model mapping. + Handles field lookup, creation, and type updates for fields referenced by measures. + + + This helper encapsulates the logic for ensuring fields exist in both the fact table + and its source, managing data type updates when measures require Decimal types, + and searching for existing fields by name or technical name. + + + Creates a new FieldFragmentHelper for managing field fragments. + + The model builder containing all fragments + The fact fragment to manage fields for + The source fragment for the fact + + + + Finds the field fragment key for a given column reference. + Searches fact fields first, then dimension fields. + Matches by technical name or name. + + The column reference to find + The field fragment key if found, otherwise null + + + + Ensures a field exists for a measure, creating one if needed. + For aggregations that imply numeric values (SUM, AVG, MIN, MAX), updates + existing String fields to Decimal. COUNT aggregations don't imply a + particular field type, so the field's DataType is preserved. + + Column reference from the measure expression + The aggregation type of the measure + Field fragment key for the field + + This method handles two scenarios: + + Field exists (e.g., created by a dimension): Updates DataType to Decimal + Field doesn't exist: Creates new field with Decimal type + + + + + + Updates an existing field fragment and its corresponding source field + to the specified DataType, but only if the current type is String. + Non-String types (e.g., Integer keys) are preserved. + + Key of the field fragment to update + New data type for the field + + + + Creates new field fragments (fact and source) for a measure that + references a non-existent field. + Both Name and TechnicalName are set to the column name. + + Column reference from the measure expression + Key of the created fact field fragment + + + + Traverses a MetricView object graph and returns all nodes using the visitor pattern. + + + + + Returns all objects in the MetricView graph. + + + + + Static wrapper/convenience class for use in C# scripts + + + + + Loads a MetricView from a YAML file + + full path to the yaml file on disk + an unvalidated MetricView + + thrown when the YAML is invalid, but doesn't check for internal + consistency of the model + + + + + Deserialize a MetricView from a YAML string + + the YAML string to deserialize + an unvalidated MetricView + + thrown when the YAML is invalid, but doesn't check for internal + consistency of the model + + + + + Serialize the MetricView to YAML and save to disk + + the MetricView to serialize + the path to save the YAML file + + + + Serialize a MetricView to a YAML string + + the MetricView to serialize + the serialized YAML string + + + + The default validation rules to use when validating MetricViews. + Automatically used when calling `Validate(MetricView)` overload + + + + + Validate a MetricView using the provided validator + + the MetricView to validate + the validator to use + enumerable of diagnostic messages resulting from the validation rules + + + + Validate a MetricView using the default set of validation rules + + MetricView to validate + enumerable of diagnostic messages resulting from the validation rules + The set of rules is available as `MetricViews.DefaultValidationRules` + + + + Validate a MetricView using the provided set of rules + + the MetricView to validate + the set of validation rules to apply + enumerable of diagnostic messages resulting from the validation rules + does not use any of the default rules unless you explicitly include these + + + + Make a new MetricViewValidationVisitor with the default set of rules + + a reusable MetricViewValidationVisitor to use as a validator + + + + Make a new MetricViewValidationVisitor with the provided set of + rules, optionally including the default rules + + the set of validation rules to use in the validator + + whether to include the default rules (default: `true`) + + a reusable MetricViewValidationVisitor to use as a validator + + + + Creates a validation rule for a specific type of MetricView object. + + + type of MetricView object the rule applies to. One of `MetricView`, + `MetricViewDimension`, `MetricViewJoin`, `MetricViewMeasure` + + name of the rule + category for the rule (you can use any text) + validation function + a validation rule for use in a validator + + the validation function `validate` is a function of two arguments: + 1. the metric view object to which the rule is applied + 2. the validation context + validation context is a `IReadOnlyValidationContext` object which + provides: + - `PathStack`: identifies the exact object currently being + examined, with all of its parents (in reverse order from this + object to the root). In general you probably don't need to do + much with this. + - `JoinNames`: set of strings of all join names already seen + during validation + - `DimensionNames`: set of strings of all dimension names already + seen + - `MeasureNames`: set of strings of all measure names already seen + - `MakeError(message, property)`: function to create a diagnostic + error. **You should use this to create the errors you return**. + The first arg is a string describing the error. The second arg + is an optional property name (e.g. "Name") to append to the path. + **Only use the name of a MetricView object property**, not any + arbitrary string. + Your function must return an enumerable of DiagnosticMessage objects. + If there are no problems, return an empty enumerable (e.g. `[]`). + If the object is invalid according to the rule (your conditional + checks), then return an enumerable with one or more errors created + with the context's `MakeError` method. You can inspect any properties + of the object (the first arg to your function) or anything in the + context object. + + + + + Create a validation rule for a specific MetricView object type + + + type of MetricView object the rule applies to. One of `MetricView`, + `MetricViewDimension`, `MetricViewJoin`, `MetricViewMeasure` + + name of the rule + category for the rule (you can use any text) + the message returned in the error if the object is invalid + a predicate function to determine if the object is invalid + a validation rule for use in a validator + + the function `isInvalid` is a simple predicate function that can + only inspect the properties of the current MetricView object. If you + need to inspect other context, you should use the other overload of + `MakeValidationRule` + + + + + Create a validation rule for the root MetricView object + + name of the rule + category for the rule (you can use any text) + the message returned in the error if the object is invalid + a predicate function to determine if the object is invalid + a validation rule for use in a validator + + + + Create a validation rule for MetricViewJoin objects + + name of the rule + category for the rule (you can use any text) + + the message returned in the error if the MetricViewJoin is invalid + + + a predicate function to determine if the MetricViewJoin is invalid + + a validation rule for use in a validator + + + + Create a validation rule for MetricViewDimension objects + + name of the rule + category for the rule (you can use any text) + + the message returned in the error if the MetricViewDimension is invalid + + + a predicate function to determine if the MetricViewDimension is invalid + + a validation rule for use in a validator + + + + Create a validation rule for MetricViewMeasure objects + + name of the rule + category for the rule (you can use any text) + + the message returned in the error if the MetricViewMeasure is invalid + + + a predicate function to determine if the MetricViewMeasure is invalid + + a validation rule for use in a validator + + + + Converts a Databricks MetricView to a Tabular Model. + + + The target TOM model to populate with tables, columns, measures, + and relationships + + The source MetricView to convert + Databricks host name for connection + Databricks HTTP path for connection + + A list of diagnostic messages indicating details of partial or full + failues. May be populated even when the method returns true and + does create a TOM model. + + + if true, abort on validation errors before creating any TOM objects + + + + + + + Represents a dimension definition in a Databricks Metric View + + + A dimension in a Metric View is a single field. There is no namespacing + or delineation of separate named collections of fields. + + + + + The YAML name for the dimension field + + + + + The YAML string representing the expression for this dimension, + either a field reference or scalar SQL expression. + + + + + Lightweight value representation of a single column reference within a + Metric View expression. The parser populates only + when a single (non‑backticked) dot qualification is present (or when a + backticked token acts as table side). For undotted identifiers (or + identifiers whose dot is inside backticks) is the + empty string. Formatting policy is intentionally minimal: only quote + when required. + + + Optional table/alias portion (empty string if not present or not applicable). + + + The logical column identifier (never null; empty only for a + default-initialized value). + + + + + Lightweight value representation of a single column reference within a + Metric View expression. The parser populates only + when a single (non‑backticked) dot qualification is present (or when a + backticked token acts as table side). For undotted identifiers (or + identifiers whose dot is inside backticks) is the + empty string. Formatting policy is intentionally minimal: only quote + when required. + + + Optional table/alias portion (empty string if not present or not applicable). + + + The logical column identifier (never null; empty only for a + default-initialized value). + + + + + Optional table/alias portion (empty string if not present or not applicable). + + + + + The logical column identifier (never null; empty only for a + default-initialized value). + + + + + Render the reference using minimal quoting rules consistent with + the parser. Rules per side (table / column): + - If empty -> omitted (for table) or empty string for column. + - Any token containing a dot is always backticked (avoids + ambiguity and preserves original backticked literals like + `orders.amount`). + - Bare identifier pattern [A-Za-z_][A-Za-z0-9_]* AND not a + reserved word -> emitted bare. + - Otherwise wrapped in backticks (parser strips existing backticks + so internal backticks not expected). + + + + + Lightweight, heuristic parser for extracting column identifiers from + Databricks Metric View expressions. Focused only on documented patterns + (bare identifiers and backtick-delimited identifiers) and deliberately + avoids full SQL parsing. Silent on malformed input, returning what can + be confidently identified. + + + + + Databricks reserved keywords that must be backtick-quoted to be + part of an identifier. + + + + + Attempt to determine if an expression is exactly a single column + reference. Returns a structured + (table + column). Supports: + * Bare identifier (non-reserved) + * Backticked identifier (any content except stray backticks) + * Single dotted qualification outside backticks (table.column) + with rules: + - At most one dot outside backticks (multi-dot => throw + ) + - No whitespace adjacent to the dot (spaced forms return false) + - BOTH sides must be bare (non-reserved) or individually + backticked. A bare reserved keyword is rejected on EITHER side; + backticks required to treat it literally. + * Entire expression backticked is treated as undotted column even + if inner text contains dots + All other forms return false (silent failure posture) except + multi-dot which throws. + + + + + Convenience wrapper over . + + + + + Extract distinct structured column references (first-seen order, + case-insensitive distinctness via linear scan). Dotted + (table.column) pairs are produced only when syntactically valid with + a single dot outside backticks and no whitespace adjacency. + Multi-dot contiguous sequences (a.b.c or variants mixing + backticked segments) throw . + Spaced-dot patterns yield separate undotted identifiers. Backticked + whole tokens with internal dots may still act as table side when + followed immediately by ".identifier" (e.g. + `orders.amount`.field -> table:"orders.amount", column:"field"). If + a backticked left side is followed by a bare reserved right side + (e.g. `orders`.CASE) both sides are skipped (zero references) to + avoid surfacing an unusable partial reference. Bare left reserved + (CASE.amount) is ignored and the right side is surfaced undotted. + Bare reserved right (orders.CASE) causes only the left side to be + surfaced undotted. Backticked right sides always pass regardless of + reserved status. Function heads (identifier immediately followed + by '(') are excluded. + + + + + Extract distinct structured column references with their source positions + (first-seen order, case-insensitive distinctness via linear scan). + Returns position information for each reference, enabling delimiter-aware parsing. + + + Position spans include the entire reference from start to end, including: + - Backticks (if present) + - Table qualification and dot (if present) + - Column name + Follows the same parsing rules as . + + + + + Parse one side of a potential dotted identifier (used only by + single-column detection). Bare reserved words are rejected on + BOTH sides; backticks required to treat them literally. + + + + + Remove all block (`/* ... */`) and line (`-- ...\n`) comments from + expr. Handles nested comments and normalizes line endings to `\n`. + + Databricks SQL expression + + A string with all comments removed, with '\n' line endings, and all + leading and trailing whitespace removed (this leading and trailing + space is trimmed after comment removal). Leading whitespace on an + individual line is not removed. + + + + + Represents the position and length of a column reference in source text. + Used for delimiter-aware parsing and error reporting. + + + + + Zero-based index where the column reference starts in the source string. + + + + + Length of the column reference in characters, including any backticks or qualifiers. + + + + + Zero-based index of the character after the last character of the reference. + + + + + Checks if a given position falls within this span. + + Zero-based character position to check + True if position is within [Start, End), false otherwise + + + + Creates a new span with the given start position and length. + + Zero-based start position + Length in characters + + Thrown when start or length is negative + + + + + A column reference with associated source position information. + Used when you need both the parsed reference and its location in source text. + + + + + The parsed column reference (table name and column name). + + + + + The position and length of this reference in the source text. + + + + + The table name (may be empty for unqualified references). + + + + + The column name. + + + + + Whether this is a qualified reference (table.column). + + + + + Zero-based start position in source text. + + + + + Length in characters. + + + + + Zero-based end position (exclusive). + + + + + Creates a new reference with position information. + + The parsed column reference + The position span in source text + + + + Creates a new reference with position information. + + The parsed column reference + Zero-based start position + Length in characters + + + + Checks if a given position falls within this reference's span. + + Zero-based character position + True if position is within this span, false otherwise + + + + Converts to SQL syntax (ignores position information). + + SQL representation of the column reference + + + + Represents the semantic analysis of a Databricks Metric View dimension. + Contains information about whether the dimension is a simple field reference + or a derived expression, along with field references and target table determination. + + + + This is a discriminated union represented through inheritance. + Use pattern matching to determine whether the dimension is simple or derived, + then access the appropriate properties. + + + A simple dimension is one that directly references a single column from + the source or a joined table. A derived dimension contains a complex + expression that must be represented as a calculated column in the target. + + + + + + The name of the dimension as it appears in the Metric View. + + + + + The complete expression string from the dimension. + + + + + Analysis result for a simple dimension that directly references a column. + + + + + The single field reference that this dimension maps to. + + + + + Analysis result for a derived dimension with a complex expression + that must be represented as a calculated column. + + + + + All column references found in the dimension expression. + + + + + The target table for the derived field. + This is determined by the source of the referenced fields: + - If all fields are from a single dimension, the derived field goes on that dimension + - If fields are from multiple tables or the source, the derived field goes on the fact + + + + + Represents the target table for a derived field. + + + + + The derived field should be placed on the fact table. + + + + + The derived field should be placed on a specific dimension table. + + + + + The name of the dimension (join alias) where the derived field belongs. + + + + + Extension methods for analyzing and converting Databricks Metric View dimensions. + + + + + Analyzes a dimension expression to determine if it's a simple field reference + or a complex derived expression, and identifies the target table. + + The Metric View dimension to analyze + + A DimensionAnalysis indicating whether the dimension is simple or derived, + with appropriate field references and target table information. + + + + + Determines the target table for a derived field based on the tables + referenced by its constituent fields. + + The column references from the expression + + A DerivedFieldTarget indicating whether the field should go on the fact + or a specific dimension table. + + + Target determination rules: + + All fields from source/empty table -> Fact + All fields from a single dimension -> that Dimension + Fields from multiple dimensions -> Fact + Mix of source and dimension fields -> Fact + + + + + + Parses join fields from MetricViewJoin. Handles 'Using' and 'On'. + Returns (factFieldKey, dimensionFieldKey) tuple or null if parsing fails. + + + + + Extracts LHS and RHS from an equality join expression + + + + + We do not handle inequality joins or fields with spaces in their names. + We expect fully qualified names on both sides. + See: https://docs.databricks.com/aws/en/metric-views/yaml-ref#joins + + + + + Creates a SourceFragment for a join's dimension source + + + + + Pattern:
+ ^\\s*(?<table1>\\w+)\\.(?<field1>\\w+)\\s*=\\s*(?<table2>\\w+)\\.(?<field2>\\w+)\\s*$
+ Explanation:
+ + â—‹ Match if at the beginning of the string.
+ â—‹ Match a whitespace character atomically any number of times.
+ â—‹ "table1" capture group.
+ â—‹ Match a word character atomically at least once.
+ â—‹ Match '.'.
+ â—‹ "field1" capture group.
+ â—‹ Match a word character atomically at least once.
+ â—‹ Match a whitespace character atomically any number of times.
+ â—‹ Match '='.
+ â—‹ Match a whitespace character atomically any number of times.
+ â—‹ "table2" capture group.
+ â—‹ Match a word character atomically at least once.
+ â—‹ Match '.'.
+ â—‹ "field2" capture group.
+ â—‹ Match a word character atomically at least once.
+ â—‹ Match a whitespace character greedily any number of times.
+ â—‹ Match if at the end of the string or if before an ending newline.
+
+
+
+ + + Represents the semantic analysis of a Databricks Metric View measure. + Contains information about the measure's type, aggregation function, + and field references extracted from the expression. + + + + This is a discriminated union represented through inheritance. + Use pattern matching or type checks to determine whether the measure + is simple or calculated, then access the appropriate properties. + + + A simple measure is one that can be translated to a basic aggregation in the + target platform. It must: + + + Use a supported aggregation function (SUM, COUNT, MIN, MAX, AVG, COUNT DISTINCT) + Reference exactly one field + Have no complex expressions (arithmetic, nested functions, etc.) + + + Calculated measures contain more complex expressions that cannot be automatically + translated and must be handled platform-specifically. + + + + + + The name of the measure as it appears in the Metric View. + + + + + The complete expression string from the measure. + + + + + Analysis result for a simple measure that can be directly translated + to a platform-specific aggregation. + + + + + The aggregation type (SUM, COUNT, MIN, MAX, AVG, DISTINCT COUNT). + + + + + The single field reference that this measure aggregates. + + + + + Analysis result for a calculated measure with a complex expression + that cannot be automatically translated. + + + + + All column references found in the measure expression. + May contain zero or more references depending on the expression. + + + + + Analyzes a Databricks Metric View measure to determine its semantic properties. + + The measure to analyze + + A - either + or . Use pattern matching or type checks + to determine which and access the appropriate properties. + + + + A simple measure is one that can be translated to a basic aggregation in the + target platform. It must: + + + Use a supported aggregation function (SUM, COUNT, MIN, MAX, AVG, COUNT DISTINCT) + Reference exactly one field + Have no complex expressions (arithmetic, nested functions, etc.) + + + Calculated measures contain more complex expressions that cannot be automatically + translated and must be handled platform-specifically. + + + + + + Parses an aggregation function name from a measure expression and + maps it to AggregationType. + Supports: SUM, COUNT, MIN, MAX, AVG/AVERAGE, COUNT(DISTINCT ...) + + + + + Determines if a measure expression is a simple aggregation over a + single field. A simple aggregation has the pattern: + AGG_FUNCTION(field_reference) or COUNT(DISTINCT field_reference) + + + + Uses a two-step validation approach: + 1. Extract all column references from the expression using robust ColumnReferenceParser + 2. Validate that expression structure is exactly FUNCTION(column) with no extra content + + + This approach handles all edge cases while preserving original quoting/formatting: + + + Backticked identifiers with any content (including parentheses) + Reserved word validation + Qualified references (table.column) + Superfluous quoting (validates structure, not exact string match) + DISTINCT COUNT patterns + + + + + + Pattern:
+ ^(SUM|COUNT|MIN|MAX|AVG|AVERAGE)\\s*\\(
+ Options:
+ RegexOptions.IgnoreCase
+ Explanation:
+ + â—‹ Match if at the beginning of the string.
+ â—‹ 1st capture group.
+ â—‹ Match with 4 alternative expressions.
+ â—‹ Match a sequence of expressions.
+ â—‹ Match a character in the set [Ss].
+ â—‹ Match a character in the set [Uu].
+ â—‹ Match a character in the set [Mm].
+ â—‹ Match a sequence of expressions.
+ â—‹ Match a character in the set [Cc].
+ â—‹ Match a character in the set [Oo].
+ â—‹ Match a character in the set [Uu].
+ â—‹ Match a character in the set [Nn].
+ â—‹ Match a character in the set [Tt].
+ â—‹ Match a sequence of expressions.
+ â—‹ Match a character in the set [Mm].
+ â—‹ Match with 2 alternative expressions.
+ â—‹ Match a sequence of expressions.
+ â—‹ Match a character in the set [Ii\u0130].
+ â—‹ Match a character in the set [Nn].
+ â—‹ Match a sequence of expressions.
+ â—‹ Match a character in the set [Aa].
+ â—‹ Match a character in the set [Xx].
+ â—‹ Match a sequence of expressions.
+ â—‹ Match a character in the set [Aa].
+ â—‹ Match a character in the set [Vv].
+ â—‹ Match with 2 alternative expressions.
+ â—‹ Match a character in the set [Gg].
+ â—‹ Match a sequence of expressions.
+ â—‹ Match a character in the set [Ee].
+ â—‹ Match a character in the set [Rr].
+ â—‹ Match a character in the set [Aa].
+ â—‹ Match a character in the set [Gg].
+ â—‹ Match a character in the set [Ee].
+ â—‹ Match a whitespace character atomically any number of times.
+ â—‹ Match '('.
+
+
+
+ + + Pattern:
+ ^COUNT\\s*\\(\\s*DISTINCT\\s+
+ Options:
+ RegexOptions.IgnoreCase
+ Explanation:
+ + â—‹ Match if at the beginning of the string.
+ â—‹ Match a character in the set [Cc].
+ â—‹ Match a character in the set [Oo].
+ â—‹ Match a character in the set [Uu].
+ â—‹ Match a character in the set [Nn].
+ â—‹ Match a character in the set [Tt].
+ â—‹ Match a whitespace character atomically any number of times.
+ â—‹ Match '('.
+ â—‹ Match a whitespace character atomically any number of times.
+ â—‹ Match a character in the set [Dd].
+ â—‹ Match a character in the set [Ii\u0130].
+ â—‹ Match a character in the set [Ss].
+ â—‹ Match a character in the set [Tt].
+ â—‹ Match a character in the set [Ii\u0130].
+ â—‹ Match a character in the set [Nn].
+ â—‹ Match a character in the set [Cc].
+ â—‹ Match a character in the set [Tt].
+ â—‹ Match a whitespace character atomically at least once.
+
+
+
+ + + Identifies the aggregation pattern and returns where content starts. + + The expression to analyze + The position where content starts after the aggregation pattern, or null if no pattern found + + + + Validates that the closing paren is at the end of the expression. + Only whitespace is allowed after the closing paren. + + The expression to validate + The index of the closing parenthesis + True if closing paren is properly positioned, false otherwise + + + + Extracts and trims content between two positions. + + The expression containing the content + Start position (inclusive) + End position (exclusive) + The extracted and trimmed content, or null if invalid range or empty + + + + Finds the matching closing paren for an opening paren at given index. + Handles nested parentheses correctly and skips parentheses inside + excluded spans (e.g., backticked identifiers). + + The string to search within + The index of the opening parenthesis + + Spans to exclude from paren matching (e.g., backticked identifiers). + Any parentheses within these spans are ignored. + + The index of the matching closing parenthesis, or -1 if not found + + + + Checks if a position falls within any excluded span. + + The position to check + The list of excluded spans + True if position is within any span, false otherwise + + + + Extracts the content inside aggregation function parentheses. + For DISTINCT COUNT, treats DISTINCT as part of the aggregation spec. + AGG_FUNCTION(content) -> returns "content" + COUNT(DISTINCT content) -> returns "content" (DISTINCT is part of + aggregation). + Returns null if pattern doesn't match or has invalid structure. + + + Uses position-aware column reference parsing to correctly handle + parentheses inside backticked identifiers (e.g., `Field) Name`). + + The aggregation expression to parse + The content between parentheses, or null if extraction fails + + + + Validates that expression has the structure of a simple aggregation. + Extracts content between parens and validates it's a single column reference. + Since ExtractAggregationContent now treats DISTINCT as part of the aggregation, + no special handling is needed for DISTINCT COUNT. + + + + + Converts a Databricks Metric View Measure to a MeasureFragment, + handling field lookup/creation and determining measure type. + + The Metric View measure to convert + The Metric View containing the measure + The fact fragment to associate the measure with + The model builder for fragment management + A configured MeasureFragment ready to be added to the model + + + This method bridges the gap between measure analysis and fragment creation: + + + Analyzes the measure using + For simple measures: ensures field exists and creates aggregation fragment + For calculated measures: creates expression-based fragment + + + Simple measures get a FieldKey and AggregationType. + Calculated measures get an Expression and no AggregationType. + + + + + + Determines the appropriate DataType for a simple measure based on its aggregation type. + Count and DistinctCount produce integer results; other aggregations produce Decimal. + + + + + Extension methods for traversing a MetricView object graph by canonical + path string. + + + + + Parses a 3-part SQL table name into its constituent parts. + + The source string to parse + Database, schema, and table names if parsing succeeds; null otherwise + + + + Creates a SourceFragment with queryable properties if the source is + a 3-part table name, otherwise creates one with a query property. + + The source string to create a fragment for + The fragment key + The fragment name + The source system key reference + A configured SourceFragment + + + + Removes backticks from identifier if present. + + The identifier to clean + The cleaned identifier without surrounding backticks + + + + Pattern:
+ ^(?<database>[a-zA-Z_][a-zA-Z0-9_]*|`[^`]+`)\\.(?<schema>[a-zA-Z_][a-zA-Z0-9_]*|`[^`]+`)\\.(?<table>[a-zA-Z_][a-zA-Z0-9_]*|`[^`]+`)$
+ Options:
+ RegexOptions.Compiled
+ Explanation:
+ + â—‹ Match if at the beginning of the string.
+ â—‹ "database" capture group.
+ â—‹ Match with 2 alternative expressions.
+ â—‹ Match a sequence of expressions.
+ â—‹ Match a character in the set [A-Z_a-z].
+ â—‹ Match a character in the set [0-9A-Z_a-z] atomically any number of times.
+ â—‹ Match a sequence of expressions.
+ â—‹ Match '`'.
+ â—‹ Match a character other than '`' atomically at least once.
+ â—‹ Match '`'.
+ â—‹ Match '.'.
+ â—‹ "schema" capture group.
+ â—‹ Match with 2 alternative expressions.
+ â—‹ Match a sequence of expressions.
+ â—‹ Match a character in the set [A-Z_a-z].
+ â—‹ Match a character in the set [0-9A-Z_a-z] atomically any number of times.
+ â—‹ Match a sequence of expressions.
+ â—‹ Match '`'.
+ â—‹ Match a character other than '`' atomically at least once.
+ â—‹ Match '`'.
+ â—‹ Match '.'.
+ â—‹ "table" capture group.
+ â—‹ Match with 2 alternative expressions.
+ â—‹ Match a sequence of expressions.
+ â—‹ Match a character in the set [A-Z_a-z].
+ â—‹ Match a character in the set [0-9A-Z_a-z] atomically any number of times.
+ â—‹ Match a sequence of expressions.
+ â—‹ Match '`'.
+ â—‹ Match a character other than '`' atomically at least once.
+ â—‹ Match '`'.
+ â—‹ Match if at the end of the string or if before an ending newline.
+
+
+
+ + + Represents a join definition in a Databricks Metric View + + + + + Name of the joined table + + + + + Source table or query for the join + + + + + Optional SQL boolean expression for the join condition + + + + + Optional list of column names to use for join + + + + + Child joins that are part of this join definition + + + + + Represents a measure definition in a Databricks Metric View + + + + + Aggregate SQL expression that defines the measure + + + + + Internal abstract base class for all MetricView domain objects. + Implements both the public marker interface and the internal visitable interface. + + + + + Accepts a visitor that produces a result of type TResult. + Must be implemented by derived domain objects. + + + + + Validator for MetricView objects after YAML deserialization. Collects + all validation errors. Intentionally a very limited set of rules. We + don't own the metric view spec, so this should be somewhat permissive + and only return an error for very obvious issues that should be + impossible. + + + + + Handles deserialization of Databricks Metric Views from YAML + + + + + Deserializes a YAML string into a MetricView object + + The YAML string to deserialize + A MetricView object + If YAML is invalid or cannot be deserialized + + If semantic validation fails, contains one or more + for each validation error. + + + + + Handles serialization of Databricks Metric Views to YAML + + + + + Serializes a MetricView object to a YAML string + + The MetricView object to serialize + A YAML string representation + + + + Represents a Databricks Metric View definition + + + + + Version of the metric view specification + + + + + The source data for the metric view, playing the role of a single fact + + + + + Optional SQL boolean expression that applies to all queries; a WHERE + + + + + Optional join definitions for the metric view + + + A join is also the place where dimension sources are defined; this + information exists nowhere else. + + + + + Array of dimension definitions + + + + + Array of measure definitions + + + + + Provides the default set of validation rules that match the current + implementation of MetricViewValidationVisitor. + + + + + Returns validation rules for the specified type. + + The type of object to get rules for. + ValidMetricViewRules that apply to the specified type. + + + + Returns validation rules in the specified category. + + The category of rules to get. + ValidMetricViewRules that belong to the specified category. + + + + Returns validation rules with the specified name. + + The name of the rule to find. + The rule with the specified name, or null if not found. + + + + Visitor that validates a MetricView object graph using configurable rules. + + + + + Visitor that validates a MetricView object graph using configurable rules. + + + + + The validation rules which will be applied during traversal. + + + + + Creates a new validation visitor with only the specified rules. + + The validation rules to apply + + + + Creates a new validation visitor with the default rules. + + + + + Creates a new validation visitor with the default rules and optional extra rules. + + Extra rules to be used in traversal of the metric view + + + + + Validates a MetricView object by applying all applicable rules and + traversing its structure. + + + + + Validates a MetricViewJoin object by applying all applicable rules and + traversing any child joins. + + + + + Validates a MetricViewDimension object by applying all applicable rules. + + + + + Validates a MetricViewMeasure object by applying all applicable rules. + + + + + Applies all applicable validation rules to the target object. + A rule receives a read-only view of the validation context to prevent + accidental mutation. + + The type of object being validated + type-appropriate rules to be applied to `target` + The object to validate + + + + Reset all state in the validation context to ensure idempotent operation. + + + + + Read-only view of validation context state for consumption by validation rules + + + + + Read-only view of the stack tracking the current path in the object graph. + + + + + Read-only view of join names seen during traversal for uniqueness validation + + + + + Read-only view of dimension names seen during traversal for + uniqueness validation + + + + + Read-only view of measure names seen during traversal for + uniqueness validation + + + + + Creates a diagnostic error message with the current path context + + The error message + The property that has the error + A DiagnosticMessage with Error severity + + + + Mutable validation context for internal validation orchestration. + Extends the read-only interface with mutation capabilities. + This interface is internal to restrict mutation operations to the + validation framework. + + + + + Mutable stack tracking the current path in the object graph + + + + + Mutable set of join names seen during traversal for uniqueness validation + + + + + Mutable set of dimension names seen during traversal for + uniqueness validation + + + + + Mutable set of measure names seen during traversal for uniqueness validation + + + + + Resets the context state for a new validation run, ensuring idempotent operation + + + + + Context object that maintains state during validation traversal of a + MetricView object graph. + External consumers can instantiate this but can only access mutation + capabilities within the same assembly. + + + + + Creates a diagnostic error message with the current path context + + The error message + The property that has the error + A DiagnosticMessage with Error severity + + + + Resets the context state for a new validation run, ensuring idempotency + internal only. Public consumers only see the readonly interface. + + + + + Combines the path stack elements into a dot-notation path string + + Optional property to append to the path + The combined path as a string + + + + Generic implementation of a validation rule for a specific type of + MetricView object. + + The type of object this rule validates + + + + Generic implementation of a validation rule for a specific type of + MetricView object. + + The type of object this rule validates + + + + Gets the type of object this rule is designed to validate. + + + + + Validates the target object if it matches the expected type. + + The object to validate + The read-only validation context + + Collection of diagnostic messages for validation failures, or an + empty collection if validation passes + + + + + Maps Abstract Model DataType to Tabular Object Model DataType. + + + + + Extension methods for mapping SimpleMeasure to Tabular Model DAX + + + + + Generates a DAX expression for a SimpleMeasure. + Returns a diagnostic message on failure. + + The SimpleMeasure to generate DAX for + The TOM model context + + map of Abstract model names to names of created tables in TOM model + + The generated DAX expression, or null on failure + A diagnostic message if validation fails, otherwise null + + + + Maps an AggregationType to the corresponding DAX function name. + Returns null if the aggregation type is not supported. + + + + + Extension methods for mapping SimpleRelationship to Tabular Model relationships. + + + + + Creates a TOM relationship from a SimpleRelationship. + Returns a diagnostic message on failure. + + + + + Determines the direction of a relationship based on cardinality. + Returns the many-side field, one-side field, and their respective tables. + + + + + Maps Abstract Model FilterDirection to TOM CrossFilteringBehavior. + + + + + Visitor that maps from an Abstract Model to a Tabular (TOM) Model. + Traverses the Abstract Model object graph and mutates the provided TOM Model. + + + Creates a new visitor that will populate the specified Tabular model. + + The TOMWrapper Model to populate with Abstract Model data + + + + Visitor that maps from an Abstract Model to a Tabular (TOM) Model. + Traverses the Abstract Model object graph and mutates the provided TOM Model. + + + Creates a new visitor that will populate the specified Tabular model. + + The TOMWrapper Model to populate with Abstract Model data + + + + Entry point for generic visitor pattern orchestration. + Delegates to the visitable object's Accept method for double dispatch. + + + + + Visits the Root of the Abstract Model. + Traverses Facts, Dimensions, Perspectives, and SecurityModel. + + + + + Visits a Fact. + Creates a TOM Table and sets up context for child visitors. + Traverses Source, Fields, Measures, and DimensionReferences. + + + + + Visits a Dimension. + Creates a TOM Table and sets up context for child visitors. + Traverses Source , Attributes, and Hierarchies. + + + + + Visits a DimensionReference. + Sets context for relationship visitor and delegates relationship creation. + + + + + Visits a SimpleMeasure. + Generates a DAX expression based on aggregation type and creates a TOM measure. + + + + + Visits a CalculatedMeasure. + + + + + Visits a SimpleRelationship. + Creates a TOM relationship between the current table and the dimension table. + + + + + Visits a RolePlayingRelationship. + Currently not implemented - role-playing dimensions require special handling. + + + + + Visits a DimensionAttribute. + Creates a data column using the attribute's name and referencing + the source field, or delegates to DerivedField visitor if underlying field is derived. + + + + + Visits a Hierarchy. + Traverses Levels (which are DimensionAttributes). + + + + + Visits a Field. + Fields on sources are metadata and don't create columns. + Fields on facts create data columns. + + + + + Visits a DerivedField. + Creates a TOM CalculatedColumn with the original expression in a DAX comment. + + + + + Visits a QueryableSource. + Creates a TOM M partition with generated expression from the source system. + Must be called within a table context (set by Visit(Fact) or Visit(Dimension)). + + + + + Visits a QuerySource. + Creates a TOM M partition with generated expression from the source system. + Must be called within a table context (set by Visit(Fact) or Visit(Dimension)). + + + + + Visits a Perspective. + Note: ModelObjects in perspectives are not visitable, so we don't traverse them. + + + + + Visits a SecurityModel. + Traverses Roles. + + + + + Visits a Role. + + + + + Main entry point for cross-platform semantic model operations. + + + + Access Pattern: This service is accessed via ScriptHost.SemanticBridge in C# scripts. + It is initialized once during application startup in the main routine + and remains constant for the application lifetime. + + + Lifecycle: Unlike ScriptHost.Model and ScriptHost.Selected, which are set per + script execution, SemanticBridge is an application-level singleton service. This allows service state + (such as the currently loaded MetricView) to persist across multiple script executions. + + + Feature Flag: Requires the SemanticBridge feature flag to be enabled for the current license tier. + Construction will fail with if the feature is not enabled. + + + + Load and validate a MetricView in a C# script: + + SemanticBridge.MetricView.Load(@"C:\path\to\metricview.yaml"); + var diagnostics = SemanticBridge.MetricView.Validate(); + foreach (var diag in diagnostics) + { + Output($"{diag.Severity}: {diag.Message}"); + } + + Import a MetricView into the current Tabular model: + + SemanticBridge.MetricView.Load(@"C:\path\to\metricview.yaml"); + var success = SemanticBridge.MetricView.ImportToTabular( + Model, + "databricks-host.cloud.databricks.com", + "/sql/1.0/warehouses/abc123", + out var diagnostics); + if (!success) + { + foreach (var error in diagnostics) + Error($"Import failed: {error.Message}"); + } + + + + + + + + Gets the Databricks MetricView operations and state management service. + + + This service manages a single MetricView instance at a time. Loading a new MetricView + replaces the current view. The view state persists across multiple script executions. + + + + + Create a new instance of the SemanticBridgeService. + Only intended to be called in the `TryCreate` method with feature + flag checks and wrapping in a `ServiceInitializationResult`. + + + + + Attempts to create a SemanticBridgeService instance with structured error handling. + + + + This factory method uses the Result pattern to provide explicit handling of different failure modes: + - : Service initialized successfully + - : Feature not enabled for license + - : Unexpected initialization error + + + The Result includes the service instance when successful, making it self-contained and easy to use. + + + Feature check implementation to determine if SemanticBridge is enabled + + A containing either the initialized service instance + or detailed information about why initialization failed. + + + Initialize service with explicit error handling: + + var result = SemanticBridgeService.TryCreate(featureCheck); + + switch (result) + { + case ServiceInitializationResult.Success success: + ScriptHost.SemanticBridge = success.Service; + break; + + case ServiceInitializationResult.LicenseFailure license: + // Expected failure - log if needed + telemetry.TrackEvent("SemanticBridge.LicenseNotEnabled"); + break; + + case ServiceInitializationResult.InitializationFailure failure: + // Unexpected failure - log with details + telemetry.TrackException(failure.Exception, "SemanticBridge.InitializationFailure"); + break; + } + + + + + + Represents the result of attempting to initialize the SemanticBridge service. + This discriminated union provides structured error handling that distinguishes + between license restrictions, unexpected failures, and successful initialization. + + + The Result pattern encapsulates both the success/failure state and the service instance, + allowing callers to handle different failure modes explicitly while maintaining access + to the initialized service when successful. + + + + + Helpful information for the user about the success or failure of + the service initialization, with instructions or details in the + case of failure. + + + + + Service was successfully initialized and is ready for use. + The service instance is available via pattern matching (see + example) + + + var initResult = SemanticBridgeService.TryCreate(semanticBridgeFeatureCheck); + switch (initResult) + { + case ServiceInitializationResult.Success success: + var service = success.Service; + // use `service` for work + break; + case ServiceInitializationResult.SomeOtherCase otherCase: + //handle other case + ... + } + + The successfully initialized SemanticBridgeService instance + + + + Service was successfully initialized and is ready for use. + The service instance is available via pattern matching (see + example) + + + var initResult = SemanticBridgeService.TryCreate(semanticBridgeFeatureCheck); + switch (initResult) + { + case ServiceInitializationResult.Success success: + var service = success.Service; + // use `service` for work + break; + case ServiceInitializationResult.SomeOtherCase otherCase: + //handle other case + ... + } + + The successfully initialized SemanticBridgeService instance + + + The successfully initialized SemanticBridgeService instance + + + + Service initialization failed due to licensing restrictions. + The SemanticBridge feature is not enabled for the current license + tier and the user should reach out to support to acquire an + appropriate license. + + + + + Service initialization failed due to an unexpected error beyond licensing. + This typically indicates a configuration or dependency resolution issue. + + Description of the initialization failure + The underlying exception, if available + + + + Service initialization failed due to an unexpected error beyond licensing. + This typically indicates a configuration or dependency resolution issue. + + Description of the initialization failure + The underlying exception, if available + + + The underlying exception, if available + + + + Indicates whether initialization was successful. + This convenience property allows simple boolean checks without pattern matching. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Fragment key cannot be null or empty.. + + + + + Looks up a localized string similar to Fragment with key '{0}' is not of type {1}.. + + + + + Looks up a localized string similar to Fragment with key '{0}' not found. + + + + + Looks up a localized string similar to Model. + + + + + Looks up a localized string similar to Could not parse join fields for join '{0}'.. + + + + + Looks up a localized string similar to Join expression must reference 'source' table for fact side. Got: '{0}'. + + + + + Looks up a localized string similar to Multiple join conditions are not yet supported. Join '{0}' has {1} conditions.. + + + + + Looks up a localized string similar to We do not currently support snowflake joins. Join: {0}. + + + + + Looks up a localized string similar to Cannot find dimension fragment with key '{0}' for dimension reference. + + + + + Looks up a localized string similar to Cannot find fact fragment with key '{0}' for dimension reference. + + + + + Looks up a localized string similar to Cannot find left field fragment with key '{0}' for dimension reference. + + + + + Looks up a localized string similar to Cannot find relationship fragment for dimension reference. + + + + + Looks up a localized string similar to Cannot find right field fragment with key '{0}' for dimension reference. + + + + + Looks up a localized string similar to Failed to add dimension reference: {0}. + + + + + + Looks up a localized string similar to CalculatedMeasure '{0}' does not have any expressions defined.. + + + + + Looks up a localized string similar to Cannot visit measure '{0}' without a current table context.. + + + + + Looks up a localized string similar to DerivedField '{0}' contains a complex expression that could not be translated to DAX. The original expression has been preserved as a comment.. + + + + + Looks up a localized string similar to DerivedField '{0}' does not have any expressions defined.. + + + + + Looks up a localized string similar to Dimension table '{0}' does not exist in the model.. + + + + + Looks up a localized string similar to DimensionAttribute '{0}' references source field '{1}' which does not exist in the source's field collection.. + + + + + Looks up a localized string similar to Mapping CalculatedMeasure '{0}' to Tabular Model is not yet implemented.. + + + + + Looks up a localized string similar to Measure '{0}' contains a complex expression that could not be translated to DAX. The original expression has been preserved as a comment.. + + + + + Looks up a localized string similar to Multiple dots in column reference are unsupported (multi-part qualification).. + + + + + Looks up a localized string similar to Length must be non-negative. + + + + + Looks up a localized string similar to Start position must be non-negative. + + + + + Looks up a localized string similar to No MetricView is currently loaded. Call Load() or Deserialize() first.. + + + + + Looks up a localized string similar to DataType '{0}' is not supported for mapping to Tabular Model.. + + + + + Looks up a localized string similar to Join '{0}' must use exactly one column in the 'using' clause for the MVP implementation. + + + + + Looks up a localized string similar to Measure '{0}' must use a simple aggregate function (SUM, COUNT, MIN, MAX, AVG) for the MVP implementation. + + + + + Looks up a localized string similar to Join '{0}' must use a simple equality condition with table prefixes (e.g. 'source.column = dimension.column'). + + + + + Looks up a localized string similar to Dimension '{0}' expr cannot be empty. + + + + + Looks up a localized string similar to Dimension name cannot be empty. + + + + + Looks up a localized string similar to Duplicate dimension name: '{0}'. + + + + + Looks up a localized string similar to Duplicate join name: '{0}'. + + + + + Looks up a localized string similar to Duplicate measure name: '{0}'. + + + + + Looks up a localized string similar to Expressions. + + + + + Looks up a localized string similar to Join '{0}' cannot specify both 'on' and 'using' clauses. + + + + + Looks up a localized string similar to Join '{0}' must have at least one column specified in the 'using' clause. + + + + + Looks up a localized string similar to Join '{0}' must specify either 'on' or 'using' clause. + + + + + Looks up a localized string similar to Join '{0}' source cannot be empty. + + + + + Looks up a localized string similar to Join name cannot be empty. + + + + + Looks up a localized string similar to Measure '{0}' expr cannot be empty. + + + + + Looks up a localized string similar to Measure name cannot be empty. + + + + + Looks up a localized string similar to Names. + + + + + Looks up a localized string similar to Structure. + + + + + Looks up a localized string similar to dimension expr cannot be empty. + + + + + Looks up a localized string similar to dimension name cannot be empty. + + + + + Looks up a localized string similar to join name cannot be empty. + + + + + Looks up a localized string similar to join source cannot be empty. + + + + + Looks up a localized string similar to measure expr cannot be empty. + + + + + Looks up a localized string similar to measure name cannot be empty. + + + + + Looks up a localized string similar to Structure. + + + + + Looks up a localized string similar to view source cannot be empty. + + + + + Looks up a localized string similar to A DimensionAttribute with the same name already exists for dimension {0}. Field: {1}.. + + + + + Looks up a localized string similar to Cannot access dimension before it is set.. + + + + + Looks up a localized string similar to Dimension Attribute key cannot be null or empty.. + + + + + Looks up a localized string similar to Primary key field '{0}' not found in dimension fields. + + + + + Looks up a localized string similar to Relationship key cannot be null or empty.. + + + + + Looks up a localized string similar to We do not yet support multiple relationships for a single dimension reference. DimRef: '{0}'; existing relationship: '{1}'. + + + + + Looks up a localized string similar to Dimension '{0}' not found in built objects. Dimensions must be built before dimension references.. + + + + + Looks up a localized string similar to Relationship '{0}' could not be built or is not a relationship type. + + + + + Looks up a localized string similar to No relationship key has been set yet.. + + + + + Looks up a localized string similar to Ambiguity resolving dimension reference. Dimension key already assigned as: '{0}', but relationship '{1}' refers to '{2}'. + + + + + Looks up a localized string similar to Ambiguity resolving fact reference. Fact key already assigned as: '{0}', but relationship '{1}' refers to '{2}'. + + + + + Looks up a localized string similar to Dimension reference '{0}' not found.. + + + + + Looks up a localized string similar to Fact reference '{0}' not found.. + + + + + Looks up a localized string similar to Failed to find dimension for relationship, '{0}'.. + + + + + Looks up a localized string similar to Failed to find fact for relationship '{0}'. + + + + + Looks up a localized string similar to Failed to find LHS fact for relationship, '{0}'.. + + + + + Looks up a localized string similar to Failed to find RHS dimension for relationship, '{0}'.. + + + + + Looks up a localized string similar to Left field reference '{0}' not found in relationship '{1}'.. + + + + + Looks up a localized string similar to Missing fact, dimension, and relationship details.. + + + + + Looks up a localized string similar to Relationship '{0}' does not match the cardinality of + dimension '{1}' and fact '{2}'. + Expected: 1 to many or many to 1, but got: {3} to {4}.. + + + + + Looks up a localized string similar to Relationship reference '{0}' not found.. + + + + + Looks up a localized string similar to Right field reference '{0}' not found in relationship '{1}'.. + + + + + Looks up a localized string similar to Warning, facts should be LHS of relationships. '{0}'. + + + + + Looks up a localized string similar to Cannot add the same field twice: {0}. + + + + + Looks up a localized string similar to Field name cannot be blank. + + + + + Looks up a localized string similar to Dimension reference key cannot be null or empty.. + + + + + Looks up a localized string similar to Fact field key cannot be null or empty.. + + + + + Looks up a localized string similar to Measure key cannot be null or empty.. + + + + + Looks up a localized string similar to All measures in Fact could not be built.. + + + + + Looks up a localized string similar to Could not find sourcekey: '{0}'. + + + + + Looks up a localized string similar to Field '{0}' not a field type. + + + + + Looks up a localized string similar to Measure '{0}' not a measure type. + + + + + Looks up a localized string similar to Source '{0}' not an ISource type. + + + + + Looks up a localized string similar to Table could not be built; all fields resulted in errors only.. + + + + + Looks up a localized string similar to FactFragment.ResolveFields: Field '{0}' has a different TableLikeKey '{1}' than expected '{2}'.. + + + + + Looks up a localized string similar to FactFragment.ResolveFields: Field '{0}' not found or not a valid field fragment.. + + + + + Looks up a localized string similar to FactFragment.ResolveMeasures: Measure '{0}' has a different FactKey '{1}' than expected '{2}'.. + + + + + Looks up a localized string similar to FactFragment.ResolveMeasures: Measure '{0}' not found or not a measure fragment.. + + + + + Looks up a localized string similar to Cannot access table before it is set.. + + + + + Looks up a localized string similar to {0} error: Field not associated with any table.. + + + + + Looks up a localized string similar to {0} error: Multiple tables contain field. Using '{1}', also found {2}'. + + + + + Looks up a localized string similar to Field '{0}' references an invalid table-like object '{1}'.. + + + + + Looks up a localized string similar to Unsupported Join.On expression. We support 'source.field = dim.field'. Got '{0}'.. + + + + + Looks up a localized string similar to Join.On expression cannot be empty. + + + + + Looks up a localized string similar to Metric View join must be 'Using' xor 'On'.. + + + + + Looks up a localized string similar to Join kind is invalid. + + + + + Looks up a localized string similar to Using joins are not yet supported.. + + + + + Looks up a localized string similar to The SemanticBridge feature is not enabled for the current license tier and the user should reach out to support to acquire an appropriate license.. + + + + + Looks up a localized string similar to AggregationType is not set for simple measure. + + + + + Looks up a localized string similar to Could not build measure. + + + + + Looks up a localized string similar to Measure cannot have both Field and Expression; treating as a simple measure.. + + + + + Looks up a localized string similar to Measure '{0}' is associated with multiple Facts: {1}. Using the first one: {2}.. + + + + + Looks up a localized string similar to Measure '{0}' is not associated with any Fact.. + + + + + Looks up a localized string similar to Measure.Resolve: Fact '{0}' does not exist for field '{1}'.. + + + + + Looks up a localized string similar to Measure.Resolve: Field '{0}' not found.. + + + + + Looks up a localized string similar to Failed to deserialize MetricView from YAML string. + + + + + Looks up a localized string similar to Failed to load MetricView from {0}. + + + + + Looks up a localized string similar to Failed to deserialize YAML to MetricView: {0}. + + + + + Looks up a localized string similar to Failed to deserialize YAML to MetricView: One or more validation errors occurred.. + + + + + Looks up a localized string similar to Failed to validate MetricView. + + + + + Looks up a localized string similar to Attempted dictionary key lookup on non-collection type '{0}'.. + + + + + Looks up a localized string similar to No item with Name '{0}' found in collection.. + + + + + Looks up a localized string similar to Path must not be null or empty.. + + + + + Looks up a localized string similar to Property '{0}' not found on type '{1}'.. + + + + + Looks up a localized string similar to Property '{0}' on '{1}' is null.. + + + + + Looks up a localized string similar to Unknown path segment type: {0}. + + + + + Looks up a localized string similar to Expected closing bracket after quoted key in path: {0}. + + + + + Looks up a localized string similar to Expected single quote after '[' in path: {0}. + + + + + Looks up a localized string similar to Unterminated quoted key in path: {0}. + + + + + Looks up a localized string similar to Node not found in MetricView graph.. + + + + + Looks up a localized string similar to Left field '{0}' not found in built objects. Fields must be built before relationships.. + + + + + Looks up a localized string similar to LeftFieldKey is not set. + + + + + Looks up a localized string similar to Required properties (cardinalities, join kind, or filter direction) are not set. + + + + + Looks up a localized string similar to Right field '{0}' not found in built objects. Fields must be built before relationships.. + + + + + Looks up a localized string similar to RightFieldKey is not set. + + + + + Looks up a localized string similar to {0} '{1}' does not reference a valid field.. + + + + + Looks up a localized string similar to {0} '{1}' is missing.. + + + + + Looks up a localized string similar to {0} is not set.. + + + + + Looks up a localized string similar to FilterDirection is not set and could not be inferred.. + + + + + Looks up a localized string similar to Relationship must be between a fact and a dimension.. + + + + + Looks up a localized string similar to Fact '{0}' already has a reference to dimension '{1}' with relationship on fields '{2}' and '{3}'. + + + + + Looks up a localized string similar to Dimension '{0}' not found in Root.Dimensions. + + + + + Looks up a localized string similar to Fact '{0}' not found in Root.Facts. + + + + + Looks up a localized string similar to Field '{0}' not found in {1}. Searched TechnicalName and Name.. + + + + + Looks up a localized string similar to Relationship left field '{0}' does not belong to fact '{1}' or its source. + + + + + Looks up a localized string similar to Relationship right field '{0}' does not belong to dimension '{1}' or its source. + + + + + Looks up a localized string similar to Failed to initialize SemanticBridge service with an unexpected exception. See more details in the `Exception` property.. + + + + + Looks up a localized string similar to Feature check service is not available. Maybe you are running it outside of Tabular Editor 3?. + + + + + Looks up a localized string similar to AggregationType '{0}' is not supported for DAX generation.. + + + + + Looks up a localized string similar to SimpleMeasure '{0}' references column '{1}' which does not exist in table '{2}'.. + + + + + Looks up a localized string similar to The table '{0}' referenced by measure '{1}' does not exist in the model. + + + + + Looks up a localized string similar to Column '{0}' not found in table '{1}' for relationship '{2}'.. + + + + + Looks up a localized string similar to Relationship '{0}' has invalid cardinality configuration. Expected one side with Many and one side with One cardinality.. + + + + + Looks up a localized string similar to Source field key cannot be null or empty.. + + + + + Looks up a localized string similar to Could not build source system. + + + + + Looks up a localized string similar to Source fragment has no valid object or query defined.. + + + + + Looks up a localized string similar to Service was successfully initialized and can be accessed through the `Success` record's `Service` property.. + + + + + Looks up a localized string similar to Cannot use validation rule for {0} on node of {1}.. + + + + + Extension methods for collection equality comparison that supports order-independent + equality checking for collections and dictionaries in AbstractModel records. + + + These methods implement set-based equality where order does not matter, supporting + proper equality semantics for records containing collections. Hash codes are generated + consistently to support use as dictionary keys and with MSTest assertions. + + + + + Compares two sequences for equality without regard to order. + + The type of elements in the sequences + The first sequence to compare + The second sequence to compare + + True if both sequences are null, or both contain the same elements + (each element in one sequence has a corresponding equal element in the other). + False otherwise. + + + This method treats sequences as sets - order does not matter, but duplicate + elements are significant. Uses the default equality comparer for type T. + Performance is O(n) for sequences of the same length. + + + + + Compares two dictionaries for equality, comparing both keys and values. + + The type of dictionary keys + The type of dictionary values + The first dictionary to compare + The second dictionary to compare + + True if both dictionaries are null, or both contain the same key-value pairs. + False otherwise. + + + Dictionaries are considered equal if they have the same set of keys and + each key maps to equal values in both dictionaries. Uses default equality + comparers for both keys and values. + + + + + Generates a hash code for a sequence that is order-independent. + + The type of elements in the sequence + The sequence to generate a hash code for + + A hash code that will be the same for sequences containing the same elements + regardless of order. Returns 0 for null collections. + + + The hash code is computed by combining individual element hash codes using + XOR, which is commutative and associative, ensuring order independence. + Duplicate elements contribute to the hash code multiple times. + + + + + Generates a hash code for a dictionary based on its key-value pairs. + + The type of dictionary keys + The type of dictionary values + The dictionary to generate a hash code for + + A hash code based on the dictionary's key-value pairs. Returns 0 for null dictionaries. + + + Hash codes are computed by combining individual key-value pair hash codes using XOR, + ensuring that dictionaries with the same entries produce the same hash code regardless + of internal ordering. + + + + Custom -derived type for the JoinOnRegex method. + + + Cached, thread-safe singleton instance. + + + Initializes the instance. + + + Provides a factory for creating instances to be used by methods on . + + + Creates an instance of a used by methods on . + + + Provides the runner that contains the custom logic implementing the specified regular expression. + + + Scan the starting from base.runtextstart for the next match. + The text being scanned by the regular expression. + + + Search starting from base.runtextpos for the next location a match could possibly start. + The text being scanned by the regular expression. + true if a possible match was found; false if no more matches are possible. + + + Determine whether at base.runtextpos is a match for the regular expression. + The text being scanned by the regular expression. + true if the regular expression matches at the current position; otherwise, false. + + + Custom -derived type for the SqlAggRegex method. + + + Cached, thread-safe singleton instance. + + + Initializes the instance. + + + Provides a factory for creating instances to be used by methods on . + + + Creates an instance of a used by methods on . + + + Provides the runner that contains the custom logic implementing the specified regular expression. + + + Scan the starting from base.runtextstart for the next match. + The text being scanned by the regular expression. + + + Search starting from base.runtextpos for the next location a match could possibly start. + The text being scanned by the regular expression. + true if a possible match was found; false if no more matches are possible. + + + Determine whether at base.runtextpos is a match for the regular expression. + The text being scanned by the regular expression. + true if the regular expression matches at the current position; otherwise, false. + + + Custom -derived type for the DistinctCountRegex method. + + + Cached, thread-safe singleton instance. + + + Initializes the instance. + + + Provides a factory for creating instances to be used by methods on . + + + Creates an instance of a used by methods on . + + + Provides the runner that contains the custom logic implementing the specified regular expression. + + + Scan the starting from base.runtextstart for the next match. + The text being scanned by the regular expression. + + + Search starting from base.runtextpos for the next location a match could possibly start. + The text being scanned by the regular expression. + true if a possible match was found; false if no more matches are possible. + + + Determine whether at base.runtextpos is a match for the regular expression. + The text being scanned by the regular expression. + true if the regular expression matches at the current position; otherwise, false. + + + Custom -derived type for the SqlObjectPattern method. + + + Cached, thread-safe singleton instance. + + + Initializes the instance. + + + Provides a factory for creating instances to be used by methods on . + + + Creates an instance of a used by methods on . + + + Provides the runner that contains the custom logic implementing the specified regular expression. + + + Scan the starting from base.runtextstart for the next match. + The text being scanned by the regular expression. + + + Search starting from base.runtextpos for the next location a match could possibly start. + The text being scanned by the regular expression. + true if a possible match was found; false if no more matches are possible. + + + Determine whether at base.runtextpos is a match for the regular expression. + The text being scanned by the regular expression. + true if the regular expression matches at the current position; otherwise, false. + + + Helper methods used by generated -derived implementations. + + + Default timeout value set in , or if none was set. + + + Whether is non-infinite. + + + Determines whether the character is part of the [\w] set. + + + Supports searching for characters in or not in "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz". + +
+
diff --git a/content/assets/images/features/semantic-bridge/semantic-bridge-file-menu-import.png b/content/assets/images/features/semantic-bridge/semantic-bridge-file-menu-import.png new file mode 100644 index 0000000000000000000000000000000000000000..cc58adde532460b35b1a60c1eb9c444f6d4473a3 GIT binary patch literal 26606 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 literal 0 HcmV?d00001 diff --git a/content/assets/images/features/semantic-bridge/semantic-bridge-import-diagnostics.png b/content/assets/images/features/semantic-bridge/semantic-bridge-import-diagnostics.png new file mode 100644 index 0000000000000000000000000000000000000000..372558fab44deca903f77921ac38ac6072d44809 GIT binary patch literal 42314 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 DAo4Su literal 0 HcmV?d00001 diff --git a/content/assets/images/features/semantic-bridge/semantic-bridge-import-failed.png b/content/assets/images/features/semantic-bridge/semantic-bridge-import-failed.png new file mode 100644 index 0000000000000000000000000000000000000000..b03e05bd9de609dec5ef2647dd3ed64920b8822e GIT binary patch literal 8658 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
!%U~8;dnl_=BA|`jUe%|IE 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

EB|nrevYeeJW1wDy}; zAdOwTe-{b5B=@fp)BmnWt*_LLX@{^TR8XHLmkG{!yMuym9u?~LrF3U`ZpTu7Ff@cs ztK=-zt(W~VByGIzKh(nxE7t6+Co*rG)x&;g){RDcRG?B5iM(V6>1SzIW{X`Xr{bw7)+p3OGZO_S4UAACDjY{{5r(D8-PQdwGH2Tbs_> z6!6RpD=Xjg7eI@bblBhec27%7%e*UI%4zj*Z*dVgmoYpH)Ij(5{rvoX{!F{kgR!u@ zYN;Fp90K`&F3cW}mZQzPUTA5>Nuc+)GT|(E;K7JUDEou2Sh2U!LQqFi+nDE_o!xcd z(8=N9p|`g;a319XpBf7*D-;?X85tQB74-#Z7g!rqyj{)In9>99J^C_{6NCm?j3&ME zKd;2t#H{osP&h<9Gjg5t68aP!mGsDsK04M84v`&DT zth9AXpysirqGBrnYVHqBa3i;YjKn#)=6Htvla@Nq~5L#89Ko zKAjjbJP53ud4{xlUuwMy^p|~2bcZybd MtoA5R-pKoZ0Q@VG%m4rY literal 0 HcmV?d00001 diff --git a/content/assets/images/features/semantic-bridge/semantic-bridge-metric-view-validation.png b/content/assets/images/features/semantic-bridge/semantic-bridge-metric-view-validation.png new file mode 100644 index 0000000000000000000000000000000000000000..4e314581bc2d25ab3aede93624bd000730f23ad6 GIT binary patch literal 65454 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 OyhjQe@)fd{Fa8Uvx7o=6 literal 0 HcmV?d00001 diff --git a/content/assets/images/features/semantic-bridge/semantic-bridge-metric-view-validation2.png b/content/assets/images/features/semantic-bridge/semantic-bridge-metric-view-validation2.png new file mode 100644 index 0000000000000000000000000000000000000000..5772cdf0e4e8839d43a1a87ab0c8dcf8ca4d8d3a GIT binary patch literal 60710 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�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 ae749`qx|X_%5*emxfmIm85HZgT>me^0SxZ| literal 0 HcmV?d00001 diff --git a/content/features/index.md b/content/features/index.md index 19dc5816..671314e3 100644 --- a/content/features/index.md +++ b/content/features/index.md @@ -55,4 +55,6 @@ This section contains documentation about Tabular Editor features. ### Command Line and Integration - @command-line-options - CLI usage and automation ---- +### Semantic Bridge for cross-platform translations +- @semantic-bridge - Semantic Bridge overview +- @semantic-bridge-metric-view-validation - Validation rules system for Metric Views diff --git a/content/features/semantic-bridge-metric-view-object-model.md b/content/features/semantic-bridge-metric-view-object-model.md new file mode 100644 index 00000000..7d26ff5b --- /dev/null +++ b/content/features/semantic-bridge-metric-view-object-model.md @@ -0,0 +1,20 @@ +--- +uid: semantic-bridge-metric-view-object-model +title: Semantic Bridge Metric View Object Model +author: Greg Baldini +updated: 2025-01-23 +applies_to: + products: + - product: Tabular Editor 2 + none: true + - product: Tabular Editor 3 + since: 3.25.0 + editions: + - edition: Desktop + none: true + - edition: Business + none: true + - edition: Enterprise + full: true +--- +# Metric View Object Model diff --git a/content/features/semantic-bridge-metric-view-validation.md b/content/features/semantic-bridge-metric-view-validation.md new file mode 100644 index 00000000..ba07d39b --- /dev/null +++ b/content/features/semantic-bridge-metric-view-validation.md @@ -0,0 +1,225 @@ +--- +uid: semantic-bridge-metric-view-validation +title: Semantic Bridge Metric View Validation +author: Greg Baldini +updated: 2025-01-23 +applies_to: + products: + - product: Tabular Editor 2 + none: true + - product: Tabular Editor 3 + since: 3.25.0 + editions: + - edition: Desktop + none: true + - edition: Business + none: true + - edition: Enterprise + full: true +--- +# Semantic Bridge Validation + + + +There is a validation framework built into the Semantic Bridge to allow users to validate and define rules to check a Metric View before importing it to Tabular. +This validation is shared at every stage of the translation pipeline, from first deserializing the Metric View, through to errors in translation to DAX and Tabular. + +> [!NOTE] +> The Semantic Bridge is currently in its MVP phase, so interfaces may change as the feature matures. +> For now, the only interface to validation is through C# scripts. + +## Validation process + +There are several phases of validation + +1. upon deserializing some YAML, to check that it represents a valid Metric View +2. acting on the loaded Metric View +3. upon translating the Metric View to Tabular + +The first and third are automatic and internal to the Semantic Bridge, but the second is where users can provide their own validation rules. + +Validation is a process of evaluating each of a set of validation rules against all objects in the Metric View. +A validation rule is defined to apply to exactly one type of Metric View object, e.g. a `Join` or `Measure`. +After a validation is complete, all diagnostics from rule violations are returned to the user for further action. + +## Anatomy of a validation rule + +Validation rules are all instances of [`IMetricViewValidationRule`](/api/TabularEditor.SemanticBridge.Platforms.Databricks.Interfaces.IMetricViewValidationRule.html). +Rather than dig into that interface, it is easier to understand and work with validation rules with the helper methods: + +- [`MakeValidationRuleForDimension`](/api/TabularEditor.SemanticBridge.Platforms.Databricks.DatabricksMetricViewService.html#TabularEditor_SemanticBridge_Platforms_Databricks_DatabricksMetricViewService_MakeValidationRuleForDimension_System_String_System_String_System_String_System_Func_TabularEditor_SemanticBridge_Platforms_Databricks_MetricView_Dimension_System_Boolean__) +- [`MakeValidationRuleForJoin`](/api/TabularEditor.SemanticBridge.Platforms.Databricks.DatabricksMetricViewService.html#TabularEditor_SemanticBridge_Platforms_Databricks_DatabricksMetricViewService_MakeValidationRuleForJoin_System_String_System_String_System_String_System_Func_TabularEditor_SemanticBridge_Platforms_Databricks_MetricView_Join_System_Boolean__) +- [`MakeValidationRuleForMeasure`](/api/TabularEditor.SemanticBridge.Platforms.Databricks.DatabricksMetricViewService.html#TabularEditor_SemanticBridge_Platforms_Databricks_DatabricksMetricViewService_MakeValidationRuleForMeasure_System_String_System_String_System_String_System_Func_TabularEditor_SemanticBridge_Platforms_Databricks_MetricView_Measure_System_Boolean__) +- [`MakeValidationRuleForView`](/api/TabularEditor.SemanticBridge.Platforms.Databricks.DatabricksMetricViewService.html#TabularEditor_SemanticBridge_Platforms_Databricks_DatabricksMetricViewService_MakeValidationRuleForMeasure_System_String_System_String_System_String_System_Func_TabularEditor_SemanticBridge_Platforms_Databricks_MetricView_Measure_System_Boolean__) +- [`MakeValidationRule`](/api/TabularEditor.SemanticBridge.Platforms.Databricks.DatabricksMetricViewService.html#TabularEditor_SemanticBridge_Platforms_Databricks_DatabricksMetricViewService_MakeValidationRule__1_System_String_System_String_System_Func___0_TabularEditor_SemanticBridge_Platforms_Databricks_Validation_IReadOnlyValidationContext_System_Collections_Generic_IEnumerable_TabularEditor_SemanticBridge_Orchestration_DiagnosticMessage___) + +The first are all special purpose to make a rule for the object type in their name. +They offer a simplified interface where you provide: + +- `name`: a short, unique name to identify the rule +- `category`: useful for grouping similar rules together, but ultimately completely optional +- `message`: the message that will be shown in the diagnostic message when this rule is violated +- `isInvalid`: a function that will take the Metric View object as an argument, and will return `true` if that object is invalid + +This is easier to understand with an example: + +```csharp +// create a rule to check for underscores in dimension names +var myRule = SemanticBridge.MetricView.MakeValidationRuleForDimension( + "no_underscores", + "naming", + "Do not include undercores in dimension names. Use user-friendly names with spaces.", + (dimension) => dimension.Name.Contains('_') + ); +``` + +This makes a rule that will apply to all [Metric View `Dimension`s](/api/TabularEditor.SemanticBridge.Platforms.Databricks.MetricView.Dimension.html). +The rule is named (ironically) "no_underscores". +It has a category of "naming", to indicate that it has to do with how we name things. +The message you will see when the rule is violated is, "Do not include underscores in dimension names. Use user-friendly names with spaces." +The last argument defines a function that will be called for each dimension in the model; its body is a boolean expression that returns `true` for a dimension with an underscore in its `Name` property. + +Here's a full script that defines a Metric View inline, and then deserializes and validates it, showing how this rule is used. + +```csharp +// create a new simple Metric View +SemanticBridge.MetricView.Deserialize(""" + version: 0.1 + source: database.schema.table + dimensions: + - name: first_field + expr: source.first_field + - name: another field with no underscores + expr: source.another_field_with_no_underscores + """); + +// create a new validation rule +var myRule = SemanticBridge.MetricView.MakeValidationRuleForDimension( + "no_underscores", + "naming", + "Do not include undercores in dimension names. Use user-friendly names with spaces.", + (dimension) => dimension.Name.Contains('_') + ); + +// run validation with the rule defined above and output the diagnostic messages +Output(SemanticBridge.MetricView.Validate([myRule])); +``` + +You can see that one of the fields defined as a Metric View dimension has an underscore in its name. +When you run the script, you can see one diagnostic message after validating with the rule we defined. +You can see the details that are provided in the diagnostic message: + +- Code, Context: not used when you use one of these helper methods to make your rule +- Message: the message you defined in the rule +- Path: a representation of where you find that object in the Metric View +- Severity: set to Error by default with these simplified helpers + +![output from one field violating the validation rule](/images/features/semantic-bridge/semantic-bridge-metric-view-validation.png) + +If you want more control over the diagnostic message and more flexibility in the function for your validation, you can use `MakeValidationRule` mentioned above to make a contextual validation rule. + +```csharp +// necessary to use the Metric View object model +// aliasing to avoid conflicts with same-named TOM objects +using MetricView = TabularEditor.SemanticBridge.Platforms.Databricks.MetricView; + +// create a new simple Metric View +SemanticBridge.MetricView.Deserialize(""" + version: 0.1 + source: database.schema.table + dimensions: + - name: same_field + expr: source.same_field + - name: same_field + expr: source.same_field + """); + +// create a new validation rule +var myRule = SemanticBridge.MetricView.MakeValidationRule( + "no_duplicate_dimensions", + "naming", + (dimension, context) => + context.DimensionNames.Contains(dimension.Name) + ? [context.MakeError($"{dimension.Name} appears more than once as a dimension")] + : [] + ); + +// run validation with the rule defined above and output the diagnostic messages +Output(SemanticBridge.MetricView.Validate([myRule])); +``` + +This helper method requires you to pass the object type as a type parameter, and the validation function now is a two-parameter function, defined with the signature `(objectType, context)`. +The first parameter is the Metric View object that the rule is evaluated for. +The second parameter is an [`IReadOnlyValidationContext`](/api/TabularEditor.SemanticBridge.Platforms.Databricks.Validation.IReadOnlyValidationContext.html). +This context object holds collections with the names of already-checked objects; this makes it useful to check for duplicate names. +The context object also has a helper method to make a new diagnostic message; the benefit here is that your message doesn't have to be a hard-coded string, but can include properties of the object you are checking. +You can see in this example that we include the duplicated Metric View dimension name in the message. + +![output from one field violating the more complex validation rule](/images/features/semantic-bridge/semantic-bridge-metric-view-validation2.png) + +## Validation rule best practices + +It is a good idea to make many simple rules, rather than fewer, more complex rules. +The validation process is very light-weight, so there are not performance concerns from a proliferation of rules. +For example, if you want to make sure that dimension names are not `camelCased`, not `kebab-cased` and not `snake_cased`, it is better to make three separate rules, rather than trying to check for each of those conditions in a single rule. +This allows each rule to be simple, and for the messages to be very specific, and therefore more easily actionable. + +In general, once you have a rule that catches a specific issue, it is better to leave that alone, rather than editing it. +If you find that the rule is missing some condition you'd like to catch, just add a new small, simple rule to catch that new condition. + +You can save many different rules in a C# script for re-use with different Metric Views. +Because [a loaded Metric View is accessible in multiple scripts](xref:semantic-bridge-metric-view-object-model) you can save C# scripts that only define rules and then call `SemanticBridge.MetricView.Validate`, and re-use those validation scripts easily. +See the image below, where the script on the left, "load-mv.csx" has already been run, to load a Metric View to Tabular Editor. +Then, the second script, on the right, "run-rules.csx", is run second to validate. +This second script could be one that you keep around for all of your Metric Views. + + +![output from one field violating the more complex validation rule](/images/features/semantic-bridge/semantic-bridge-metric-view-validation3.png) + +The scripts are copied below for convenience, but are just rearrangements of scripts we saw above. + +**"load-mv.csx"** + +```csharp +// create a new simple Metric View +SemanticBridge.MetricView.Deserialize(""" + version: 0.1 + source: database.schema.table + dimensions: + - name: same_field + expr: source.same_field + - name: same_field + expr: source.same_field + """); +``` + +**"run-rules.csx"** + +```csharp +// necessary to use the Metric View object model +// aliasing to avoid conflicts with same-named TOM objects +using MetricView = TabularEditor.SemanticBridge.Platforms.Databricks.MetricView; + +//create a simple validation rule +var simpleRule = SemanticBridge.MetricView.MakeValidationRuleForDimension( + "no_underscores", + "naming", + "Do not include undercores in dimension names. Use user-friendly names with spaces.", + (dimension) => dimension.Name.Contains('_') + ); + +// create a contextual validation rule +var contextualRule = SemanticBridge.MetricView.MakeValidationRule( + "no_duplicate_dimensions", + "naming", + (dimension, context) => + context.DimensionNames.Contains(dimension.Name) + ? [context.MakeError($"{dimension.Name} appears more than once as a dimension")] + : [] + ); + +// run validation with the rules defined above and output the diagnostic messages +Output(SemanticBridge.MetricView.Validate([simpleRule, contextualRule])); +``` diff --git a/content/features/semantic-bridge.md b/content/features/semantic-bridge.md new file mode 100644 index 00000000..c56856d6 --- /dev/null +++ b/content/features/semantic-bridge.md @@ -0,0 +1,217 @@ +--- +uid: semantic-bridge +title: Semantic Bridge +author: Greg Baldini +updated: 2025-01-23 +applies_to: + products: + - product: Tabular Editor 2 + none: true + - product: Tabular Editor 3 + since: 3.25.0 + editions: + - edition: Desktop + none: true + - edition: Business + none: true + - edition: Enterprise + full: true +--- +# Semantic Bridge + + + +> [!NOTE] +> The Semantic Bridge as released in 3.25.0 is an MVP feature. It has limitations as documented below, and the API and feature surface area are subject to change. + +The Semantic Bridge is a semantic model compiler, with the capability to translate the structure and expressions of a semantic model from one platform to another. +This allows you to reuse business logic on multiple data platforms, supporting end users and meeting them where they consume the data. +It also allows for migrations from one platform to another. + +## Interface + +### Import Metric View YAML + +The Semantic Bridge is available through **File > Open > Import from Metric View YAML**. +This will launch a dialogue to guide you through importing a Metric View into the current Tabular model, adding tables, columns, measures, and relationships based on the structure of the Metric View. +You must have a Tabular model open in Tabular Editor. This can be a new, empty model or an existing model you want to enhance with the objects from the Metric View. +The menu button will not be enabled until you open or create a new Tabular model. + +![Import a Metric View from the file menu with **File > Open > Import from Metric View YAML**](/images/features/semantic-bridge/semantic-bridge-file-menu-import.png) + +### Enter Databricks connection details + +You need to provide three details in this dialogue: + +1. The path to the Metric View YAML file. + You can paste the path to the file or use the **Browse** button to find it. +2. The Databricks hostname. + This is to provide the correct argument in the M partition generated for the Databricks source system. +3. The HTTP path for Databricks. + This is to provide the correct argument in the M partition generated for the Databricks source system. + +If you are just testing the translation feature, you can provide placeholder values for the last two items, but you will need to fix the M partition definitions before you can refresh data into your Tabular model. + +After filling out the details, click **OK**. +The Semantic Bridge will translate your Metric View to Tabular and create all the TOM objects for you. + +![Databricks details in import dialog](/images/features/semantic-bridge/semantic-bridge-metric-view-details.png) + +### Result + +There are three possible results: + +1. Success: everything in the Metric View was translated to Tabular and you have a Tabular model ready to use. +2. Success, but with some issues: the Semantic Bridge was not able to translate every object in the Metric View; there are diagnostic messages you can view to understand what needs your attention. +3. Failure: the Semantic Bridge could not translate the Metric View + +**Success** + +![Import success notification](/images/features/semantic-bridge/semantic-bridge-import-success.png) + +**Success with issues** + +![Import success notification with issues](/images/features/semantic-bridge/semantic-bridge-import-success-with-issues.png) + +If you click on **View Diagnostics**, you can see a list of messages describing the issues in translation. +These diagnostics are available for review later by outputting them from a C# script: + +```csharp +// Show all diagnostic messages from the last attempted import of a Metric View +SemanticBridge.MetricView.ImportDiagnostics.Output(); +``` + +![Import diagnostics](/images/features/semantic-bridge/semantic-bridge-import-diagnostics.png) + +**Failure** + +![Import failure](/images/features/semantic-bridge/semantic-bridge-import-failed.png) + +Viewing diagnostics for a failure is the same as for success with issues. + +## Translation process + +Translating a Metric View to a Tabular model happens in several steps: + +1. Read the YAML from disk +2. Deserialize the YAML +3. Validate that the deserialized YAML represents a valid Metric View +4. If it is a valid Metric View, store it as a the currently loaded Metric View, similar to how there is a loaded Tabular model that you interact with. + If it is not a valid Metric View, the process stops here and diagnostic messages are available. +4. Analyze the Metric View and attempt to transform it to an intermediate representation +5. Attempt to transform the intermediate representation to a Tabular model + +The import GUI described above handles all of this for you, but you can also use C# scripts to customize different steps of the process and operate on the Metric View programatically, similarly to how you are used to doing with a Tabular model. +Specifically, you can + +- load a Metric View from disk with [`SemanticBridge.MetricView.Load`](/api/TabularEditor.SemanticBridge.Platforms.Databricks.DatabricksMetricViewService.html#TabularEditor_SemanticBridge_Platforms_Databricks_DatabricksMetricViewService_Load_System_String_): loading makes it available in C# scripts as [`SemanticBridge.MetricView.Model`](/api/TabularEditor.SemanticBridge.Platforms.Databricks.DatabricksMetricViewService.html#TabularEditor_SemanticBridge_Platforms_Databricks_DatabricksMetricViewService_Model), but does not import the structure into the Tabular model +- deserialize a Metric view from a string with [`SemanticBridge.MetricView.Deserialize`](/api/TabularEditor.SemanticBridge.Platforms.Databricks.DatabricksMetricViewService.html#TabularEditor_SemanticBridge_Platforms_Databricks_DatabricksMetricViewService_Deserialize_System_String_): similar to loading, the model is available as [`SemanticBridge.MetricView.Model`](/api/TabularEditor.SemanticBridge.Platforms.Databricks.DatabricksMetricViewService.html#TabularEditor_SemanticBridge_Platforms_Databricks_DatabricksMetricViewService_Model), but is not imported +- save a Metric View to disk with [`SemanticBridge.MetricView.Save`](/api/TabularEditor.SemanticBridge.Platforms.Databricks.DatabricksMetricViewService.html#TabularEditor_SemanticBridge_Platforms_Databricks_DatabricksMetricViewService_Save_System_String_) +- serialize a Metric View to a string with [`SemanticBridge.MetricView.Serialize`](/api/TabularEditor.SemanticBridge.Platforms.Databricks.DatabricksMetricViewService.html#TabularEditor_SemanticBridge_Platforms_Databricks_DatabricksMetricViewService_Serialize). +- validate a Metric View using a system that is similar to the [Best Practice Analyzer](xref:best-practice-analyzer) with [`SemanticBridge.MetricView.Validate`](/api/TabularEditor.SemanticBridge.Platforms.Databricks.DatabricksMetricViewService.html#TabularEditor_SemanticBridge_Platforms_Databricks_DatabricksMetricViewService_Validate) + - you can create your own custom validation rules with [`SemanticBridge.MetricView.MakeValidationRule`](/api/TabularEditor.SemanticBridge.Platforms.Databricks.DatabricksMetricViewService.html#TabularEditor_SemanticBridge_Platforms_Databricks_DatabricksMetricViewService_MakeValidationRule__1_System_String_System_String_System_Func___0_TabularEditor_SemanticBridge_Platforms_Databricks_Validation_IReadOnlyValidationContext_System_Collections_Generic_IEnumerable_TabularEditor_SemanticBridge_Orchestration_DiagnosticMessage___) and its simpler versions +- import a Metric View to Tabular with [`SemanticBridge.MetricView.ImportToTabularFromFile`](/api/TabularEditor.SemanticBridge.Platforms.Databricks.DatabricksMetricViewService.html#TabularEditor_SemanticBridge_Platforms_Databricks_DatabricksMetricViewService_ImportToTabularFromFile_System_String_TabularEditor_TOMWrapper_Model_System_String_System_String_System_Collections_Generic_List_TabularEditor_SemanticBridge_Orchestration_DiagnosticMessage___System_Boolean_), which does the exact same as the GUI shown above, or [`SemanticBridge.MetricView.ImportToTabular`](/api/TabularEditor.SemanticBridge.Platforms.Databricks.DatabricksMetricViewService.html#TabularEditor_SemanticBridge_Platforms_Databricks_DatabricksMetricViewService_ImportToTabular_TabularEditor_TOMWrapper_Model_System_String_System_String_System_Collections_Generic_List_TabularEditor_SemanticBridge_Orchestration_DiagnosticMessage___System_Boolean_), which is similar, but operates on the currently loaded Metric View, rather than reading one from disk. + + +## MVP Limitations + +### Supported platforms + +In the MVP release, we support translations from a Databricks Metric View to a Tabular model. +Specifically we support the following surface area of a Databricks Metric View: + +- v0.1 Metric View properties: + - supported: + - `source`: the source of the fact table + - `joins`: collection of tables left-joined to the fact + - `dimensions`: flat collection of fields from any table, either the single fact or any of the many joins + - `measures`: flat collection of named aggregations representing business logic + - unsupported: + - `filter`: a SQL filter expression for the Metric View + +All v1.1 metadata is not supported in the MVP. +Any v1.1 metadata is silently ignored upon deserialization of a Metric View, so it will not be visible in a C# script and it will not affect the translation to Tabular in any way. + +> [!WARNING] +> Because the v1.1 metadata is silently ignored, a Metric View that you deserialize and then serialize will be missing this metadata. +> Be careful not to overwrite a v1.1 source YAML file from a C# script, as that will remove all v1.1 metadata. + +### Limitations on translation from SQL + +Metric Views provide a structured layer on top of SQL expressions, and so part of translating a Metric View is translating SQL to DAX and M in the Tabular model. + +- Metric View `joins` with nested `joins` are not supported. + In other words, only strict star schemas are supported for translation; snowflake models are not supported +- Metric View `joins` with `using` join criteria are not supported; only equijoins on a single key field using the `on` property are supported. +- Metric View `dimensions` with SQL expressions are not translated to M or DAX; they are presented as Tabular model calculated columns with their SQL expression commented out +- Metric View `measures` with non-basic aggregations are not translated to DAX; they are presented as a Tabular model measure with their SQL expression commented out + - The only aggregations supported are sum, max, min, average, count, and distinct count. + - SQL comments in a basic aggregation are not preserved in DAX + +> [!WARNING] +> Note that SQL and DAX are different languages with different semantics. +> We can make no guarantee that a translated measure will behave identically between the Metric View SQL and the Tabular DAX we generate. +> Basic aggregates defined on fact table fields should behave the same, whereas aggregates defined on fields in dimension tables are more likely to produce undesired results. + +### Connectivity + +The MVP does not connect to any platforms besides Tabular, but works entirely with local files. +You must create your Metric View YAML on your own and then put it where Tabular Editor can see it. + +### C# API + +The C# interface has been built to optimize for the automatic translation workflow. +As such, there are limited affordances for interacting with the currently loaded Metric View, and certain types of operations are clunky. + +## Appendix on nomenclature + +It can be confusing to discuss things when talking about the Semantic Bridge, as there are many words that have both generic and specific meanings, depending what level of abstraction we are talking about and which platform we are discussing. +For example, the term "semantic model" is both generic, referring to the concept of a collection of data and business logic in some form suitable for supporting business reporting and analytical needs, and also the name Microsoft has adopted for referring to their specific implementation of this generic concept in Power BI and Fabric. +Thus, a semantic model might generically refer to a Databricks Metric View, an OLAP / Multidimensional Cube, a Power BI semantic model, or a model hosted in another platform's semantic layer. +Similarly, "dimension" refers to a concept in dimensional modeling, but it is also the name of a specific type of object in a Metric View. +Because of this, we have adopted the following definitions and standards in our documentation to maintain clarity and sanity. + +> [!NOTE] +> These conventions are only intended for documentation about the Semantic Bridge feature. + +### Definitions + +- *Semantic model*: when used on its own always refers to the generic concept of a collection of data, metadata, and business logic to support reporting and analytics. + If and only if it is immediately preceded by "Fabric" or "Power BI", then it is referring to that artifact type in that platform, specifically a Tabular model that is saved as TMDL or BIM and using M and DAX; we tend to prefer to use the term Tabular model to refer to the Power BI / Fabric semantic model to avoid this confusion where possible, because the Tabular model is shared across Power BI / Fabric as well as Analysis Serviced Tabular. +- *Platform*: a technology solution that has a semantic layer, on which a generic semantic model is hosted. + Databricks Metric Views represent a platform; Fabric / Power BI represent a platform; Analysis Services Tabular is a platform; Analysis Services Multidimensional is a platform which we have no support for in the Semantic Bridge today. +- *Serialization format*: a way to represent a semantic model on disk in a textual format. + TMDL and TMSL (.bim) are two serialization formats for a Power BI semantic model; YAML is the serialization format for a Databricks Metric View. +- *Object model*: an in-memory representation of a semantic model that we operate on in Tabular Editor via the Semantic Bridge either through GUI actions or C# scripts. + The TOM or Tabular Object Model should be familiar to existing users of Tabular Editor. + We have also created an object model for Databricks Metric Views, to allow manipulation of these in our tool. + +### General dimensional modeling terminology + +There are many terms that exist generally in discussion of a dimensional model or semantic model and also in a specific platform's object model and serialization formats. +For example, the term "measure" refers generically to a quantitative value that is aggregated in a dimensional model to represent a business metric of interest, but it also refers to a specific kind of object in both Databricks Metric Views and Tabular models; in a Metric View, a measure is a named SQL expression that defines an aggregation in the Metric View, and in a Tabular model a measure is a named DAX expression tat defines an aggregation in the Tabular model. +It is impossible to discuss the work of the Semantic Bridge without talking about multiple meanings of such words at once. +For example, we talk about translating a Metric View measure to a Tabular measure. +As such, **we always refer to an object in a specific platform's model by saying the platform and the object, e.g. "Metric View measure" or "Tabular measure"**. +If the term is ever used without being accompanied by a platform's name, then we are discussing the idea generically. + +### Common terms across Metric Views and Tabular models + +For those of our users who may be unfamiliar with either Metric Views or Tabular models, we provide an incomplete rosetta stone below. +We refer to the names of Metric View objects based on their representation in YAML, and Tabular based on the name of the type of object in TMDL/TMSL. + +| General term | Name in Tabular | Name in Metric View | Description | Note | +|----------------------|-----------------|-----------------------|------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| fact | table | source | A table holding foreign keys to dimensions and quantitative values to be aggregated | a Metric View has a single fact which is unnamed and captured as the root-level `source` attribute in YAML. Tabular models do not differentiate between types of tables: whether a table is a fact can only be inferred | +| dimension | table | join | A table holding descriptive attributes and one primary key to which the fact is related | Tabular models do not differentiate, so the role of "dimension" is inferred only, as with a fact. | +| partition | parition | source (join only) | An object for data management, holding a subset of data in a table | Tabular model tables can have many partitions and must have at least one. The Metric View fact, as mentioned above is defined purely as a source, but Metric View joins also have a `source` property, which acts roughly like a partition | +| field | column | dimension | A column in a table | | +| measure | measure | measure | A quantitative value that is aggregated according to business logic in the model | Measures in a Tabular model are written in DAX, and in a Metric View in SQL | +| join or relationship | relationship | join.on or join.using | A correspondence between key fields in two tables, a foreign key in one and primary key in the other | Relationships are explicit objects in a Tabular model, and implicitly defined as a property of the `join` object in Metric View YAML | + +## Additional Resources + +- [Databricks Metric View documentation](https://learn.microsoft.com/en-us/azure/databricks/metric-views/) +- [Databricks Metric View YAML reference](https://learn.microsoft.com/en-us/azure/databricks/metric-views/data-modeling/syntax) diff --git a/content/features/toc.md b/content/features/toc.md index 964fd566..edd7ea86 100644 --- a/content/features/toc.md +++ b/content/features/toc.md @@ -9,29 +9,29 @@ ## @diagram-view # DAX Features -## @dax-debugger -## @dax-editor -## @dax-query -## @dax-scripts -## @code-actions +## @dax-debugger +## @dax-editor +## @dax-query +## @dax-scripts +## @code-actions ## @dax-package-manager # Scripting and Automation -## @csharp-scripts +## @csharp-scripts ## C# Script Library ### @csharp-script-library ### @script-library-beginner ### @script-library-advanced -## @script-helper-methods -## @useful-script-snippets +## @script-helper-methods +## @useful-script-snippets ## @macros # Model Analysis and Quality -## @best-practice-analyzer +## @best-practice-analyzer ### @built-in-bpa-rules -### @using-bpa -### @using-bpa-sample-rules-expressions -## @dax-optimizer-integration +### @using-bpa +### @using-bpa-sample-rules-expressions +## @dax-optimizer-integration # Data Exploration and Connectivity ## @import-tables @@ -51,13 +51,18 @@ # Model Deployment and Management ## [Model deployment](deployment.md) -## @workspace-databases -## @workspace-mode -## @tmdl -## @save-to-folder +## @workspace-databases +## @workspace-mode +## @tmdl +## @save-to-folder ## @save-with-supporting-files ## @advanced-refresh ## @refresh-overrides # Command Line and Integration -## @command-line-options \ No newline at end of file +## @command-line-options + +# Semantic Bridge for cross-platform translations +## @semantic-bridge +## @semantic-bridge-metric-view-object-model +## @semantic-bridge-metric-view-validation From fdd7aab29b91daf670cae5f7a5b7bdda9cf2d338 Mon Sep 17 00:00:00 2001 From: greggyb Date: Tue, 27 Jan 2026 20:19:06 +0100 Subject: [PATCH 2/7] update api sources for 3.25.1 --- content/_apiSource/SemanticBridge.dll | Bin 284160 -> 284160 bytes content/_apiSource/TOMWrapper.dll | Bin 1089296 -> 1077760 bytes content/_apiSource/TabularEditor3.Shared.dll | Bin 1033488 -> 1022464 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/content/_apiSource/SemanticBridge.dll b/content/_apiSource/SemanticBridge.dll index 71808c216dc26fd629d6e88a795cea093f9916df..bc51edf823fd139e828e1c20045bb1cddbae93a4 100644 GIT binary patch delta 253 zcmZozBiOJ;a6$*m^#IQujXkYBjIBLPTYH$lR0|}p|Hf5Y#^&9>B5~`an^)YnPpDyT za?~(MH8!+NGcz?dNHerFwKOs`vPdzoG)^-$HB3oLwMa8fNlUV@G)&xXwU2pLKa0Gg z)4J(5d|3hnnm+3b+0U5gvuoz^{UL7`-kfgX$5NvJ6a57h1*u;pKJAojiP!yrJuI`g zU-4t{VDUF$NM$f)Fl4Y~NMkT#Fa@#=fGiN-6o`$0EF%UBh7_QvB~UI6C~686OJPU? Y>azgzQ-EX=kZlPRPu!jz%rcb;0G6951J delta 253 zcmZozBiOJ;a6$(Q=lze98hcuM7+ZUow)QZ8sTSbUD_#+M?37REJ>L6|`0ST#pHRcx zWMpQXoMf14ZfvsMY9I5geik{6 z{GRDId|3hnrc2#jZ!$5)d(QoQ5rLVB-P0}nSZWlYqS`W0QJ{Jr+t&3aUDdZ&)K`hf zZ@=Ql;=$r?#9+W+#$e81$zaHk45pJA5`khV45>hoR0dNZHU{#{8B7?A7%YHn5N!ff Xn*^lIfP4@Oq|zKDw>>+UWhxT@P;g7< diff --git a/content/_apiSource/TOMWrapper.dll b/content/_apiSource/TOMWrapper.dll index 9cc2ad66f38f5bc68c3f44343ef7e762fb3595b2..c6a9d32afb4f7bd240f0bd8fc118cf7f96f589ea 100644 GIT binary patch delta 160300 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 delta 172306 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

9aO^9*a7I&^Wr$%gy9n)@<^gWip;Mo4nFYvR*Jz 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�Lt78j(d_Hd4UGpv7q(m~->DlwtsrRv{K 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 S+P0gEiauE%wy~@>NCp5q01H9@ diff --git a/content/_apiSource/TabularEditor3.Shared.dll b/content/_apiSource/TabularEditor3.Shared.dll index ae411f2eeba7f45a608cbb02dc611c003c953913..2085564f71e3a7e8caf2da85b232536bb3f5341f 100644 GIT binary patch delta 101752 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 YB=)pWwz`OIf2R0&SY-KK@!ypH2Q$hcQ2+n{ delta 113437 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%0Dv6OSg(2z*Br#q|aB;4(IHrVem`CuQePuDIEwxqO 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 X_g Date: Tue, 27 Jan 2026 20:19:06 +0100 Subject: [PATCH 3/7] Update api index to refer to Semantic Bridge --- content/api/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/api/index.md b/content/api/index.md index c9939722..984cc41c 100644 --- a/content/api/index.md +++ b/content/api/index.md @@ -2,14 +2,14 @@ uid: api-index title: Scripting API author: Daniel Otykier -updated: 2022-06-16 +updated: 2026-01-27 --- # Tabular Editor API This is the API documentation for Tabular Editor's C# scripting capabilities. -Specifically, the objects available for scripting are those found in the **TOMWrapper.dll** and **TabularEditor3.Shared.dll** libraries. +Specifically, the objects available for scripting are those found in the **TOMWrapper.dll**, **TabularEditor3.Shared.dll**, and **SemanticBridge.dll** libraries. ## Getting started @@ -28,4 +28,4 @@ var myMeasure = SelectMeasure(); Model.Tables.First().AddMeasure(myMeasure.Name + " copy", myMeasure.Expression); ``` -For more examples, see . \ No newline at end of file +For more examples, see . From 3d9072ca477ee769e9b0f173d18ab4920fe265be Mon Sep 17 00:00:00 2001 From: greggyb Date: Tue, 27 Jan 2026 20:19:06 +0100 Subject: [PATCH 4/7] Update Semantic Bridge docs - add content for Metric View object model overview - add references for existing docs - add first how-to - set up how-to includes for simple script to deserialize a hard-coded metric view: useful for samples --- ...emantic-bridge-metric-view-object-model.md | 277 ++++++++++++++++++ .../semantic-bridge-metric-view-validation.md | 6 +- content/features/semantic-bridge.md | 1 + .../includes/sample-metricview-deserialize.md | 43 +++ content/how-tos/includes/sample-metricview.md | 38 +++ .../how-tos/includes/sample-metricview.yaml | 34 +++ content/how-tos/semantic-bridge-how-tos.md | 22 ++ .../how-tos/semantic-bridge-load-inspect.md | 213 ++++++++++++++ 8 files changed, 633 insertions(+), 1 deletion(-) create mode 100644 content/how-tos/includes/sample-metricview-deserialize.md create mode 100644 content/how-tos/includes/sample-metricview.md create mode 100644 content/how-tos/includes/sample-metricview.yaml create mode 100644 content/how-tos/semantic-bridge-how-tos.md create mode 100644 content/how-tos/semantic-bridge-load-inspect.md diff --git a/content/features/semantic-bridge-metric-view-object-model.md b/content/features/semantic-bridge-metric-view-object-model.md index 7d26ff5b..79bf1318 100644 --- a/content/features/semantic-bridge-metric-view-object-model.md +++ b/content/features/semantic-bridge-metric-view-object-model.md @@ -18,3 +18,280 @@ applies_to: full: true --- # Metric View Object Model + + + +> [!NOTE] +> The Semantic Bridge as released in 3.25.0 is an MVP feature. +> It has limitations as documented below, and the API and feature surface area are subject to change. +> The object model here conspicuously lacks many affordances available in the TOMWrapper which users may be familiar with from C# scripts that manipulate a Tabular model. +> As noted in the [limitations of the Semantic Bridge](xref:semantic-bridge#mvp-limitations), we currently only support Metric View v0.1 metadata. + +The Semantic Bridge includes an object model representing a Databricks Metric View. +This allows you to work with Metric Views programmatically through C# scripts, similar to how you work with a Tabular model through the TOMWrapper. + +Other than the [import GUI](xref:semantic-bridge#interface), all access to and interaction with a Metric View is through C# scripts. +All content in this document is referring to C# code that you will use in a [C# script](xref:csharp-scripts). + +## Loading and accessing the Metric View + +You can load a Metric view with [`SemanticBridge.MetricView.Load`](xref:TabularEditor.SemanticBridge.Platforms.Databricks.DatabricksMetricViewService#TabularEditor_SemanticBridge_Platforms_Databricks_DatabricksMetricViewService_Load_System_String_) or [`SemanticBridge.MetricView.Deserialize`](xref:TabularEditor.SemanticBridge.Platforms.Databricks.DatabricksMetricViewService#TabularEditor_SemanticBridge_Platforms_Databricks_DatabricksMetricViewService_Deserialize_System_String_). +This stores the deserialized Metric View as [`SemanticBridge.MetricView.Model`](xref:TabularEditor.SemanticBridge.Platforms.Databricks.DatabricksMetricViewService#TabularEditor_SemanticBridge_Platforms_Databricks_DatabricksMetricViewService_Model). +This property returns a [`View`](xref:TabularEditor.SemanticBridge.Platforms.Databricks.MetricView.View) object, which is the root of the Metric View object graph. + +```csharp +// Load a Metric View from disk +SemanticBridge.MetricView.Load("C:/path/to/metricview.yaml"); + +// Access the loaded View +var view = SemanticBridge.MetricView.Model; +Output($"Metric View version: {view.Version}\r\nSource: {view.Source}"); +``` + +Similar to a Tabular model and dissimilar to most other objects you may be used to in a C# script, the Metric View is persistent across multiple script executions. +This means that you can load a Metric View once, and reference it from subsequent script executions without re-loading it every time. +There is only ever a single Metric View loaded, and it is available in all scripts as `SemanticBridge.MetricView.Model` as mentioned above. +This behavior is similar to the Tabular model in C# scripts, which is always available simply as `Model`. + +## Domain objects + +The object model consists of four main types that correspond to the structure of a Metric View YAML file: +We do not repeat the entire specification here, so we encourage you to reference the [Databricks Metric View documentation](https://learn.microsoft.com/en-us/azure/databricks/metric-views/). + +| API Reference | Description | +|--------------------------------------------------------------------------------------------|------------------------------------------------------------| +| [`View`](xref:TabularEditor.SemanticBridge.Platforms.Databricks.MetricView.View) | The root object representing the entire Metric View | +| [`Join`](xref:TabularEditor.SemanticBridge.Platforms.Databricks.MetricView.Join) | A join definition connecting a dimension table to the fact | +| [`Dimension`](xref:TabularEditor.SemanticBridge.Platforms.Databricks.MetricView.Dimension) | A field definition (column) in the Metric View | +| [`Measure`](xref:TabularEditor.SemanticBridge.Platforms.Databricks.MetricView.Measure) | An aggregation definition representing business logic | + +> [!NOTE] +> In the object model, we follow C# naming conventions, and so use `PascalCase` for all type and property names in the object model. +> The Metric View YAML specification follows a naming convention of `snake_case`. +> In general, we focus on the C# object model that is a component of the Semantic Bridge. +> Other than changing the case, we do not change any naming convention from the YAML. + +### View + +The [`View`](xref:TabularEditor.SemanticBridge.Platforms.Databricks.MetricView.View) object is the root of the Metric View and contains: + +- `Version`: The Metric View specification version (e.g., "0.1") +- `Source`: The source data for the fact table (e.g., "catalog.schema.table") +- `Filter`: Optional SQL boolean expression that applies to all queries +- `Joins`: Collection of join definitions +- `Dimensions`: Collection of dimension (field) definitions +- `Measures`: Collection of measure definitions + +```csharp +var sb = new System.Text.StringBuilder(); +var view = SemanticBridge.MetricView.Model; + +sb.AppendLine($"Version: {view.Version}"); +sb.AppendLine($"Source: {view.Source}"); +sb.AppendLine($"Filter: {view.Filter ?? "(none)"}"); +sb.AppendLine($"Joins: {view.Joins?.Count ?? 0}"); +sb.AppendLine($"Dimensions: {view.Dimensions?.Count ?? 0}"); +sb.AppendLine($"Measures: {view.Measures?.Count ?? 0}"); + +Output(sb.ToString()); +``` + +#### `View` translation and validation + +The `View.Source` property becomes the fact table in the Tabular model, named `'Fact'`. +If the `Source` is a 3-part table or view reference, it is translated to an M partition that accesses the SQL object by name. +If the `Source` is not a 3-part table or view reference, it is translated to an M partition with an embedded SQL query, with the entirety of the `Source` string as the SQL query. +The `Filter` property is ignored for purposes of translation. + +For purposes of evaluating validation rules, the `View` is checked first, then each collection is validated in order: `Joins`, then `Dimensions`, then `Measures`. +Validation of the fact table, `Source` is done in a validation rule for the `View` object. + +### Join + +A [`Join`](xref:TabularEditor.SemanticBridge.Platforms.Databricks.MetricView.Join) represents a dimension table that is joined to the fact table: + +- `Name`: Name of the joined table (used as an alias) +- `Source`: Source table or query for the join (e.g., "catalog.schema.dimension_table") +- `On`: Optional SQL boolean expression for the join condition +- `Using`: Optional list of column names for the join (alternative to `On`) +- `Joins`: Child joins (for snowflake schemas) + +```csharp +var sb = new System.Text.StringBuilder(); +var view = SemanticBridge.MetricView.Model; + +foreach (var join in view.Joins ?? []) +{ + sb.AppendLine($"Join: {join.Name}"); + sb.AppendLine($" Source: {join.Source}"); + if (!string.IsNullOrEmpty(join.On)) + sb.AppendLine($" On: {join.On}"); + if (join.Using != null && join.Using.Count > 0) + sb.AppendLine($" Using: {string.Join(", ", join.Using)}"); +} + +Output(sb.ToString()); +``` + +#### `Join` translation and validation + +Nested `Join`s are not supported, i.e., only a strict star schema can be translated. +Only `On` joins with a single-field equijoin are supported for translation. +`Join`s each become a Tabular table, with an M partition defined according to the same rules as for the `View.Source` property. + +`Join`s are validated in the order they appear in the Metric View definition. + +### Dimension + +A [`Dimension`](xref:TabularEditor.SemanticBridge.Platforms.Databricks.MetricView.Dimension) represents a field (column) in the Metric View: + +- `Name`: The display name for the dimension +- `Expr`: The SQL expression defining the dimension (either a column reference or a SQL expression) + +```csharp +var sb = new System.Text.StringBuilder(); +var view = SemanticBridge.MetricView.Model; + +foreach (var dim in view.Dimensions ?? []) +{ + sb.AppendLine($"Dimension: {dim.Name}"); + sb.AppendLine($" Expression: {dim.Expr}"); +} + +Output(sb.ToString()); +``` + +#### `Dimension` translation and validation + +Each `Dimension` becomes a column in the Tabular model. +If the `Expr` is an unqualified field reference, it is added to the fact table. +If the `Expr` is a qualified reference (e.g., `table.field`), then it is added to the table created for the `Join` with the same name as the table-part of the qualified reference; if the table-part is `source`, it is added to the fact table. +In both the qualified and unqualified field reference cases, the field is added as a [`TOMWrapper.DataColumn`](xref:TabularEditor.TOMWrapper.DataColumn]. +If the `Expr` is a SQL expression, then it is added as [`TOMWrapper.CalculatedColumn`](xref:TabularEditor.TOMWrapper.CalculatedColumn). +When the `Expr` is a SQL expression, we attempt to extract all field references; if all field references share the same table-part, then we add it to the table created for that `Join`, otherwise we add it to the fact table. +We do not translate SQL expressions for `Dimension.Expr` properties; the SQL expression is included as a comment in the DAX expression for the `CalculatedColumn`. +It is up to the user to translate these expressions. +We attempt to identify all field references in the SQL expression and add those to the Tabular model as `DataColumn`s if they do not already exist as a Metric View `Dimension`. + +Some examples: + +| `Expr` | Translated as type | Added to table | Note | +|-------------------------------------------------------|--------------------|-----------------|------------------------------------------------------------------------------| +| `field1` | `DataColumn` | `'Fact'` | unqualified field references are equivalent to those qualified with `source` | +| `source.field2` | `DataColumn` | `'Fact'` | `source` is a reference to the `View.Source` property, aka the fact table | +| `dimCustomer.key` | `DataColumn` | `'dimCustomer'` | there must be a `Join` whose `Name` property is `dimCustomer` | +| `CONCAT(dimCustomer.FirstName, dimCustomer.LastName)` | `CalculatedColumn` | `'dimCustomer'` | all table-parts of the qualified name refer to the same name | +| `CONCAT(dimGeo.Country, dimCustomer.Address)` | `CalculatedColumn` | `'Fact'` | there are multiple distinct table-parts | + +`Dimension`s are validated in the order they appear in the Metric View definition. + +### Measure + +A [`Measure`](xref:TabularEditor.SemanticBridge.Platforms.Databricks.MetricView.Measure) represents a named aggregation with business logic: + +- `Name`: The display name for the measure +- `Expr`: The SQL aggregate expression defining the measure + +```csharp +var sb = new System.Text.StringBuilder(); +var view = SemanticBridge.MetricView.Model; + +foreach (var measure in view.Measures ?? []) +{ + sb.AppendLine($"Measure: {measure.Name}"); + sb.AppendLine($" Expression: {measure.Expr}"); +} + +Output(sb.ToString()); +``` + +#### `Measure` translation and validation + +All measures are added to the fact table. +Simple aggregations are translated into DAX expressions. +A simple aggregation is a single aggregation of a single field (e.g. `SUM(table.field)`). +Supported aggregations are sum, count, distinct count, max, min, and average. +Other expressions are passed through as a comment in the DAX expression of the Tabular measure. +We attempt to identify all field references in the SQL expression and add those to the Tabular model as `DataColumn`s if they do not already exist as a Metric View `Dimension`. + +> [!WARNING] +> SQL and DAX are different languages with different semantics. +> It is possible that an automatically translated measure does not express the same computation in both Databricks Metric Views and Tabular models. +> It is up to the user to verify all code works as expected. + +`Measure`s are validated in the order they appear in the Metric View definition. + +## Using directives + +When working with the Metric View object model in C# scripts, you may need to add a using directive to avoid naming conflicts with similarly-named types in the Tabular Object Model. +We recommend aliasing the namespace: + +```csharp +// Alias to avoid conflicts with TOM types like Measure +using MetricView = TabularEditor.SemanticBridge.Platforms.Databricks.MetricView; + +SemanticBridge.MetricView.Load("C:/path/to/metricview.yaml"); +var view = SemanticBridge.MetricView.Model; + +// Now you can reference types explicitly +foreach (MetricView.Dimension dim in view.Dimensions ?? []) +{ + // ... +} +``` + +## Complete example + +Here is a complete script that loads a Metric View and outputs a summary of its contents: + +```csharp +using MetricView = TabularEditor.SemanticBridge.Platforms.Databricks.MetricView; + +// Load the Metric View +SemanticBridge.MetricView.Load("C:/path/to/metricview.yaml"); +var sb = new System.Text.StringBuilder(); +var view = SemanticBridge.MetricView.Model; + +// sb.AppendLine summary +sb.AppendLine("=== Metric View Summary ==="); +sb.AppendLine($"Version: {view.Version}"); +sb.AppendLine($"Source: {view.Source}"); + +if (view.Joins != null && view.Joins.Count > 0) +{ + sb.AppendLine($"\nJoins ({view.Joins.Count}):"); + foreach (var join in view.Joins) + { + sb.AppendLine($" - {join.Name} -> {join.Source}"); + } +} + +if (view.Dimensions != null && view.Dimensions.Count > 0) +{ + sb.AppendLine($"\nDimensions ({view.Dimensions.Count}):"); + foreach (var dim in view.Dimensions) + { + sb.AppendLine($" - {dim.Name}: {dim.Expr}"); + } +} + +if (view.Measures != null && view.Measures.Count > 0) +{ + sb.AppendLine($"\nMeasures ({view.Measures.Count}):"); + foreach (var measure in view.Measures) + { + sb.AppendLine($" - {measure.Name}: {measure.Expr}"); + } +} + +Output(sb.ToString()); +``` + +## References + +- [`MetricView` namespace API documentation](xref:TabularEditor.SemanticBridge.Platforms.Databricks.MetricView) +- @semantic-bridge-how-tos +- [Databricks Metric View documentation](https://learn.microsoft.com/en-us/azure/databricks/metric-views/) +- [Databricks Metric View YAML specification](https://learn.microsoft.com/en-us/azure/databricks/metric-views/data-modeling/syntax) diff --git a/content/features/semantic-bridge-metric-view-validation.md b/content/features/semantic-bridge-metric-view-validation.md index ba07d39b..2341bd84 100644 --- a/content/features/semantic-bridge-metric-view-validation.md +++ b/content/features/semantic-bridge-metric-view-validation.md @@ -170,7 +170,7 @@ In general, once you have a rule that catches a specific issue, it is better to If you find that the rule is missing some condition you'd like to catch, just add a new small, simple rule to catch that new condition. You can save many different rules in a C# script for re-use with different Metric Views. -Because [a loaded Metric View is accessible in multiple scripts](xref:semantic-bridge-metric-view-object-model) you can save C# scripts that only define rules and then call `SemanticBridge.MetricView.Validate`, and re-use those validation scripts easily. +Because [a loaded Metric View is accessible in multiple scripts](xref:semantic-bridge-metric-view-object-model#loading-and-accessing-the-metric-view) you can save C# scripts that only define rules and then call `SemanticBridge.MetricView.Validate`, and re-use those validation scripts easily. See the image below, where the script on the left, "load-mv.csx" has already been run, to load a Metric View to Tabular Editor. Then, the second script, on the right, "run-rules.csx", is run second to validate. This second script could be one that you keep around for all of your Metric Views. @@ -223,3 +223,7 @@ var contextualRule = SemanticBridge.MetricView.MakeValidationRule {join.Source}"); +} +sb.AppendLine(""); + +// Dimensions +sb.AppendLine($"DIMENSIONS ({view.Dimensions?.Count ?? 0})"); +sb.AppendLine("--------------"); +foreach (var dim in view.Dimensions ?? []) +{ + sb.AppendLine($" {dim.Name,-20} <- {dim.Expr}"); +} +sb.AppendLine(""); + +// Measures +sb.AppendLine($"MEASURES ({view.Measures?.Count ?? 0})"); +sb.AppendLine("------------"); +foreach (var measure in view.Measures ?? []) +{ + sb.AppendLine($" {measure.Name,-20} = {measure.Expr}"); +} + +Output(sb.ToString()); +``` + +## Next steps + +Now that you can load and inspect a Metric View, you can: + +- [Validate the Metric View](xref:semantic-bridge-metric-view-validation) to check for issues +- [Import the Metric View to Tabular](xref:semantic-bridge) to create tables, columns, and measures + +## See also + +- [Metric View Object Model](xref:semantic-bridge-metric-view-object-model) +- [Semantic Bridge Overview](xref:semantic-bridge) From d8327d77aa427cc754bb941815c0b7de1701ee65 Mon Sep 17 00:00:00 2001 From: greggyb Date: Tue, 27 Jan 2026 20:19:06 +0100 Subject: [PATCH 5/7] Update toc and index for how-tos for Semantic Bridge --- content/how-tos/index.md | 5 ++++- content/how-tos/toc.md | 43 +++++++++++++++++++++------------------- 2 files changed, 27 insertions(+), 21 deletions(-) diff --git a/content/how-tos/index.md b/content/how-tos/index.md index d4250781..483d20db 100644 --- a/content/how-tos/index.md +++ b/content/how-tos/index.md @@ -42,6 +42,9 @@ This section contains step-by-step guides for accomplishing specific tasks with - [Metadata Backup](metadata-backup.md) - Backup and restore model metadata - [Undo and Redo](undo-redo.md) - Using undo/redo functionality +### Semantic Bridge +- @semantic-bridge-load-inspect + --- -*Navigate using the table of contents to find guides for specific tasks.* \ No newline at end of file +*Navigate using the table of contents to find guides for specific tasks.* diff --git a/content/how-tos/toc.md b/content/how-tos/toc.md index be0f84c8..7ef5a729 100644 --- a/content/how-tos/toc.md +++ b/content/how-tos/toc.md @@ -1,38 +1,41 @@ # Scripting and Automation ## [Advanced Scripting](Advanced-Scripting.md) -## [Script Reference Objects](script-reference-objects.md) +## [Script Reference Objects](script-reference-objects.md) # Model Management and Deployment -## [Deploy Current Model](deploy-current-model.md) -## [Connect to SSAS](connect-ssas.md) -## [Load and Save](load-save.md) -## [Folder Serialization](folder-serialization.md) +## [Deploy Current Model](deploy-current-model.md) +## [Connect to SSAS](connect-ssas.md) +## [Load and Save](load-save.md) +## [Folder Serialization](folder-serialization.md) ## [Master Model Pattern](Master-model-pattern.md) ## [Update compatibility level](update-compatibility-level.md) # Data Import and Tables -## [Importing Tables (TE2)](Importing-Tables.md) -## [Importing Tables from Excel (TE2)](importing-tables-from-excel.md) -## [Replace Tables](replace-tables.md) +## [Importing Tables (TE2)](Importing-Tables.md) +## [Importing Tables from Excel (TE2)](importing-tables-from-excel.md) +## [Replace Tables](replace-tables.md) # Model Organization and Structure -## [Advanced Filtering of Explorer Tree](Advanced-Filtering-of-the-Explorer-Tree.md) -## [Drag and Drop](drag-drop.md) -## [Duplicate and Batch Rename](duplicate-batchrename.md) -## [Edit Properties](edit-properties.md) +## [Advanced Filtering of Explorer Tree](Advanced-Filtering-of-the-Explorer-Tree.md) +## [Drag and Drop](drag-drop.md) +## [Duplicate and Batch Rename](duplicate-batchrename.md) +## [Edit Properties](edit-properties.md) # Translations and Perspectives -## [Import/Export Translations](import-export-translations.md) -## [Perspectives and Translations](perspectives-translations.md) +## [Import/Export Translations](import-export-translations.md) +## [Perspectives and Translations](perspectives-translations.md) # Data Security and Roles -## [Roles and Row-Level Security](roles-rls.md) +## [Roles and Row-Level Security](roles-rls.md) # Connectivity and Integration -## [XMLA Analysis Services Connectivity](xmla-as-connectivity.md) -## [Power BI XMLA PBIX Workaround](powerbi-xmla-pbix-workaround.md) +## [XMLA Analysis Services Connectivity](xmla-as-connectivity.md) +## [Power BI XMLA PBIX Workaround](powerbi-xmla-pbix-workaround.md) # Model Maintenance -## [Formula Fixup Dependencies](formula-fixup-dependencies.md) -## [Metadata Backup](metadata-backup.md) -## [Undo and Redo](undo-redo.md) \ No newline at end of file +## [Formula Fixup Dependencies](formula-fixup-dependencies.md) +## [Metadata Backup](metadata-backup.md) +## [Undo and Redo](undo-redo.md) + +# [Semantic Bridge](semantic-bridge-how-tos.md) +## @semantic-bridge-load-inspect From b4dbbdf49f60f7efed59f611ec2fded83bf9857b Mon Sep 17 00:00:00 2001 From: greggyb Date: Tue, 27 Jan 2026 20:19:06 +0100 Subject: [PATCH 6/7] Add Semantic Bridge how tos and final review Add detailed how-tos to show off the C# scripting interface. Review all code samples. Review usage to conform with anti-confusion, verbose nomenclature norms for Semantic Bridge (make sure we always say Metric View or Tabular when talking about ambiguous terms). --- .../semantic-bridge-metric-view-validation.md | 12 +- content/features/semantic-bridge.md | 7 +- .../includes/sample-metricview-deserialize.md | 6 +- content/how-tos/includes/sample-metricview.md | 6 +- .../how-tos/includes/sample-metricview.yaml | 6 +- content/how-tos/index.md | 10 +- content/how-tos/semantic-bridge-add-object.md | 74 ++++++ content/how-tos/semantic-bridge-how-tos.md | 21 ++ content/how-tos/semantic-bridge-import.md | 215 +++++++++++++++++ .../how-tos/semantic-bridge-load-inspect.md | 14 +- .../how-tos/semantic-bridge-remove-object.md | 156 ++++++++++++ .../how-tos/semantic-bridge-rename-objects.md | 169 +++++++++++++ content/how-tos/semantic-bridge-serialize.md | 138 +++++++++++ ...mantic-bridge-validate-contextual-rules.md | 228 ++++++++++++++++++ .../semantic-bridge-validate-default.md | 179 ++++++++++++++ .../semantic-bridge-validate-simple-rules.md | 199 +++++++++++++++ content/how-tos/toc.md | 8 + 17 files changed, 1424 insertions(+), 24 deletions(-) create mode 100644 content/how-tos/semantic-bridge-add-object.md create mode 100644 content/how-tos/semantic-bridge-import.md create mode 100644 content/how-tos/semantic-bridge-remove-object.md create mode 100644 content/how-tos/semantic-bridge-rename-objects.md create mode 100644 content/how-tos/semantic-bridge-serialize.md create mode 100644 content/how-tos/semantic-bridge-validate-contextual-rules.md create mode 100644 content/how-tos/semantic-bridge-validate-default.md create mode 100644 content/how-tos/semantic-bridge-validate-simple-rules.md diff --git a/content/features/semantic-bridge-metric-view-validation.md b/content/features/semantic-bridge-metric-view-validation.md index 2341bd84..7860e46b 100644 --- a/content/features/semantic-bridge-metric-view-validation.md +++ b/content/features/semantic-bridge-metric-view-validation.md @@ -55,7 +55,7 @@ Rather than dig into that interface, it is easier to understand and work with va - [`MakeValidationRuleForView`](/api/TabularEditor.SemanticBridge.Platforms.Databricks.DatabricksMetricViewService.html#TabularEditor_SemanticBridge_Platforms_Databricks_DatabricksMetricViewService_MakeValidationRuleForMeasure_System_String_System_String_System_String_System_Func_TabularEditor_SemanticBridge_Platforms_Databricks_MetricView_Measure_System_Boolean__) - [`MakeValidationRule`](/api/TabularEditor.SemanticBridge.Platforms.Databricks.DatabricksMetricViewService.html#TabularEditor_SemanticBridge_Platforms_Databricks_DatabricksMetricViewService_MakeValidationRule__1_System_String_System_String_System_Func___0_TabularEditor_SemanticBridge_Platforms_Databricks_Validation_IReadOnlyValidationContext_System_Collections_Generic_IEnumerable_TabularEditor_SemanticBridge_Orchestration_DiagnosticMessage___) -The first are all special purpose to make a rule for the object type in their name. +The first four are all special purpose to make a rule for the object type in their name. They offer a simplified interface where you provide: - `name`: a short, unique name to identify the rule @@ -63,6 +63,8 @@ They offer a simplified interface where you provide: - `message`: the message that will be shown in the diagnostic message when this rule is violated - `isInvalid`: a function that will take the Metric View object as an argument, and will return `true` if that object is invalid +The name and category are intended to make it easier to deal with collections of rules, as you will do in C# scripts that utilize custom rules. + This is easier to understand with an example: ```csharp @@ -79,7 +81,7 @@ This makes a rule that will apply to all [Metric View `Dimension`s](/api/Tabular The rule is named (ironically) "no_underscores". It has a category of "naming", to indicate that it has to do with how we name things. The message you will see when the rule is violated is, "Do not include underscores in dimension names. Use user-friendly names with spaces." -The last argument defines a function that will be called for each dimension in the model; its body is a boolean expression that returns `true` for a dimension with an underscore in its `Name` property. +The last argument defines a function that will be called for each Metric View dimension in the model; its body is a boolean expression that returns `true` for a Metric View dimension with an underscore in its `Name` property. Here's a full script that defines a Metric View inline, and then deserializes and validates it, showing how this rule is used. @@ -114,7 +116,7 @@ You can see the details that are provided in the diagnostic message: - Code, Context: not used when you use one of these helper methods to make your rule - Message: the message you defined in the rule - Path: a representation of where you find that object in the Metric View -- Severity: set to Error by default with these simplified helpers +- Severity: set to Error by default with these helpers ![output from one field violating the validation rule](/images/features/semantic-bridge/semantic-bridge-metric-view-validation.png) @@ -163,11 +165,11 @@ You can see in this example that we include the duplicated Metric View dimension It is a good idea to make many simple rules, rather than fewer, more complex rules. The validation process is very light-weight, so there are not performance concerns from a proliferation of rules. -For example, if you want to make sure that dimension names are not `camelCased`, not `kebab-cased` and not `snake_cased`, it is better to make three separate rules, rather than trying to check for each of those conditions in a single rule. +For example, if you want to make sure that Metric View dimension names are not `camelCased`, not `kebab-cased` and not `snake_cased`, it is better to make three separate rules, rather than trying to check for each of those conditions in a single rule. This allows each rule to be simple, and for the messages to be very specific, and therefore more easily actionable. In general, once you have a rule that catches a specific issue, it is better to leave that alone, rather than editing it. -If you find that the rule is missing some condition you'd like to catch, just add a new small, simple rule to catch that new condition. +If you find that the rule is missing some condition you'd like to catch, just add a new, small, simple rule to catch that new condition. You can save many different rules in a C# script for re-use with different Metric Views. Because [a loaded Metric View is accessible in multiple scripts](xref:semantic-bridge-metric-view-object-model#loading-and-accessing-the-metric-view) you can save C# scripts that only define rules and then call `SemanticBridge.MetricView.Validate`, and re-use those validation scripts easily. diff --git a/content/features/semantic-bridge.md b/content/features/semantic-bridge.md index 3e0d2fca..e74bb2af 100644 --- a/content/features/semantic-bridge.md +++ b/content/features/semantic-bridge.md @@ -36,7 +36,8 @@ It also allows for migrations from one platform to another. The Semantic Bridge is available through **File > Open > Import from Metric View YAML**. This will launch a dialogue to guide you through importing a Metric View into the current Tabular model, adding tables, columns, measures, and relationships based on the structure of the Metric View. -You must have a Tabular model open in Tabular Editor. This can be a new, empty model or an existing model you want to enhance with the objects from the Metric View. +You must have a Tabular model open in Tabular Editor. +This can be a new, empty model or an existing model you want to enhance with the objects from the Metric View. The menu button will not be enabled until you open or create a new Tabular model. ![Import a Metric View from the file menu with **File > Open > Import from Metric View YAML**](/images/features/semantic-bridge/semantic-bridge-file-menu-import.png) @@ -67,6 +68,8 @@ There are three possible results: 2. Success, but with some issues: the Semantic Bridge was not able to translate every object in the Metric View; there are diagnostic messages you can view to understand what needs your attention. 3. Failure: the Semantic Bridge could not translate the Metric View +After either success type, you can use undo/redo functionality like normal in Tabular Editor to undo or instantly replay the import. + **Success** ![Import success notification](/images/features/semantic-bridge/semantic-bridge-import-success.png) @@ -99,7 +102,7 @@ Translating a Metric View to a Tabular model happens in several steps: 2. Deserialize the YAML 3. Validate that the deserialized YAML represents a valid Metric View 4. If it is a valid Metric View, store it as a the currently loaded Metric View, similar to how there is a loaded Tabular model that you interact with. - If it is not a valid Metric View, the process stops here and diagnostic messages are available. + If it is not a valid Metric View, the process stops here and messages are available. 4. Analyze the Metric View and attempt to transform it to an intermediate representation 5. Attempt to transform the intermediate representation to a Tabular model diff --git a/content/how-tos/includes/sample-metricview-deserialize.md b/content/how-tos/includes/sample-metricview-deserialize.md index ecadf2bc..2aeb794a 100644 --- a/content/how-tos/includes/sample-metricview-deserialize.md +++ b/content/how-tos/includes/sample-metricview-deserialize.md @@ -10,13 +10,13 @@ SemanticBridge.MetricView.Deserialize(""" joins: - name: product source: sales.dim.product - on: product_id = product.product_id + on: source.product_id = product.product_id - name: customer source: sales.dim.customer - on: customer_id = customer.customer_id + on: source.customer_id = customer.customer_id - name: date source: sales.dim.date - on: order_date = date.date_key + on: source.order_date = date.date_key dimensions: - name: product_name expr: product.product_name diff --git a/content/how-tos/includes/sample-metricview.md b/content/how-tos/includes/sample-metricview.md index 2928b2f4..ae47b012 100644 --- a/content/how-tos/includes/sample-metricview.md +++ b/content/how-tos/includes/sample-metricview.md @@ -6,13 +6,13 @@ source: sales.fact.orders joins: - name: product source: sales.dim.product - on: product_id = product.product_id + on: source.product_id = product.product_id - name: customer source: sales.dim.customer - on: customer_id = customer.customer_id + on: source.customer_id = customer.customer_id - name: date source: sales.dim.date - on: order_date = date.date_key + on: source.order_date = date.date_key dimensions: - name: product_name expr: product.product_name diff --git a/content/how-tos/includes/sample-metricview.yaml b/content/how-tos/includes/sample-metricview.yaml index 923c2398..df457333 100644 --- a/content/how-tos/includes/sample-metricview.yaml +++ b/content/how-tos/includes/sample-metricview.yaml @@ -3,13 +3,13 @@ source: sales.fact.orders joins: - name: product source: sales.dim.product - on: product_id = product.product_id + on: source.product_id = product.product_id - name: customer source: sales.dim.customer - on: customer_id = customer.customer_id + on: source.customer_id = customer.customer_id - name: date source: sales.dim.date - on: order_date = date.date_key + on: source.order_date = date.date_key dimensions: - name: product_name expr: product.product_name diff --git a/content/how-tos/index.md b/content/how-tos/index.md index 483d20db..594393eb 100644 --- a/content/how-tos/index.md +++ b/content/how-tos/index.md @@ -43,7 +43,15 @@ This section contains step-by-step guides for accomplishing specific tasks with - [Undo and Redo](undo-redo.md) - Using undo/redo functionality ### Semantic Bridge -- @semantic-bridge-load-inspect +- @semantic-bridge-load-inspect - Load a Metric View and explore its structure +- @semantic-bridge-import - Import a Metric View to Tabular and view diagnostics +- @semantic-bridge-validate-default - Validate with built-in rules +- @semantic-bridge-validate-simple-rules - Create predicate-based validation rules +- @semantic-bridge-validate-contextual-rules - Create rules with cross-object checks +- @semantic-bridge-add-object - Add a new object to a Metric View +- @semantic-bridge-remove-object - Remove objects from a Metric View +- @semantic-bridge-rename-object - Rename objects using copy-modify pattern +- @semantic-bridge-serialize - Serialize a Metric View back to YAML --- diff --git a/content/how-tos/semantic-bridge-add-object.md b/content/how-tos/semantic-bridge-add-object.md new file mode 100644 index 00000000..918d69d5 --- /dev/null +++ b/content/how-tos/semantic-bridge-add-object.md @@ -0,0 +1,74 @@ +--- +uid: semantic-bridge-add-object +title: Add an Object to a Metric View +author: Greg Baldini +updated: 2025-01-27 +applies_to: + products: + - product: Tabular Editor 2 + none: true + - product: Tabular Editor 3 + since: 3.25.0 + editions: + - edition: Desktop + none: true + - edition: Business + none: true + - edition: Enterprise + full: true +--- +# Add an object to a Metric View + +This how-to demonstrates how to add a new Metric View dimension (field) to a loaded Metric View. +Similar patterns apply to all Metric View collections. + +[!INCLUDE [deserialize](includes/sample-metricview-deserialize.md)] + +## Create a new Metric View Dimension object + +Use the Metric View `Dimension` constructor to create a new Metric View dimension: + +```csharp +using MetricView = TabularEditor.SemanticBridge.Platforms.Databricks.MetricView; + +var newDimension = new MetricView.Dimension +{ + Name = "customer_city", + Expr = "customer.city" +}; +``` + +## Add to the Metric View + +The Metric View `Dimensions` property is an `IList`, so you can use `Add()`: + +```csharp +using MetricView = TabularEditor.SemanticBridge.Platforms.Databricks.MetricView; + +var sb = new System.Text.StringBuilder(); +sb.AppendLine($"Dimensions before adding: {SemanticBridge.MetricView.Model.Dimensions.Count}"); + +var newDimension = new MetricView.Dimension +{ + Name = "customer_city", + Expr = "customer.city" +}; + +SemanticBridge.MetricView.Model.Dimensions.Add(newDimension); + +sb.AppendLine($"Dimensions after adding: {SemanticBridge.MetricView.Model.Dimensions.Count}"); +Output(sb.ToString()); +``` + +**Output** + +``` +Dimensions before adding: 8 +Dimensions after adding: 9 +``` + +## See also + +- @semantic-bridge-remove-object +- @semantic-bridge-rename-objects +- @semantic-bridge-serialize diff --git a/content/how-tos/semantic-bridge-how-tos.md b/content/how-tos/semantic-bridge-how-tos.md index b6ee2551..d6e0288e 100644 --- a/content/how-tos/semantic-bridge-how-tos.md +++ b/content/how-tos/semantic-bridge-how-tos.md @@ -20,3 +20,24 @@ applies_to: # Semantic Bridge How-Tos These how-tos are focused on interacting with the [Databricks Metric View object model](xref:semantic-bridge-metric-view-object-model) and supporting import workflows to bring these Metric Views into a Tabular semantic model. + +## Getting Started + +- @semantic-bridge-load-inspect - Load a Metric View and explore its structure +- @semantic-bridge-import - Import a Metric View to Tabular and view diagnostics + +## Validation + +- @semantic-bridge-validate-default - Validate with built-in rules +- @semantic-bridge-validate-simple-rules - Create predicate-based validation rules for naming conventions +- @semantic-bridge-validate-contextual-rules - Create rules with cross-object checks like duplicate detection + +## Manipulating the Object Model + +- @semantic-bridge-add-object - Add a new object to a Metric View +- @semantic-bridge-remove-object - Remove objects from a Metric View +- @semantic-bridge-rename-objects - Rename objects using copy-modify pattern + +## Serialization + +- @semantic-bridge-serialize - Serialize a Metric View back to YAML diff --git a/content/how-tos/semantic-bridge-import.md b/content/how-tos/semantic-bridge-import.md new file mode 100644 index 00000000..098f0011 --- /dev/null +++ b/content/how-tos/semantic-bridge-import.md @@ -0,0 +1,215 @@ +--- +uid: semantic-bridge-import +title: Import a Metric View and View Diagnostics +author: Greg Baldini +updated: 2025-01-27 +applies_to: + products: + - product: Tabular Editor 2 + none: true + - product: Tabular Editor 3 + since: 3.25.0 + editions: + - edition: Desktop + none: true + - edition: Business + none: true + - edition: Enterprise + full: true +--- +# Import a Metric View and View Diagnostics + +This how-to demonstrates how to import a Metric View into a Tabular model using C# scripts, and how to view diagnostic messages from the import process. + +## Prerequisites + +You must have a Tabular model open in Tabular Editor before importing. This can be: + +- A new, empty model +- An existing model you want to enhance with objects from the Metric View + +## Import methods + +There are two import methods: + +| Method | Description | +|---------------------------|------------------------------------------------| +| `ImportToTabularFromFile` | Loads from a file path and imports in one step | +| `ImportToTabular` | Imports the currently loaded Metric View | + +Both methods require: + +- The target Tabular `Model` +- Databricks hostname (for M partition expressions) +- Databricks HTTP path (for M partition expressions) + +## Import from file + +Use `ImportToTabularFromFile` to load and import in one operation: + +```csharp +var success = SemanticBridge.MetricView.ImportToTabularFromFile( + "C:/MetricViews/sales-metrics.yaml", + Model, + "your-workspace.azuredatabricks.net", + "/sql/1.0/warehouses/abc123def456", + out var diagnostics +); + +var sb = new System.Text.StringBuilder(); +if (success) +{ + sb.AppendLine("Import successful!"); + sb.AppendLine($"Diagnostics: {diagnostics.Count}"); +} +else +{ + sb.AppendLine("Import failed."); + sb.AppendLine($"Errors: {diagnostics.Count}"); +} + +Output(sb.ToString()); +``` + +## Import a loaded Metric View + +If you've already loaded a Metric View (for inspection or modification), use `ImportToTabular`: + +```csharp +// Load the Metric View first +SemanticBridge.MetricView.Load("C:/MetricViews/sales-metrics.yaml"); + +// Optionally inspect or modify it +var view = SemanticBridge.MetricView.Model; + +var sb = new System.Text.StringBuilder(); +sb.AppendLine($"Importing Metric View with {view.Dimensions.Count} dimensions and {view.Measures.Count} measures"); + +// Import to Tabular +var success = SemanticBridge.MetricView.ImportToTabular( + Model, + "your-workspace.azuredatabricks.net", + "/sql/1.0/warehouses/abc123def456", + out var diagnostics +); + +if (success) +{ + sb.AppendLine("Import successful!"); +} +else +{ + sb.AppendLine("Import failed."); +} + +Output(sb.ToString()); +``` + +## Using placeholder connection values + +If you're testing the translation without a real Databricks connection, you can use placeholder values: + +```csharp +var success = SemanticBridge.MetricView.ImportToTabularFromFile( + "C:/MetricViews/sales-metrics.yaml", + Model, + "placeholder-host", + "placeholder-path", + out var diagnostics +); + +var sb = new System.Text.StringBuilder(); +sb.AppendLine("Import complete (with placeholder connection values)"); +sb.AppendLine("Note: Update the M partition expressions before refreshing data."); +Output(sb.ToString()); +``` + +## View diagnostics after import + +You can access diagnostics from the last import at any time using `ImportDiagnostics`. +This example assumes that you have previously run an import, either via GUI or C# script. + +```csharp +var diagnostics = SemanticBridge.MetricView.ImportDiagnostics; + +var sb = new System.Text.StringBuilder(); +sb.AppendLine("LAST IMPORT DIAGNOSTICS"); +sb.AppendLine("-----------------------"); +sb.AppendLine(""); +sb.AppendLine($"Total issues: {diagnostics.Count}"); +sb.AppendLine(""); + +foreach (var diag in diagnostics) +{ + sb.AppendLine($"[{diag.Severity}] {diag.Message}"); +} + +Output(sb.ToString()); +``` + +## Output diagnostics directly + +For quick inspection, you can output the diagnostics collection directly: + +```csharp +// Output all diagnostics from the last import +SemanticBridge.MetricView.ImportDiagnostics.Output(); +``` + +## Complete workflow example + +Load, validate, and import with full diagnostic reporting: + +```csharp +var sb = new System.Text.StringBuilder(); + +// Load the Metric View +SemanticBridge.MetricView.Load("C:/MetricViews/sales-metrics.yaml"); +var view = SemanticBridge.MetricView.Model; + +sb.AppendLine("METRIC VIEW SUMMARY"); +sb.AppendLine("-------------------"); +sb.AppendLine($"Source: {view.Source}"); +sb.AppendLine($"Joins: {view.Joins?.Count ?? 0}"); +sb.AppendLine($"Dimensions: {view.Dimensions.Count}"); +sb.AppendLine($"Measures: {view.Measures.Count}"); +sb.AppendLine(""); + +// Validate first +var validationDiags = SemanticBridge.MetricView.Validate().ToList(); +sb.AppendLine("VALIDATION"); +sb.AppendLine("----------"); +sb.AppendLine($"Issues: {validationDiags.Count}"); +sb.AppendLine(""); + +// Import +var success = SemanticBridge.MetricView.ImportToTabular( + Model, + "your-workspace.azuredatabricks.net", + "/sql/1.0/warehouses/abc123def456", + out var importDiags +); + +sb.AppendLine("IMPORT RESULT"); +sb.AppendLine("-------------"); +sb.AppendLine($"Success: {success}"); +sb.AppendLine($"Diagnostics: {importDiags.Count}"); +sb.AppendLine(""); + +if (importDiags.Count > 0) +{ + sb.AppendLine("Import issues:"); + foreach (var diag in importDiags) + { + sb.AppendLine($" [{diag.Severity}] {diag.Message}"); + } +} + +Output(sb.ToString()); +``` + +## See also + +- [Semantic Bridge Overview](xref:semantic-bridge) +- [Validate a Metric View](xref:semantic-bridge-validate-default) +- [Load and Inspect a Metric View](xref:semantic-bridge-load-inspect) diff --git a/content/how-tos/semantic-bridge-load-inspect.md b/content/how-tos/semantic-bridge-load-inspect.md index 579a5fc5..a29eeb57 100644 --- a/content/how-tos/semantic-bridge-load-inspect.md +++ b/content/how-tos/semantic-bridge-load-inspect.md @@ -43,7 +43,7 @@ Output($"Loaded Metric View version: {SemanticBridge.MetricView.Model.Version}") ## Access the loaded Metric View After loading, the Metric View is available in any script as `SemanticBridge.MetricView.Model`. -This returns a [`View`](xref:TabularEditor.SemanticBridge.Platforms.Databricks.MetricView.View) object, the root of the [Metric View object graph](xref:semantic-bridge-metric-view-object-model). +This returns a Metric View [`View`](xref:TabularEditor.SemanticBridge.Platforms.Databricks.MetricView.View) object, the root of the [Metric View object graph](xref:semantic-bridge-metric-view-object-model). ```csharp var sb = new System.Text.StringBuilder(); @@ -54,9 +54,9 @@ sb.AppendLine($"Source (fact table): {view.Source}"); Output(sb.ToString()); ``` -## Inspect joins (dimension tables) +## Inspect Metric View joins (dimension tables) -The `Joins` property contains the dimension tables joined to the fact. +The Metric View `Joins` property contains the dimension tables joined to the fact. ```csharp var sb = new System.Text.StringBuilder(); @@ -94,9 +94,9 @@ Join: date On: order_date = date.date_key ``` -## Inspect dimensions (fields) +## Inspect Metric View dimensions (fields) -The `Dimensions` property contains all field definitions. +The Metric View `Dimensions` property contains all field definitions. ```csharp var sb = new System.Text.StringBuilder(); @@ -126,9 +126,9 @@ order_year <- date.year order_month <- date.month_name ``` -## Inspect measures +## Inspect Metric View measures -The `Measures` property contains all measure definitions with their aggregation expressions. +The Metric View `Measures` property contains all Metric View measure definitions with their aggregation expressions. ```csharp var sb = new System.Text.StringBuilder(); diff --git a/content/how-tos/semantic-bridge-remove-object.md b/content/how-tos/semantic-bridge-remove-object.md new file mode 100644 index 00000000..f06f92cb --- /dev/null +++ b/content/how-tos/semantic-bridge-remove-object.md @@ -0,0 +1,156 @@ +--- +uid: semantic-bridge-remove-object +title: Remove an Object from a Metric View +author: Greg Baldini +updated: 2025-01-27 +applies_to: + products: + - product: Tabular Editor 2 + none: true + - product: Tabular Editor 3 + since: 3.25.0 + editions: + - edition: Desktop + none: true + - edition: Business + none: true + - edition: Enterprise + full: true +--- +# Remove an object from a Metric View + +This how-to demonstrates how to remove Metric View dimensions from a loaded Metric View. +Similar approaches apply to all collections in a Metric View. + +[!INCLUDE [deserialize](includes/sample-metricview-deserialize.md)] + +> [!NOTE] +> Each removal script here affects the currently loaded Metric View. +> If you want to run all of these, make sure to run the `Deserialize` above before each removal. + +## Remove by name + +Find the Metric View dimension and remove it from the collection: + +```csharp +var view = SemanticBridge.MetricView.Model; + +var sb = new System.Text.StringBuilder(); +sb.AppendLine($"Dimensions before: {view.Dimensions.Count}"); + +var dimToRemove = view.Dimensions.FirstOrDefault(d => d.Name == "order_month"); +if (dimToRemove != null) +{ + view.Dimensions.Remove(dimToRemove); + sb.AppendLine($"Removed: {dimToRemove.Name}"); +} + +sb.AppendLine($"Dimensions after: {view.Dimensions.Count}"); +Output(sb.ToString()); +``` + +**Output:** + +``` +Dimensions before: 6 +Removed: order_month +Dimensions after: 5 +``` + +Observe that if you run the script above twice in a row, there is no additional removal; the before and after counts are both 5. + +## Remove multiple Metric View dimensions + +Use LINQ to filter and rebuild the collection: + +```csharp +using MetricView = TabularEditor.SemanticBridge.Platforms.Databricks.MetricView; + +var view = SemanticBridge.MetricView.Model; + +var sb = new System.Text.StringBuilder(); +sb.AppendLine($"Dimensions before: {view.Dimensions.Count}"); + +// Remove all date-related dimensions +string[] toRemove = ["order_date", "order_year", "order_month"]; + +var toKeep = view.Dimensions + .Where(d => !toRemove.Contains(d.Name)) + .ToList(); + +// Clear and repopulate +view.Dimensions.Clear(); +foreach (var dim in toKeep) +{ + view.Dimensions.Add(dim); +} + +sb.AppendLine($"Dimensions after: {view.Dimensions.Count}"); +sb.AppendLine(); +sb.AppendLine("Remaining dimensions:"); +sb.AppendLine("---------------------"); +foreach (var dim in view.Dimensions) +{ + sb.AppendLine($" {dim.Name}"); +} + +Output(sb.ToString()); +``` + +**Output:** + +``` +Dimensions before: 3 +Dimensions after: 3 + +Remaining dimensions: +--------------------- + product_name + product_category + customer_segment +``` + +## Remove Metric View dimensions from a specific table + +Remove all Metric View dimensions that reference the date table. + +> [!WARNING] +> This example is not guaranteed to remove all and exclusively Metric View dimensions which reference a given Metric View Join. +> Metric View Dimensions may include near-arbitrary SQL expressions, and may also reference previously defined Metric View Dimensions. +> This example is for illustrative purposes only. + +```csharp +var view = SemanticBridge.MetricView.Model; + +var sb = new System.Text.StringBuilder(); +sb.AppendLine($"Dimensions before: {view.Dimensions.Count}"); + +var toRemove = view.Dimensions + .Where(d => d.Expr.StartsWith("date.")) + .ToList(); + +foreach (var dim in toRemove) +{ + view.Dimensions.Remove(dim); + sb.AppendLine($"Removed: {dim.Name} ({dim.Expr})"); +} + +sb.AppendLine($"Dimensions after: {view.Dimensions.Count}"); +Output(sb.ToString()); +``` + +**Output:** + +``` +Dimensions before: 6 +Removed: order_date (date.full_date) +Removed: order_year (date.year) +Removed: order_month (date.month_name) +Dimensions after: 3 +``` + +## See also + +- @semantic-bridge-add-object +- @semantic-bridge-rename-objects +- @semantic-bridge-serialize diff --git a/content/how-tos/semantic-bridge-rename-objects.md b/content/how-tos/semantic-bridge-rename-objects.md new file mode 100644 index 00000000..c7ef337e --- /dev/null +++ b/content/how-tos/semantic-bridge-rename-objects.md @@ -0,0 +1,169 @@ +--- +uid: semantic-bridge-rename-objects +title: Rename Objects in a Metric View +author: Greg Baldini +updated: 2025-01-27 +applies_to: + products: + - product: Tabular Editor 2 + none: true + - product: Tabular Editor 3 + since: 3.25.0 + editions: + - edition: Desktop + none: true + - edition: Business + none: true + - edition: Enterprise + full: true +--- +# Rename objects in a Metric View + +This how-to demonstrates how to rename Metric View dimensions using a copy-modify pattern for bulk transformations. +The same patterns apply to all collections in a Metric View. + +[!INCLUDE [deserialize](includes/sample-metricview-deserialize.md)] + +## The copy-modify pattern + +Since Metric View dimension names are properties on objects in a collection, the cleanest approach is to: + +1. Create new Metric View `Dimension` objects with the modified names +2. Clear the original collection +3. Add the new objects + +This avoids issues with modifying objects while iterating. + +## Convert snake_case to Title Case + +Transform Metric View dimension names from `product_name` to `Product Name`: + +```csharp +using System.Globalization; +using MetricView = TabularEditor.SemanticBridge.Platforms.Databricks.MetricView; + +var view = SemanticBridge.MetricView.Model; +var textInfo = CultureInfo.CurrentCulture.TextInfo; + +var sb = new System.Text.StringBuilder(); +sb.AppendLine("BEFORE"); +sb.AppendLine("------"); +foreach (var dim in view.Dimensions) +{ + sb.AppendLine($" {dim.Name}"); +} + +// Create renamed dimensions +var renamed = view.Dimensions.Select(dim => new MetricView.Dimension +{ + Name = textInfo.ToTitleCase(dim.Name.Replace('_', ' ')), + Expr = dim.Expr +}).ToList(); + +// Replace the collection +view.Dimensions.Clear(); +foreach (var dim in renamed) +{ + view.Dimensions.Add(dim); +} + +sb.AppendLine(); +sb.AppendLine("AFTER"); +sb.AppendLine("-----"); +foreach (var dim in view.Dimensions) +{ + sb.AppendLine($" {dim.Name}"); +} + +Output(sb.ToString()); +``` + +**Output:** + +``` +BEFORE +------ + product_name + product_category + customer_segment + order_date + order_year + order_month + +AFTER +----- + Product Name + Product Category + Customer Segment + Order Date + Order Year + Order Month +``` + +## Rename using a mapping dictionary + +Apply specific renames using a lookup: + +```csharp +using MetricView = TabularEditor.SemanticBridge.Platforms.Databricks.MetricView; + +var view = SemanticBridge.MetricView.Model; + +// Define rename mappings +var renames = new Dictionary +{ + { "product_name", "Product" }, + { "product_category", "Category" }, + { "customer_segment", "Segment" }, + { "order_date", "Date" }, + { "order_year", "Year" }, + { "order_month", "Month" } +}; + +var sb = new System.Text.StringBuilder(); + +// Create renamed dimensions +var renamed = view.Dimensions + .Select( + dim => new MetricView.Dimension + { + Name = renames.TryGetValue(dim.Name, out var newName) ? newName : dim.Name, + Expr = dim.Expr + }) + .ToList(); + +// Replace the collection +view.Dimensions.Clear(); +foreach (var dim in renamed) +{ + view.Dimensions.Add(dim); +} + +sb.AppendLine("Renamed dimensions:"); +sb.AppendLine("-------------------"); +foreach (var dim in view.Dimensions) +{ + sb.AppendLine($" {dim.Name,-20} <- {dim.Expr}"); +} + +Output(sb.ToString()); +``` + +**Output:** + +``` +Renamed dimensions: +------------------- + Product <- product.product_name + Category <- product.category + Segment <- customer.segment + Date <- date.full_date + Year <- date.year + Month <- date.month_name +``` + +## See also + +- @semantic-bridge-add-object +- @semantic-bridge-remove-object +- @semantic-bridge-serialize diff --git a/content/how-tos/semantic-bridge-serialize.md b/content/how-tos/semantic-bridge-serialize.md new file mode 100644 index 00000000..f83fcbd2 --- /dev/null +++ b/content/how-tos/semantic-bridge-serialize.md @@ -0,0 +1,138 @@ +--- +uid: semantic-bridge-serialize +title: Serialize a Metric View to YAML +author: Greg Baldini +updated: 2025-01-27 +applies_to: + products: + - product: Tabular Editor 2 + none: true + - product: Tabular Editor 3 + since: 3.25.0 + editions: + - edition: Desktop + none: true + - edition: Business + none: true + - edition: Enterprise + full: true +--- +# Serialize a Metric View to YAML + +This how-to demonstrates how to serialize a Metric View back to YAML format, either as a string or saved to a file. + +> [!WARNING] +> The MVP only supports v0.1 Metric View properties. Any v1.1 metadata present in a loaded Metric View is silently ignored and will be lost when you serialize. +> Do not overwrite a source YAML file that contains v1.1 metadata. + + +[!INCLUDE [deserialize](includes/sample-metricview-deserialize.md)] + +## Serialize to a string + +Use `Serialize()` to get the YAML representation: + +```csharp +var yaml = SemanticBridge.MetricView.Serialize(); + +var sb = new System.Text.StringBuilder(); +sb.AppendLine("YAML output:"); +sb.AppendLine("------------"); +sb.AppendLine(yaml); +Output(sb.ToString()); +``` + +## Save to a file + +Use `Save(path)` to write the YAML directly to disk: + +```csharp +var path = "C:/MetricViews/updated-sales-metrics.yaml"; + +SemanticBridge.MetricView.Save(path); + +Output($"Metric View saved to: {path}"); +``` + +## Round-trip workflow + +A common workflow is to load, modify, and save a Metric View: + +```csharp +using System.Globalization; +using MetricView = TabularEditor.SemanticBridge.Platforms.Databricks.MetricView; + +// The Metric View is already loaded from the include above + +var view = SemanticBridge.MetricView.Model; +var textInfo = CultureInfo.CurrentCulture.TextInfo; + +// Modify: rename dimensions from snake_case to Title Case +var renamed = view.Dimensions.Select(dim => new MetricView.Dimension +{ + Name = textInfo.ToTitleCase(dim.Name.Replace('_', ' ')), + Expr = dim.Expr +}).ToList(); + +view.Dimensions.Clear(); +foreach (var dim in renamed) +{ + view.Dimensions.Add(dim); +} + +// Serialize to see the result +var yaml = SemanticBridge.MetricView.Serialize(); + +var sb = new System.Text.StringBuilder(); +sb.AppendLine("Modified YAML:"); +sb.AppendLine("--------------"); +sb.AppendLine(yaml); +Output(sb.ToString()); +``` + +**Output:** + +``` +Modified YAML: +-------------- +version: 0.1 +source: sales.fact.orders +joins: +- name: product + source: sales.dim.product + on: source.product_id = product.product_id +- name: customer + source: sales.dim.customer + on: source.customer_id = customer.customer_id +- name: date + source: sales.dim.date + on: source.order_date = date.date_key +dimensions: +- name: Product Name + expr: product.product_name +- name: Product Category + expr: product.category +- name: Customer Segment + expr: customer.segment +- name: Order Date + expr: date.full_date +- name: Order Year + expr: date.year +- name: Order Month + expr: date.month_name +measures: +- name: total_revenue + expr: SUM(revenue) +- name: order_count + expr: COUNT(order_id) +- name: avg_order_value + expr: AVG(revenue) +- name: unique_customers + expr: COUNT(DISTINCT customer_id) +``` + +## See also + +- @semantic-bridge-load-inspect +- @semantic-bridge-import +- @semantic-bridge diff --git a/content/how-tos/semantic-bridge-validate-contextual-rules.md b/content/how-tos/semantic-bridge-validate-contextual-rules.md new file mode 100644 index 00000000..5a6725d1 --- /dev/null +++ b/content/how-tos/semantic-bridge-validate-contextual-rules.md @@ -0,0 +1,228 @@ +--- +uid: semantic-bridge-validate-contextual-rules +title: Create Contextual Validation Rules +author: Greg Baldini +updated: 2025-01-27 +applies_to: + products: + - product: Tabular Editor 2 + none: true + - product: Tabular Editor 3 + since: 3.25.0 + editions: + - edition: Desktop + none: true + - edition: Business + none: true + - edition: Enterprise + full: true +--- +# Create Contextual Validation Rules + +This how-to demonstrates how to create validation rules that check conditions across multiple objects using the validation context. +These rules are for illustrative purposes only and do not necessarily reflect hard technical requirements of either Metric Views or the Semantic Bridge. + +## When to use contextual rules + +Use contextual rules when you need to: + +- Detect duplicate names across objects +- Check that names don't conflict between different object types +- Access information about previously validated objects + +> [!NOTE] +> The validation process validates each Metric View object in order, so the context consists only of those items already visited in the validation. + +## The MakeValidationRule method + +The generic `MakeValidationRule` method provides access to the validation context: + +```csharp +SemanticBridge.MetricView.MakeValidationRule( + "rule_name", + "category", + (obj, context) => { + // Return IEnumerable + // Empty collection means validation passed + } +); +``` + +The `context` parameter provides: + +- `context.DimensionNames` - names of dimensions already validated +- `context.MeasureNames` - names of measures already validated +- `context.JoinNames` - names of joins already validated +- `context.MakeError(message)` - create an error diagnostic +- `context.MakeError(message, property)` - create an error diagnostic, calling out the specific property with an error + +Because you create the diagnostic message in the body of the validation function, you can put details about the current object being validated into the message. + +## Using directive for Metric View types + +Add this using directive to reference Metric View types: + +```csharp +using MetricView = TabularEditor.SemanticBridge.Platforms.Databricks.MetricView; +``` + +## Rule: Metric View Measure name must not duplicate a Metric View dimension name + +```csharp +using MetricView = TabularEditor.SemanticBridge.Platforms.Databricks.MetricView; + +var measureNotDimensionRule = SemanticBridge.MetricView.MakeValidationRule( + "measure_not_dimension_name", + "naming", + (measure, context) => + context.DimensionNames.Contains(measure.Name) + ? [context.MakeError($"Measure '{measure.Name}' has the same name as a dimension")] + : [] +); +``` + +## Rule: Metric View Measure name must not duplicate another Metric View measure + +```csharp +using MetricView = TabularEditor.SemanticBridge.Platforms.Databricks.MetricView; + +var noDuplicateMeasureRule = SemanticBridge.MetricView.MakeValidationRule( + "no_duplicate_measures", + "naming", + (measure, context) => + context.MeasureNames.Contains(measure.Name) + ? [context.MakeError($"Measure '{measure.Name}' is defined more than once")] + : [] +); +``` + +## Why separate rules are better + +Notice that we created two separate rules instead of one combined rule. This is the recommended approach because: + +1. **Clearer error messages**: Each rule produces a specific, actionable message +2. **Easier maintenance**: Rules can be added, removed, or modified independently +3. **Simpler logic**: Each rule checks exactly one condition +4. **Better categorization**: Rules can be grouped and filtered by purpose + +## Complete example + +This Metric View has naming conflicts that will trigger both contextual rules: + +```csharp +using MetricView = TabularEditor.SemanticBridge.Platforms.Databricks.MetricView; + +// Create a Metric View with naming conflicts +SemanticBridge.MetricView.Deserialize(""" + version: 0.1 + source: sales.fact.orders + dimensions: + # 'revenue' is used as both a dimension and measure name + - name: revenue + expr: source.revenue + - name: quantity + expr: source.quantity + - name: order_date + expr: source.order_date + measures: + # measureNotDimensionRule violation - same name as dimension + - name: revenue + expr: SUM(source.revenue) + # noDuplicateMeasureRule violation - 'total_quantity' appears twice + - name: total_quantity + expr: SUM(source.quantity) + - name: total_quantity + expr: COUNT(source.order_id) + # This one is fine + - name: order_count + expr: COUNT(source.order_id) + """); + +// Define contextual rules +var measureNotDimensionRule = SemanticBridge.MetricView.MakeValidationRule( + "measure_not_dimension_name", + "naming", + (measure, context) => + context.DimensionNames.Contains(measure.Name) + ? [context.MakeError($"Measure '{measure.Name}' has the same name as a dimension")] + : [] +); + +var noDuplicateMeasureRule = SemanticBridge.MetricView.MakeValidationRule( + "no_duplicate_measures", + "naming", + (measure, context) => + context.MeasureNames.Contains(measure.Name) + ? [context.MakeError($"Measure '{measure.Name}' is defined more than once")] + : [] +); + +// Run validation +var diagnostics = SemanticBridge.MetricView.Validate([ + measureNotDimensionRule, + noDuplicateMeasureRule +]).ToList(); + +// Output results +var sb = new System.Text.StringBuilder(); +sb.AppendLine("CONTEXTUAL VALIDATION RESULTS"); +sb.AppendLine("-----------------------------"); +sb.AppendLine(""); +sb.AppendLine($"Found {diagnostics.Count} issue(s):"); +sb.AppendLine(""); + +foreach (var diag in diagnostics) +{ + sb.AppendLine($"[{diag.Severity}] {diag.Message}"); +} + +Output(sb.ToString()); +``` + +**Output:** + +``` +CONTEXTUAL VALIDATION RESULTS +----------------------------- + +Found 2 issue(s): + +[Error] Measure 'revenue' has the same name as a dimension +[Error] Measure 'total_quantity' is defined more than once +``` + +## Combining with default rules + +You can run contextual rules alongside the default validation rules: + +```csharp +using MetricView = TabularEditor.SemanticBridge.Platforms.Databricks.MetricView; + +var customRules = new[] { + SemanticBridge.MetricView.MakeValidationRule( + "measure_not_dimension_name", + "naming", + (measure, context) => + context.DimensionNames.Contains(measure.Name) + ? [context.MakeError($"Measure '{measure.Name}' has the same name as a dimension")] + : [] + ) +}; + +// Run default rules first +var defaultDiagnostics = SemanticBridge.MetricView.Validate().ToList(); + +// Then run custom rules +var customDiagnostics = SemanticBridge.MetricView.Validate(customRules).ToList(); + +var sb = new System.Text.StringBuilder(); +sb.AppendLine($"Default rule issues: {defaultDiagnostics.Count}"); +sb.AppendLine($"Custom rule issues: {customDiagnostics.Count}"); +Output(sb.ToString()); +``` + +## See also + +- [Semantic Bridge Validation](xref:semantic-bridge-metric-view-validation) +- [Create Simple Validation Rules](xref:semantic-bridge-validate-simple-rules) +- [Validate with Default Rules](xref:semantic-bridge-validate-default) diff --git a/content/how-tos/semantic-bridge-validate-default.md b/content/how-tos/semantic-bridge-validate-default.md new file mode 100644 index 00000000..62a08fa4 --- /dev/null +++ b/content/how-tos/semantic-bridge-validate-default.md @@ -0,0 +1,179 @@ +--- +uid: semantic-bridge-validate-default +title: Validate a Metric View with Default Rules +author: Greg Baldini +updated: 2025-01-27 +applies_to: + products: + - product: Tabular Editor 2 + none: true + - product: Tabular Editor 3 + since: 3.25.0 + editions: + - edition: Desktop + none: true + - edition: Business + none: true + - edition: Enterprise + full: true +--- +# Validate a Metric View with Default Rules + +This how-to demonstrates how to validate a loaded Metric View using the built-in validation rules and interpret the diagnostic messages. + +## Default validation rules + +The Semantic Bridge includes these built-in validation rules: + +| Rule | Description | +|--------------------------|-------------------------------------------------------------------------------| +| JoinNameRequired | Metric View Join must have a name | +| UniqueJoinName | Metric View Join names must be unique | +| JoinSourceRequired | Metric View Join must have a source | +| JoinOnOrUsingRequired | Metric View Join must specify either `on` or `using` | +| JoinOnOrUsingExclusivity | Metric View Join cannot specify both `on` and `using` | +| JoinOnFormat | Metric View Join `on` clause must be a valid equijoin expression | +| JoinUsingColumnCount | Metric View Join `using` clause must have exactly one column (MVP limitation) | +| DimensionNameRequired | Metric View Dimension must have a name | +| UniqueDimensionName | Metric View Dimension names must be unique | +| DimensionExprRequired | Metric View Dimension must have an expression | +| MeasureNameRequired | Metric View Measure must have a name | +| UniqueMeasureName | Metric View Measure names must be unique | +| MeasureExprRequired | Metric View Measure must have an expression | + +## Run validation with default rules + +Call `Validate()` with no arguments to use the built-in validation rules. + +```csharp +var diagnostics = SemanticBridge.MetricView.Validate().ToList(); + +Output($"Validation complete: {diagnostics.Count} issue(s) found"); +``` + +## Interpret diagnostic messages + +Each diagnostic message contains: + +- **Severity**: Error, Warning, or Information +- **Message**: Description of the issue +- **Path**: Location of the object in the Metric View hierarchy + +```csharp +var diagnostics = SemanticBridge.MetricView.Validate().ToList(); + +var sb = new System.Text.StringBuilder(); +sb.AppendLine("VALIDATION RESULTS"); +sb.AppendLine("------------------"); +sb.AppendLine(""); + +if (diagnostics.Count == 0) +{ + sb.AppendLine("No issues found."); +} +else +{ + foreach (var diag in diagnostics) + { + sb.AppendLine($"[{diag.Severity}] {diag.Message}"); + sb.AppendLine($" Path: {diag.Path}"); + sb.AppendLine(""); + } +} + +Output(sb.ToString()); +``` + +## Example with validation errors + +Some rules (required fields) are enforced during deserialization. +The remaining rules check for duplicates and structural issues after deserialization. + +This Metric View demonstrates violations that are caught by `Validate()`: + +```csharp +SemanticBridge.MetricView.Deserialize(""" + version: 0.1 + source: sales.fact.orders + joins: + # UniqueJoinName - duplicate name 'customer' + - name: customer + source: sales.dim.customer + on: customer_id = customer.customer_id + - name: customer + source: sales.dim.customer_backup + on: customer_id = customer_backup.customer_id + # JoinOnOrUsingRequired - neither on nor using + - name: date + source: sales.dim.date + dimensions: + # UniqueDimensionName - duplicate name 'category' + - name: category + expr: product.category + - name: category + expr: product.subcategory + - name: product_name + expr: product.product_name + measures: + # UniqueMeasureName - duplicate name 'total' + - name: total + expr: SUM(revenue) + - name: total + expr: SUM(quantity) + - name: order_count + expr: COUNT(order_id) + """); + +var diagnostics = SemanticBridge.MetricView.Validate().ToList(); + +var sb = new System.Text.StringBuilder(); +sb.AppendLine($"Found {diagnostics.Count} issue(s):"); +sb.AppendLine(""); + +foreach (var diag in diagnostics) +{ + sb.AppendLine($"[{diag.Severity}] {diag.Message}"); +} + +Output(sb.ToString()); +``` + +**Output:** + +``` +Found 6 issue(s): + +[Error] Join 'customer' must use a simple equality condition with table prefixes (e.g. 'source.column = dimension.column') +[Error] Duplicate join name: 'customer' +[Error] Join 'customer' must use a simple equality condition with table prefixes (e.g. 'source.column = dimension.column') +[Error] Join 'date' must specify either 'on' or 'using' clause +[Error] Duplicate dimension name: 'category' +[Error] Duplicate measure name: 'total' +``` + +## Filter diagnostics by severity + +You can filter diagnostics to focus on errors only: + +```csharp +using System.Linq; +using TabularEditor.SemanticBridge.Orchestration; + +var diagnostics = SemanticBridge.MetricView.Validate().ToList(); +var errors = diagnostics.Where(d => d.Severity == DiagnosticSeverity.Error).ToList(); + +var sb = new System.Text.StringBuilder(); +sb.AppendLine($"Errors: {errors.Count}"); +sb.AppendLine($"Total issues: {diagnostics.Count}"); +Output(sb.ToString()); +``` + +## Next steps + +- [Create simple validation rules](xref:semantic-bridge-validate-simple-rules) to enforce your own conventions +- [Create contextual validation rules](xref:semantic-bridge-validate-contextual-rules) for cross-object checks + +## See also + +- [Semantic Bridge Validation](xref:semantic-bridge-metric-view-validation) +- [Metric View Object Model](xref:semantic-bridge-metric-view-object-model) diff --git a/content/how-tos/semantic-bridge-validate-simple-rules.md b/content/how-tos/semantic-bridge-validate-simple-rules.md new file mode 100644 index 00000000..14e89b29 --- /dev/null +++ b/content/how-tos/semantic-bridge-validate-simple-rules.md @@ -0,0 +1,199 @@ +--- +uid: semantic-bridge-validate-simple-rules +title: Create Simple Validation Rules +author: Greg Baldini +updated: 2025-01-27 +applies_to: + products: + - product: Tabular Editor 2 + none: true + - product: Tabular Editor 3 + since: 3.25.0 + editions: + - edition: Desktop + none: true + - edition: Business + none: true + - edition: Enterprise + full: true +--- +# Create Simple Validation Rules + +This how-to demonstrates how to create simple predicate-based validation rules to enforce naming conventions and structural requirements. +These rules are for illustrative purposes only and do not necessarily reflect hard technical requirements of either Metric Views or the Semantic Bridge. + +## The four rule helpers + +There is a helper method for each type of Metric View object: + +- `MakeValidationRuleForView` - rules for the root View object +- `MakeValidationRuleForJoin` - rules for Join objects +- `MakeValidationRuleForDimension` - rules for Dimension objects +- `MakeValidationRuleForMeasure` - rules for Measure objects + +Each helper takes four parameters: + +1. **name**: unique identifier for the rule +2. **category**: grouping for related rules +3. **message**: error message when the rule is violated +4. **isInvalid**: a function returning `true` if the object is invalid + +## Rule for View + +Check that the Metric View version is the expected value: + +```csharp +var versionRule = SemanticBridge.MetricView.MakeValidationRuleForView( + "version_check", + "structure", + "Metric View version must be 0.1 or 1.1", + (view) => view.Version != "0.1" && view.Version != "1.1" +); +``` + +## Rule for Metric View Join + +Check that Metric View join sources use fully qualified table names (contain a dot): + +```csharp +var joinSourceRule = SemanticBridge.MetricView.MakeValidationRuleForJoin( + "qualified_source", + "structure", + "Join source must be a fully qualified table name (e.g., `catalog.schema.table`)", + (join) => !join.Source.Contains('.') +); +``` + +## Rule for Metric View Dimension + +Check that Metric View dimension names do not contain underscores: + +```csharp +var dimensionNameRule = SemanticBridge.MetricView.MakeValidationRuleForDimension( + "no_underscores", + "naming", + "Dimension names should use spaces, not underscores", + (dim) => dim.Name.Contains('_') +); +``` + +## Rule for Metric View Measure + +Check that Metric View measure expressions do not contain SELECT (to avoid accidental subqueries): + +```csharp +var measureExprRule = SemanticBridge.MetricView.MakeValidationRuleForMeasure( + "no_select_subquery", + "structure", + "Measure expressions should not contain SELECT subqueries", + (measure) => measure.Expr.ToUpper().Contains("SELECT") +); +``` + +## Complete example + +This Metric View has violations for each of the rules defined above: + +```csharp +// Create a Metric View with violations for each rule +SemanticBridge.MetricView.Deserialize(""" + version: 0.2 + source: sales.fact.orders + joins: + # joinSourceRule violation - not fully qualified + - name: customer + source: customer_table + on: source.customer_id = customer.customer_id + dimensions: + # dimensionNameRule violations - contains underscores + - name: product_name + expr: source.product_name + - name: order_date + expr: source.order_date + # This one is fine + - name: Category + expr: source.category + measures: + # measureExprRule violation - contains SELECT subquery + - name: complex_calc + expr: (SELECT MAX(price) FROM products) + # This one is fine + - name: total_revenue + expr: SUM(source.revenue) + """); + +var versionRule = SemanticBridge.MetricView.MakeValidationRuleForView( + "version_check", + "structure", + "Metric View version must be 0.1 or 1.1", + (view) => view.Version != "0.1" && view.Version != "1.1" +); + +var joinSourceRule = SemanticBridge.MetricView.MakeValidationRuleForJoin( + "qualified_source", + "structure", + "Join source must be a fully qualified table name (e.g., `catalog.schema.table`)", + (join) => !join.Source.Contains('.') +); + +var dimensionNameRule = SemanticBridge.MetricView.MakeValidationRuleForDimension( + "no_underscores", + "naming", + "Dimension names should use spaces, not underscores", + (dim) => dim.Name.Contains('_') +); + +var measureExprRule = SemanticBridge.MetricView.MakeValidationRuleForMeasure( + "no_select_subquery", + "structure", + "Measure expressions should not contain SELECT subqueries", + (measure) => measure.Expr.ToUpper().Contains("SELECT") +); + +// Run validation with custom rules +var diagnostics = SemanticBridge.MetricView.Validate([ + versionRule, + joinSourceRule, + dimensionNameRule, + measureExprRule +]).ToList(); + +// Output results +var sb = new System.Text.StringBuilder(); +sb.AppendLine("CUSTOM VALIDATION RESULTS"); +sb.AppendLine("-------------------------"); +sb.AppendLine(""); +sb.AppendLine($"Found {diagnostics.Count} issue(s):"); +sb.AppendLine(""); + +foreach (var diag in diagnostics) +{ + sb.AppendLine($"[{diag.Severity}] {diag.Path}: {diag.Message}"); +} + +Output(sb.ToString()); +``` + +**Output:** + +``` +CUSTOM VALIDATION RESULTS +------------------------- + +Found 5 issue(s): + +[Error] MetricView: Metric View version must be 0.1 or 1.1 +[Error] MetricView.Joins['customer']: Join source must be a fully qualified table name (e.g., `catalog.schema.table`) +[Error] MetricView.Dimensions['product_name']: Dimension names should use spaces, not underscores +[Error] MetricView.Dimensions['order_date']: Dimension names should use spaces, not underscores +[Error] MetricView.Measures['complex_calc']: Measure expressions should not contain SELECT subqueries +``` + +## Next steps + +- [Create contextual validation rules](xref:semantic-bridge-validate-contextual-rules) for cross-object checks like duplicate detection + +## See also + +- [Semantic Bridge Validation](xref:semantic-bridge-metric-view-validation) +- [Validate with Default Rules](xref:semantic-bridge-validate-default) diff --git a/content/how-tos/toc.md b/content/how-tos/toc.md index 7ef5a729..28fafa4e 100644 --- a/content/how-tos/toc.md +++ b/content/how-tos/toc.md @@ -39,3 +39,11 @@ # [Semantic Bridge](semantic-bridge-how-tos.md) ## @semantic-bridge-load-inspect +## @semantic-bridge-import +## @semantic-bridge-validate-default +## @semantic-bridge-validate-simple-rules +## @semantic-bridge-validate-contextual-rules +## @semantic-bridge-add-object +## @semantic-bridge-remove-object +## @semantic-bridge-rename-objects +## @semantic-bridge-serialize From 0c59821f9f9e2dc9945b77e6b34c6a135193228b Mon Sep 17 00:00:00 2001 From: greggyb Date: Tue, 27 Jan 2026 20:44:00 +0100 Subject: [PATCH 7/7] Fix up typos caught by special helper --- .../features/semantic-bridge-metric-view-object-model.md | 2 +- .../features/semantic-bridge-metric-view-validation.md | 8 ++++---- content/how-tos/index.md | 2 +- content/how-tos/semantic-bridge-remove-object.md | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/content/features/semantic-bridge-metric-view-object-model.md b/content/features/semantic-bridge-metric-view-object-model.md index 79bf1318..2a5e77c3 100644 --- a/content/features/semantic-bridge-metric-view-object-model.md +++ b/content/features/semantic-bridge-metric-view-object-model.md @@ -168,7 +168,7 @@ Output(sb.ToString()); Each `Dimension` becomes a column in the Tabular model. If the `Expr` is an unqualified field reference, it is added to the fact table. If the `Expr` is a qualified reference (e.g., `table.field`), then it is added to the table created for the `Join` with the same name as the table-part of the qualified reference; if the table-part is `source`, it is added to the fact table. -In both the qualified and unqualified field reference cases, the field is added as a [`TOMWrapper.DataColumn`](xref:TabularEditor.TOMWrapper.DataColumn]. +In both the qualified and unqualified field reference cases, the field is added as a [`TOMWrapper.DataColumn`](xref:TabularEditor.TOMWrapper.DataColumn). If the `Expr` is a SQL expression, then it is added as [`TOMWrapper.CalculatedColumn`](xref:TabularEditor.TOMWrapper.CalculatedColumn). When the `Expr` is a SQL expression, we attempt to extract all field references; if all field references share the same table-part, then we add it to the table created for that `Join`, otherwise we add it to the fact table. We do not translate SQL expressions for `Dimension.Expr` properties; the SQL expression is included as a comment in the DAX expression for the `CalculatedColumn`. diff --git a/content/features/semantic-bridge-metric-view-validation.md b/content/features/semantic-bridge-metric-view-validation.md index 7860e46b..a3897f9c 100644 --- a/content/features/semantic-bridge-metric-view-validation.md +++ b/content/features/semantic-bridge-metric-view-validation.md @@ -52,7 +52,7 @@ Rather than dig into that interface, it is easier to understand and work with va - [`MakeValidationRuleForDimension`](/api/TabularEditor.SemanticBridge.Platforms.Databricks.DatabricksMetricViewService.html#TabularEditor_SemanticBridge_Platforms_Databricks_DatabricksMetricViewService_MakeValidationRuleForDimension_System_String_System_String_System_String_System_Func_TabularEditor_SemanticBridge_Platforms_Databricks_MetricView_Dimension_System_Boolean__) - [`MakeValidationRuleForJoin`](/api/TabularEditor.SemanticBridge.Platforms.Databricks.DatabricksMetricViewService.html#TabularEditor_SemanticBridge_Platforms_Databricks_DatabricksMetricViewService_MakeValidationRuleForJoin_System_String_System_String_System_String_System_Func_TabularEditor_SemanticBridge_Platforms_Databricks_MetricView_Join_System_Boolean__) - [`MakeValidationRuleForMeasure`](/api/TabularEditor.SemanticBridge.Platforms.Databricks.DatabricksMetricViewService.html#TabularEditor_SemanticBridge_Platforms_Databricks_DatabricksMetricViewService_MakeValidationRuleForMeasure_System_String_System_String_System_String_System_Func_TabularEditor_SemanticBridge_Platforms_Databricks_MetricView_Measure_System_Boolean__) -- [`MakeValidationRuleForView`](/api/TabularEditor.SemanticBridge.Platforms.Databricks.DatabricksMetricViewService.html#TabularEditor_SemanticBridge_Platforms_Databricks_DatabricksMetricViewService_MakeValidationRuleForMeasure_System_String_System_String_System_String_System_Func_TabularEditor_SemanticBridge_Platforms_Databricks_MetricView_Measure_System_Boolean__) +- [`MakeValidationRuleForView`](/api/TabularEditor.SemanticBridge.Platforms.Databricks.DatabricksMetricViewService.html#TabularEditor_SemanticBridge_Platforms_Databricks_DatabricksMetricViewService_MakeValidationRuleForView_System_String_System_String_System_String_System_Func_TabularEditor_SemanticBridge_Platforms_Databricks_MetricView_View_System_Boolean__) - [`MakeValidationRule`](/api/TabularEditor.SemanticBridge.Platforms.Databricks.DatabricksMetricViewService.html#TabularEditor_SemanticBridge_Platforms_Databricks_DatabricksMetricViewService_MakeValidationRule__1_System_String_System_String_System_Func___0_TabularEditor_SemanticBridge_Platforms_Databricks_Validation_IReadOnlyValidationContext_System_Collections_Generic_IEnumerable_TabularEditor_SemanticBridge_Orchestration_DiagnosticMessage___) The first four are all special purpose to make a rule for the object type in their name. @@ -72,7 +72,7 @@ This is easier to understand with an example: var myRule = SemanticBridge.MetricView.MakeValidationRuleForDimension( "no_underscores", "naming", - "Do not include undercores in dimension names. Use user-friendly names with spaces.", + "Do not include underscores in dimension names. Use user-friendly names with spaces.", (dimension) => dimension.Name.Contains('_') ); ``` @@ -101,7 +101,7 @@ SemanticBridge.MetricView.Deserialize(""" var myRule = SemanticBridge.MetricView.MakeValidationRuleForDimension( "no_underscores", "naming", - "Do not include undercores in dimension names. Use user-friendly names with spaces.", + "Do not include underscores in dimension names. Use user-friendly names with spaces.", (dimension) => dimension.Name.Contains('_') ); @@ -208,7 +208,7 @@ using MetricView = TabularEditor.SemanticBridge.Platforms.Databricks.MetricView; var simpleRule = SemanticBridge.MetricView.MakeValidationRuleForDimension( "no_underscores", "naming", - "Do not include undercores in dimension names. Use user-friendly names with spaces.", + "Do not include underscores in dimension names. Use user-friendly names with spaces.", (dimension) => dimension.Name.Contains('_') ); diff --git a/content/how-tos/index.md b/content/how-tos/index.md index 594393eb..3d08953d 100644 --- a/content/how-tos/index.md +++ b/content/how-tos/index.md @@ -50,7 +50,7 @@ This section contains step-by-step guides for accomplishing specific tasks with - @semantic-bridge-validate-contextual-rules - Create rules with cross-object checks - @semantic-bridge-add-object - Add a new object to a Metric View - @semantic-bridge-remove-object - Remove objects from a Metric View -- @semantic-bridge-rename-object - Rename objects using copy-modify pattern +- @semantic-bridge-rename-objects - Rename objects using copy-modify pattern - @semantic-bridge-serialize - Serialize a Metric View back to YAML --- diff --git a/content/how-tos/semantic-bridge-remove-object.md b/content/how-tos/semantic-bridge-remove-object.md index f06f92cb..e61177d5 100644 --- a/content/how-tos/semantic-bridge-remove-object.md +++ b/content/how-tos/semantic-bridge-remove-object.md @@ -100,7 +100,7 @@ Output(sb.ToString()); **Output:** ``` -Dimensions before: 3 +Dimensions before: 6 Dimensions after: 3 Remaining dimensions: