Replies: 3 comments
|
To your point, maybe this should be even extended by custom joining criteria? Currently there is from_column and to_column. In some joins you need to add custom logic (like join on pk + date (either current or between other dates). |
|
+1 from the ThoughtSpot converter work (#285), with a data point: this isn't hypothetical loss. Every shipped converter is already working around it. The Databricks converter derives cardinality from from/to orientation, and ThoughtSpot has four cardinality values and five join types that orientation alone cannot encode, so we stash both in custom_extensions. No other tool can see them. An optional type/cardinality on Relationship (defaulting to today's inferred behavior for backward compatibility) would let converters stop hiding semantics that affect generated SQL. |
|
Field evidence in favor of making cardinality explicit and first-class: One request from the closed-world side of the house: keep the declaration cheap for sources that always know their cardinality (SAP and ERP-class models never guess it), so emitters can declare rather than infer. Open for discussion |
Uh oh!
There was an error while loading. Please reload this page.
OSI models relationships primarily through join keys (entities) and inferred join behavior. This works well for many star-schema cases, but it leaves key relationship semantics implicit, which can make SQL generation and portability across semantic layers (e.g., Coginiti, Cube, AtScale, BI tools) either lossy or error-prone.
Suggested enhancement
Introduce an optional relationship block (or relationship annotations) that can be attached to an entity pair / join key mapping, such as: cardinality: one_to_one | one_to_many | many_to_one | many_to_many
All reactions