SMML要素: 物理表

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

Physical Tableの要素

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

  • description — 物理表の説明。

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

  • sourceType — 物理表のタイプを示します。

  • sourceTable — 別名表のみに使用できます。この別名表のソースとして使用されている物理表を参照します。

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

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

  • dynamicName — セッション変数を使用してこの物理表の名前が指定されている場合、この要素はそのセッション変数を参照します。

  • sqlHints — Oracle Databaseのみに使用できます。INDEXヒントやLEADINGヒントなど、この物理表に指定されたデータベース・ヒントをリストします。

  • overrideSourceCacheSetting — 別名表のみに使用できます。TRUEに設定されている場合、別名表に、ソース表のキャッシュ・プロパティよりも優先される独自のキャッシュ・プロパティが設定されていることを示します。

  • caching — trueに設定されている場合、この表がOracle Analytics問合せエンジンの問合せキャッシュに含まれていることを示します。「Cachingの要素」を参照してください。

  • eventPollingFrequency — ポーリング頻度(秒単位)。この表がOracle Analytics問合せエンジンのイベント・ポーリング表である場合にのみ適用されます。デフォルト値は3600秒です。

  • selectStatements — 異なるデータベースに対して定義できるselect文のリスト。

  • physicalColumns — この物理表に属する物理列を指定します。

SelectStatementの要素

  • databaseType — データ・ソースのタイプ。DataBase Typeの列挙値を参照してください。

  • query — 物理表のデータ・ソース固有の問合せ。

PhysicalColumnの要素

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

  • description — 物理列の説明。

  • dataTypeVARCHARなどの物理列のデータ型。「DataTypeの列挙値」を参照してください。

  • length — 物理列の長さ。

  • nullableTRUEに設定されている場合、この列に対してnull値が許可されていることを示します。これにより、特定の機能および外部結合に必要なNull値をユーザーに返すことができます。

Joinの要素

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

  • useJoinExpressionTRUEに設定した場合、結合式を指定します。

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

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

  • hint — Oracle Databaseのみに使用できます。INDEXヒントやLEADINGヒントなど、この複合結合に指定されたデータベース・ヒントをリストします。

  • joinConditions — 2つの表間の結合で照合する列のリスト。結合条件により、2つの表間の関係が定義されます。これには、2つの表を関連付ける列が含まれます。結合条件には、別の表の列に関連付けられた表内の列が複数含まれる場合があります。

  • joinExpression — 2つの表の列を単に照合するのではなく、式として定義された結合条件。たとえば、Table1.Column1 = Table2.Column1 AND Table1.Column2 = <value>です。「Expressionの要素」を参照してください。

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

ComplexJoinConditionの要素

  • expressionTemplate (必須プロパティ) — 結合の式を定義および格納します。

  • expressionObjects — 結合式で参照されるオブジェクト。

JoinConditionの要素

  • leftColumn (必須プロパティ) — 結合に含まれる表の左側からの結合条件内の列を示します。

  • rightColumn (必須プロパティ) — 結合に含まれる表の右側からの結合条件内の列を示します。

構文

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "$ref": "#/definitions/physicalTable",
    "definitions": {
        "physicalTable": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "name": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "tags": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "sourceType": {
                    "type": "string",
                    "enum": [
                        "TABLE",
                        "STORED_PROCEDURE",
                        "SELECT"
                    ]
                },
                "sourceTable": {
                    "type": "string"
                },
                "additionalKeys": {
                    "type": "array",
                    "items": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "joins": {
                  "type": "array",
                  "items": {
                      "$ref": "#/definitions/Join"
                  }
                },
                "dynamicName": {
                    "type": "string"
                },
                "sqlHints": {
                    "type": "string"
                },
                "caching": {
                    "$ref": "common_schemas#/definitions/Caching"
                },
                "overrideSourceCacheSetting": {
                    "type": "boolean"
                },
                "eventPollingFrequency": {
                    "type": "string"
                },
                "selectStatements": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/SelectStatement"
                    }
                },
                "physicalColumns": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/PhysicalColumn"
                    }
                }
            },
            "required": [
                "name"
            ],
            "title": "PhysicalTable"
        },
        "SelectStatement": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "databaseType": {
                    "$ref": "common_schemas#/definitions/DatabaseType"
                },
                "query": {
                    "type": "string"
                }
            },
            "title": "SelectStatement"
        },
        "PhysicalColumn": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "name": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "dataType": {
                    "$ref": "common_schemas#/definitions/DataType"
                },
                "length": {
                    "type": "integer"
                },
                "nullable": {
                    "type": "boolean"
                }
            },
            "required": [
                "name"
            ],
            "title": "PhysicalColumn"
        },
        "Join": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
               "joinType": {
                  "$ref": "common_schemas#/definitions/JoinType"
               },
               "useJoinExpression": {
                  "type": "boolean"
               },
               "rightTable": {
                  "type": "string",
                  "rawType": "table"
               },
               "cardinality": {
                  "$ref": "#/definitions/Cardinality"
               },
               "hint": {
                  "type": "string"
               },
               "joinConditions": {
                  "type": "array",
                  "items": {
                        "$ref": "#/definitions/JoinCondition"
                  }
               },
               "joinExpression": {
                  "$ref": "common_schemas#/definitions/Expression"
               }

            },
            "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"
        },
        "ComplexJoinCondition": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
               "expressionTemplate": {
                  "type": "string"
               },
               "expressionObjects": {
                  "type": "array",
                  "items": {
                        "type": "string"
                  }
               }
            },
            "required": [
               "expressionTemplate"
            ],
            "title": "ComplexJoinCondition"
         },
         "JoinCondition": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
               "leftColumn": {
                  "type": "string",
                  "rawType": "column"
               },
               "rightColumn": {
                  "type": "string",
                  "rawType": "column"
               }
            },
            "required": [
               "leftColumn",
               "rightColumn"
            ],
            "title": "JoinCondition"
         }
    }
}