SMML要素: 論理表

SMML論理表要素は、セマンティック・モデルの論理レイヤー内の論理表スキーマに対応します。論理表スキーマには、論理オブジェクトおよび要素が含まれます。

logicalTableの要素

  • name (必須プロパティ) — 論理表の名前。

  • description — 論理表の説明。

  • tags — このオブジェクトに割り当てられたキーワード。この要素は、「タグ」フィールドに対応します。

  • type (必須プロパティ) — 表のタイプを示します。

  • primaryKey — キーが表の論理主キーであることを示します。

  • logicalColumns — 論理レイヤー内の論理列オブジェクトをリストします。

  • logicalTableSources — この論理表の論理表ソースを参照します。

  • joins — このリンクの結合を定義します。これは、結合のタイプに応じて異なる子要素を保持します。

  • hierarchyType — 階層のタイプを示します。

  • levelBasedHierarchy — これがレベルベースの階層かどうかを示します。

  • parentChildHierarchy — これが親子階層かどうかを示します。

  • dataFilters — このオブジェクトに対して定義されたデータ・フィルタ。「DataFilterの要素」を参照してください。

LevelBasedHierarchyの要素

  • defaultRootLevel — このディメンションのデフォルト・ルート・レベルを参照します。ディメンションに複数のルート・レベルがある場合、デフォルト・ルート・レベルがドリルダウンで使用されます。

  • ragged — trueに設定されている場合、このディメンション階層が非バランス型であることを示します。非バランス型の階層とは、異なる深さのレベルを含む階層のことです。

  • skipped — trueに設定されている場合、このディメンション階層がレベル・スキップ階層であることを示します。レベル・スキップ階層とは、特定の親レベルの値を持たないメンバーが存在する階層のことです。

  • logicalLevels (必須プロパティ) — このディメンションの論理レベルを参照します。

  • logicalHierarchies (必須プロパティ) — このディメンションの論理階層を参照します。

ParentChildHierarchyの要素

  • name (必須プロパティ) — この親子階層の名前。

  • description — この親子階層の説明。

  • logicalLevels (必須プロパティ) — このディメンションの論理レベルを参照します

  • relationshipTables (必須プロパティ) — 親子階層に定義された関係表を参照します。

LogicalHierarchyの要素

  • name (必須プロパティ) — この論理階層の名前。

  • description — この論理階層の説明。

  • levels (必須プロパティ) — この論理レベルに定義されている子レベルを参照します。

LogicalLevelの要素

  • name (必須プロパティ) — この論理レベルの名前。

  • grandTotalLevelTRUEに設定されている場合、このレベルが「総計」レベルであることを示します。これは、ディメンションの総計を表す特別なレベルです。各ディメンションが持つことのできる総計レベルは1つのみです。「総計」レベルにはディメンションの属性は含まれず、レベル・キーはありません。

  • displayKey — この要素は、この階層の表示用に指定されている列を参照します。

  • preferredDrillPath — ディメンション・レベル階層によって定義されている通常のドリル・パス外のドリル・パスが定義されている場合、この要素はユーザーがドリルするレベルを参照します。

  • primaryKey — このキーが表の論理主キーであることを示します。

  • additionalKeys — プライマリ列および表示列に加えて定義できるキー。

  • parentKey — このレベルの親キーを参照します(親子階層を持つディメンションのみ)。

  • chronologicalKey — このキーが時間ディメンションの時系列キーであることを示します。

  • disableAggregateToHigherLevel — デフォルトでは、特定のレベルのメジャー値が集計メジャーを構成します。無効にするには、TRUEに設定します。

  • numberofElements — この論理レベルに存在する要素の数。

LogicalColumnの要素

  • name (必須プロパティ) — この論理列の名前。

  • description — この論理列の説明。

  • dataType — 論理列のデータ型。「DataTypeの列挙値」を参照してください。

  • sortBy — この論理列のソート順が他の論理列をベースとしている場合、この要素はソートに使用される論理列の名前を示します。

  • descriptorColumn — 多言語列がルックアップ関数をベースとしている場合、翻訳されていないルックアップ・キー列を、翻訳された列の記述子ID列として指定することが一般的です。この要素は記述子ID列を参照します。

  • writeableTRUEに設定されている場合、この列に対してライトバックが有効になっていることを示します。この機能は通常、ADFビジネス・コンポーネントのデータ・ソースで使用されます。

  • logicalColumnSource (必須プロパティ) — この論理列のソースを参照します。

  • aggregation — 列のデータに適用される集計関数。

  • dataFilters — このオブジェクトに対して定義されたデータ・フィルタ。「DataFilterの要素」を参照してください。

  • logicalLevel — ディメンション列の場合は、この列が割り当てられているレベル。レベルベースのメジャーの場合は、列が明示的に固定されているレベル。

LogicalColumnSourceの要素

  • derivedFrom (必須プロパティ) — この列マッピングが属する論理表ソースを参照します。各列マッピングは、1つの論理表ソースのみを指定する必要があります。

  • physicalMappings — この列マッピングの物理列を識別する式を保持します。「Expressionの要素」を参照してください。

  • logicalExpression — この列マッピングの論理列を識別する式を保持します。「Expressionの要素」を参照してください。

PhysicalMappingの要素

  • logicalTableSource (必須プロパティ) — この論理表の論理表ソースを参照します。

  • physicalExpression (必須プロパティ) — この列マッピングの物理列を識別する式を保持します。「Expressionの要素」を参照してください。

LogicalTableSourceの要素

  • name (必須プロパティ) — 論理表ソースの名前。

  • description — 論理表ソースの説明。

  • disableTRUEに設定すると、論理表ソースの無効化に使用されます。

  • priority — この論理表ソースの優先度グループ数を示します。論理表ソースの優先度グループ数は、要求された列セットを満たす2つ以上の論理表ソースがある問合せで、どの論理表ソースを使用するかを示すために割り当てられます。

  • tableMapping (必須プロパティ) — 論理表ソースと物理表のマッピング、および物理表間の結合タイプを定義する要素。

  • dataGranularity — 論理表ソースのデータの詳細レベル。

  • dataFragmentation — ソースを断片化する方法を定義する式を保持します。「Expressionの要素」を参照してください。

  • combineWithOtherFragmentsTRUEに設定すると、データを他の断片化されたソースと組み合せるために使用されます。

  • enableFragmentSelectionTRUEに設定すると、データ駆動型のフラグメント選択を有効にするために使用されます。

  • dataFilter — 論理表ソースの行または論理表ソース内の行を制限するフィルタ。「DataFilterの要素」を参照してください。

  • distinctValuesTRUEに設定すると、論理表ソースの値が一意である場合に使用されます。

TableMappingの要素

  • tables — 論理表ソースにマップされた物理表。

  • logicalTableSourceJoins — 論理表ソース内の表間の結合。

LogicalTableSourceJoinの要素

  • leftTable (必須プロパティ) — 結合の左表を示します。

  • rightTable (必須プロパティ) — 結合の右表を示します。

  • joinType — 結合のタイプを示します。「JoinTypeの列挙値」を参照してください。

  • disableTRUEに設定すると、物理表間の結合が無効になります。

Joinの要素

  • rightTable (必須プロパティ) — 結合の右表を示します。

  • joinType — 結合のタイプを示します。「JoinTypeの列挙値」を参照してください。

  • cardinality — 結合のカーディナリティを示します。「Cardinalityの列挙値」を参照してください。

  • drivingTable — キーに対して駆動表が指定されている場合、この属性はその論理表を参照します。

Cardinalityの列挙値

  • ONE_TO_ONE

  • ZERO_OR_ONE_TO_ONE

  • ONE_TO_ZERO_OR_ONE

  • ZERO_OR_ONE_TO_ZERO_OR_ONE

  • ONE_TO_MANY

  • ZERO_OR_ONE_TO_MANY

  • MANY_TO_ONE

  • MANY_TO_ZERO_OR_ONE

  • MANY_TO_MANY

  • UNKNOWN

Aggregationの要素

  • rule — 列の集計ルール。

  • dataIsDenseTRUEに設定されている場合、この列がマップされるすべてのソースに、それらが表す論理階層レベルの組合せごとに1行あることを示します。対象の列で使用されるいずれかの表ソースに密度の高いデータが含まれない場合にこのオプションをTRUEに設定すると、正しくない結果が返されます。

  • countDistinctOverrides — 集計ルールがCOUNT_DISTINCTの場合、論理列にマップされた論理表ソースごとに異なる集計ルールを指定できます。

  • dimensionBasedRules — ディメンション固有の集計ルール。

  • aggregateByLevels — 集計の特定のレベルにおいて計算されるレベルベースのメジャー。

DimensionBasedRuleの要素

  • dimension (必須プロパティ) — 集計ルールを適用する必要があるディメンションを指定します。

  • rule (必須プロパティ) — 列の集計ルール。

  • aggregateExpression — ルールがEXPRESSIONの場合に、ディメンションの集計式を指定します。「Expressionの要素」を参照してください。

CountDistinctOverridesの要素

  • logicalTableSource (必須プロパティ) — 論理表ソースを参照します。

  • rule — 列の集計ルール。

DerivedFromの列挙値

  • PHYSICAL_COLUMNS

  • LOGICAL_COLUMNS

AggregationRuleの列挙値

  • NONE

  • SUM

  • AVG

  • COUNT

  • COUNT_DISTINCT

  • MAX

  • FIRST

  • LAST

  • MEDIAN

  • STD_DEV

  • STD_DEV_POP

  • EVALUATE_AGGR

  • BASED_ON_DIMENSION

AggregationRuleBasedOnDimensionの列挙値

  • NONE

  • SUM

  • AVG

  • COUNT

  • COUNT_DISTINCT

  • MAX

  • MIN

  • FIRST

  • LAST

  • MEDIAN

  • STD_DEV

  • STD_DEV_POP

  • EVALUATE_AGGR

  • EXPRESSION

RelationshipTableの要素

  • logicalTableSource (必須プロパティ) — この論理表の論理表ソースを参照します。

  • table (必須プロパティ) — ソースのベースとなっている親子関係表の名前を示します。

  • memberKey (必須プロパティ) — メンバーを識別する親子関係表内の列の名前。

  • parentKey (必須プロパティ) — このレベルの親キーを参照します(親子階層を持つディメンションのみ)。

  • distance (必須プロパティ) — メンバーから祖先までの親子階層レベルの数を指定する親子関係表内の列の名前。

  • leafNodeIdentifier (必須プロパティ) — メンバーがリーフ・メンバーであるかどうかを示す親子関係表内の列の名前。

構文

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "$ref": "#/definitions/logicalTable",
    "definitions": {
        "logicalTable": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "name": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "tags": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "DIMENSION",
                        "FACT",
                        "LOOKUP"
                    ]
                },
                "primaryKey": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "logicalColumns": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/LogicalColumn"
                    }
                },
                "logicalTableSources": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/LogicalTableSource"
                    }
                },
                "joins": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Join"
                    }
                },
                "hierarchyType": {
                    "type": "string"
                },
                "levelBasedHierarchy": {
                    "$ref": "#/definitions/LevelBasedHierarchy"
                },
                "parentChildHierarchy": {
                    "$ref": "#/definitions/ParentChildHierarchy"
                },
                "dataFilters": {
                    "type": "array",
                    "items": {
                        "$ref": "common_schemas#/definitions/DataFilter"
                    }
                }
            },
            "required": [
                "name",
                "type"
            ],
            "title": "LogicalTable"
        },
        "LevelBasedHierarchy": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "defaultRootLevel": {
                    "type": "string"
                },
                "ragged": {
                    "type": "boolean"
                },
                "skipped": {
                    "type": "boolean"
                },
                "logicalLevels": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/LogicalLevel"
                    }
                },
                "logicalHierarchies": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/LogicalHierarchy"
                    }
                }
            },
            "required": [
                "logicalHierarchies",
                "logicalLevels"
            ],
            "title": "LevelBasedHierarchy"
        },
        "ParentChildHierarchy": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "name": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "logicalLevels": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/LogicalLevel"
                    }
                },
                "relationshipTables": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/RelationshipTable"
                    }
                }
            },
            "required": [
                "logicalLevels",
                "name",
                "relationshipTables"
            ],
            "title": "ParentChildHierarchy"
        },
        "LogicalHierarchy": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "name": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "levels": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "required": [
                "levels",
                "name"
            ],
            "title": "LogicalHierarchy"
        },
        "LogicalLevel": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "name": {
                    "type": "string"
                },
                "grandTotalLevel": {
                    "type": "boolean"
                },
                "displayKey": {
                    "type": "string"
                },
                "preferredDrillPath": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "primaryKey": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "additionalKeys": {
                    "type": "array",
                    "items": {
                        "type": "array",
                        "items": {
                           "type": "string"
                        }
                    }
                },
                "parentKey": {
                    "type": "string"
                },
                "chronologicalKey": {
                  "type": "array"
                },
                "disableAggregateToHigherLevel": {
                    "type": "boolean"
                },
                "numberOfElements": {
                    "type": "integer"
                }
            },
            "required": [
                "name"
            ],
            "title": "LogicalLevel"
        },
        "LogicalColumn": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "name": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "dataType": {
                    "$ref": "common_schemas#/definitions/DataType"
                },
                "sortBy": {
                    "type": "string"
                },
                "descriptorColumn": {
                    "type": "string"
                },
                "writeable": {
                    "type": "boolean"
                },
                "logicalColumnSource": {
                    "$ref": "#/definitions/LogicalColumnSource"
                },
                "aggregation": {
                    "$ref": "#/definitions/Aggregation"
                },
                "dataFilters": {
                    "type": "array",
                    "items": {
                        "$ref": "common_schemas#/definitions/DataFilter"
                    }
                },
                "logicalLevel": {
                    "type": "string"
                }
            },
            "required": [
                "logicalColumnSource",
                "name"
            ],
            "title": "LogicalColumn"
        },
        "LogicalColumnSource": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "derivedFrom": {
                    "type": "string",
                    "enum": [
                        "PHYSICAL_COLUMNS",
                        "LOGICAL_COLUMNS"
                    ]
                },
                "physicalMappings": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/PhysicalMapping"
                    }
                },
                "logicalExpression": {
                    "$ref": "common_schemas#/definitions/Expression"
                }
            },
            "required": [
                "derivedFrom"
            ],
            "title": "LogicalColumnSource"
        },
        "PhysicalMapping": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "logicalTableSource": {
                    "type": "string"
                },
                "physicalExpression": {
                    "$ref": "common_schemas#/definitions/Expression"
                }
            },
            "required": [
                "logicalTableSource",
                "physicalExpression"
            ],
            "title": "PhysicalMapping"
        },
        "LogicalTableSource": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "name": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "disable": {
                    "type": "boolean"
                },
                "priority": {
                    "type": "integer"
                },
                "tableMapping": {
                    "$ref": "#/definitions/TableMapping"
                },
                "dataGranularity": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "dataFragmentation": {
                    "$ref": "common_schemas#/definitions/Expression"
                },
                "combineWithOtherFragments": {
                    "type": "boolean"
                },
                "enableFragmentSelection": {
                    "type": "boolean"
                },
                "dataFilter": {
                    "$ref": "common_schemas#/definitions/Expression"
                },
                "distinctValues": {
                    "type": "boolean"
                }
            },
            "required": [
                "name",
                "tableMapping"
            ],
            "title": "LogicalTableSource"
        },
        "TableMapping": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "tables": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "logicalTableSourceJoins": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/LogicalTableSourceJoin"
                    }
                }
            },
            "title": "TableMapping"
        },
        "LogicalTableSourceJoin": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "leftTable": {
                    "type": "string"
                },
                "rightTable": {
                    "type": "string"
                },
                "joinType": {
                    "$ref": "common_schemas#/definitions/JoinType"
                },
                "disable": {
                    "type": "boolean"
                }
            },
            "required": [
                "leftTable",
                "rightTable"
            ],
            "title": "LogicalTableSourceJoin"
        },
        "Join": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "rightTable": {
                    "type": "string",
                    "rawType": "table"
                },
                "joinType": {
                    "$ref": "common_schemas#/definitions/JoinType"
                },
                "cardinality": {
                    "$ref": "#/definitions/Cardinality"
                },
                "drivingTable": {
                    "type": "string",
                    "rawType": "table"
                }
            },
            "required": [
                "rightTable"
            ],
            "title": "Join"
        },
        "Cardinality": {
            "type": "string",
            "enum": [
                "ONE_TO_ONE",
                "ZERO_OR_ONE_TO_ONE",
                "ONE_TO_ZERO_OR_ONE",
                "ZERO_OR_ONE_TO_ZERO_OR_ONE",
                "ONE_TO_MANY",
                "ZERO_OR_ONE_TO_MANY",
                "MANY_TO_ONE",
                "MANY_TO_ZERO_OR_ONE",
                "MANY_TO_MANY",
                "UNKNOWN"
             ],
            "title": "Cardinality"
        },        
        "Aggregation": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "rule": {
                    "$ref": "#/definitions/AggregationRule"
                },
                "dimensionBasedRules": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/DimensionBasedRule"
                    }
                },
                "dataIsDense": {
                    "type": "boolean"
                },
                "countDistinctOverrides": {
                     "type": "array",
                      "items": {
                        "$ref": "#/definitions/CountDistinctOverrides"
                    }
                },
                "aggregateByLevels": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "title": "Aggregation"
        },
        "DimensionBasedRule": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "dimension": {
                    "type": "string"
                },
                "rule": {
                    "$ref": "#/definitions/AggregationRuleBasedOnDimension"
                },
                "aggregateExpression": {
                    "$ref": "common_schemas#/definitions/Expression"
                }
            },
            "required": [
                "dimension",
                "rule"
            ],
            "title": "DimensionBasedRule"
        },
        "CountDistinctOverrides": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "logicalTableSource": {
                    "type": "string"
                },
                "rule": {
                    "$ref": "#/definitions/AggregationRule"
                }
            },
            "title": "CountDistinctOverrides"
        },
        "DerivedFrom": {
            "type": "string",
            "enum": [
                "PHYSICAL_COLUMNS",
                "LOGICAL_COLUMNS"
            ],
            "title": "DerivedFrom"
        },
        "AggregationRule": {
            "type": "string",
            "enum": [
                "NONE",
                "SUM",
                "AVG",
                "COUNT",
                "COUNT_DISTINCT",
                "MAX",
                "MIN",
                "FIRST",
                "LAST",
                "MEDIAN",
                "STD_DEV",
                "STD_DEV_POP",
                "EVALUATE_AGGR",
                "BASED_ON_DIMENSION"
            ],
            "title":"AggregationRule"
        },
        "AggregationRuleBasedOnDimension": {
            "type": "string",
            "enum": [
                "NONE",
                "SUM",
                "AVG",
                "COUNT",
                "COUNT_DISTINCT",
                "MAX",
                "MIN",
                "FIRST",
                "LAST",
                "MEDIAN",
                "STD_DEV",
                "STD_DEV_POP",
                "EVALUATE_AGGR",
                "EXPRESSION"
            ],
            "title":"AggregationRule"
        },
         "RelationshipTable": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "logicalTableSource": {
                    "type": "string"
                },
                "table": {
                    "type": "string"
                },
                "memberKey": {
                    "type": "string"
                },
                "parentKey": {
                    "type": "string"
                },
                "distance": {
                    "type": "string"
                },
                "leafNodeIdentifier": {
                    "type": "string"
                }
            },
            "required": [
                "distance",
                "leafNodeIdentifier",
                "logicalTableSource",
                "memberKey",
                "parentKey",
                "table"
            ],
            "title": "RelationshipTable"
        }
    }
       
}