Skip to content

Commit 7d1e0c4

Browse files
Merge branch 'main' into ATSCALE-26548-review-model
2 parents b6780e8 + b2b86d6 commit 7d1e0c4

File tree

1 file changed

+61
-19
lines changed

1 file changed

+61
-19
lines changed

sml-reference/dimension.md

Lines changed: 61 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ SML supports the following types of dimensions:
2929

3030
Sample `dimension` file:
3131

32-
```
32+
```yaml
3333
unique_name: Store Dimension
3434
object_type: dimension
3535
label: Store Dimension
@@ -154,11 +154,14 @@ classDiagram
154154
Dimension *-- Hierarchy
155155
Dimension *-- LevelAttribute
156156
Dimension *-- CalculationGroup
157+
Hierarchy *-- DefaultMember
157158
Hierarchy *-- Level
158159
LevelAttribute *-- CustomEmptyMember
160+
LevelAttribute *-- SharedDegenerateColumns
159161
Level *-- SecondaryAttribute
160162
Level *-- MetricalAttribute
161163
Level *-- Alias
164+
Level *-- ParallelPeriods
162165
CalculationGroup *-- CalculatedMembers
163166
SecondaryAttribute *-- CustomEmptyMember
164167
Alias *-- CustomEmptyMember
@@ -182,11 +185,12 @@ namespace Dimensions{
182185
Object to
183186
String role_play
184187
String type
185-
Boolean m2m
186188
}
187189
class From{
188190
String dataset
189-
Array~Column~ columns
191+
Array~String~ join_columns
192+
String hierarchy
193+
String level
190194
}
191195
class To{
192196
String dimension
@@ -196,17 +200,22 @@ namespace Dimensions{
196200
class Hierarchy{
197201
String unique_name
198202
String label
203+
String description
199204
String folder
200205
enum filter_empty
206+
DefaultMember default_member
201207
Array~Level~ levels
202208
}
209+
class DefaultMember{
210+
String expression
211+
Boolean apply_only_when_in_query
212+
}
203213
class Level{
204214
String unique_name
205-
String description
206215
Array~SecondaryAttribute~ secondary_attributes
207216
Array~Alias~ aliases
208217
Array~MetricalAttribute~ metrics
209-
String default_member
218+
Array~ParallelPeriods~ parallel_periods
210219
Boolean is_hidden
211220
}
212221
class Alias{
@@ -218,11 +227,11 @@ namespace Dimensions{
218227
String sort_column
219228
String folder
220229
Boolean is_hidden
230+
String format
221231
Boolean exclude_from_dim_agg
232+
Boolean is_aggregatable
222233
Boolean exclude_from_fact_agg
223234
Array~CustomEmptyMember~ custom_empty_member
224-
Array~String~ allowed_calcs_for_dma
225-
Object role
226235
}
227236
class MetricalAttribute{
228237
String unique_name
@@ -235,11 +244,16 @@ namespace Dimensions{
235244
String column
236245
Boolean is_hidden
237246
Boolean exclude_from_dim_agg
247+
Boolean is_aggregatable
238248
Boolean exclude_from_fact_agg
239249
CustomEmptyMember custom_empty_member
240250
enum unrelated_dimensions_handling
241251
Array~String~ allowed_calcs_for_dma
242252
}
253+
class ParallelPeriods{
254+
String level
255+
Array~String~ key_columns
256+
}
243257
class LevelAttribute{
244258
String unique_name
245259
String label
@@ -252,9 +266,20 @@ namespace Dimensions{
252266
Boolean is_hidden
253267
Boolean is_unique_key
254268
Boolean exclude_from_dim_agg
269+
Boolean is_aggregatable
255270
Boolean exclude_from_fact_agg
256271
String time_unit
257272
Array~String~ allowed_calcs_for_dma
273+
CustomEmptyMember custom_empty_member
274+
String folder
275+
Array~SharedDegenerateColumns~ shared_degenerate_columns
276+
}
277+
class SharedDegenerateColumns {
278+
String dataset
279+
String name_column
280+
String sort_column
281+
Array~String~ key_columns
282+
Boolean is_unique_key
258283
}
259284
class SecondaryAttribute{
260285
String unique_name
@@ -266,9 +291,12 @@ namespace Dimensions{
266291
String sort_column
267292
Array~String~ key_columns
268293
Boolean exclude_from_dim_agg
294+
Boolean is_aggregatable
269295
Boolean exclude_from_fact_agg
270296
Array~String~ allowed_calcs_for_dma
271-
Array~CustomEmptyMember~ custom_empty_member
297+
CustomEmptyMember custom_empty_member
298+
Boolean is_hidden
299+
Boolean contains_unique_names
272300
}
273301
class CustomEmptyMember{
274302
Array~String~ key
@@ -288,6 +316,7 @@ namespace Dimensions{
288316
String format
289317
String expression
290318
Boolean use_input_metric_format
319+
String template
291320
}
292321
}
293322
```
@@ -325,14 +354,6 @@ need to be unique.
325354

326355
A description of the dimension.
327356

328-
## folder
329-
330-
- **Type:** string
331-
- **Required:** N
332-
333-
The name of the folder in which the calculation group appears in BI
334-
tools.
335-
336357
## type
337358

338359
- **Type:** enum
@@ -345,6 +366,13 @@ Supported values:
345366
- `standard`: Can have any type of hierarchy.
346367
- `time`: Must have a time hierarchy.
347368

369+
## is_degenerate
370+
371+
- **Type:** boolean
372+
- **Required:** N
373+
374+
Determines whether the dimension is degenerate.
375+
348376
## hierarchies
349377

350378
- **Type:** array
@@ -513,6 +541,13 @@ Defines the individual calculated members in the group.
513541

514542
A description of the calculation group.
515543

544+
## folder
545+
546+
- **Type:** string
547+
- **Required:** N
548+
549+
The name of the folder in which the calculation group is displayed in BI tools.
550+
516551
# Calculated Members Properties
517552

518553
## unique_name
@@ -706,6 +741,13 @@ For levels in time dimensions only. Defines a custom parallel period for the lev
706741

707742
You can define as many parallel periods for a level as needed.
708743

744+
## is_hidden
745+
746+
- **Type:** boolean
747+
- **Required:** N
748+
749+
Determines whether the level is visible in BI tools.
750+
709751
# Secondary Attributes Properties
710752

711753
## unique_name
@@ -818,7 +860,7 @@ Excludes this attribute from system generated fact-based aggregates. This is use
818860

819861
## custom\_empty\_member
820862

821-
- **Type:** array
863+
- **Type:** object
822864
- **Required:** N
823865

824866
Defines a custom empty member for the attribute. This feature allows fact data with missing or invalid foreign key values to be isolated and independently aggregated from those with valid foreign key values. Because fact records with invalid foreign keys are aggregated separately from records referencing valid dimension members, analysts can easily spot data integrity problems and further investigate them. Use this feature to ensure that un-joinable values are included in query results and aggregated under a specially designated dimension member called the Custom Empty Member.
@@ -1176,7 +1218,7 @@ Supported properties:
11761218

11771219
For example:
11781220

1179-
```
1221+
```yaml
11801222
level_attributes:
11811223

11821224
- unique_name: Order Degen Shared Level
@@ -1335,7 +1377,7 @@ A list of the empty member values to use for key fields.
13351377

13361378
The empty member value to use for name fields.
13371379

1338-
## sort
1380+
## sort_name
13391381

13401382
- **Type:** string
13411383
- **Required:** N

0 commit comments

Comments
 (0)