SMML Elements: Physical Table

The SMML physical table element corresponds to the physical table schema which is part of the physical layer in a semantic model. The physical table schema contains physical table objects and elements.

Physical Table Elements

  • name (required property) — The name of the physical table.

  • description — The description of the physical table.

  • tags — Keywords assigned to this object. This element corresponds to the Tags field.

  • sourceType — Indicates the type of physical table.

  • sourceTable — For alias tables only. References the physical table that is being used as the source for this alias table.

  • additionalKeys — Keys that can be defined in addition to primary and display columns.

  • joins — Defines the joins for this link. It contains different child elements, depending on the type of join.

  • dynamicName — If a session variable is being used to specify the name of this physical table, this element references that session variable.

  • sqlHints — For Oracle Databases only. Lists any database hints, such as index hints or leading hints, that were specified for this physical table.

  • caching — If set to true, indicates that this table is included in the Oracle Analytics query engine query cache. See Caching Elements.

  • overrideSourceCacheSetting — For alias tables only. If set to TRUE, indicates that the alias table has its own cache properties that override the cache properties of the source table.

  • eventPollingFrequency — The polling frequency, in seconds. Only applies if this table is anOracle Analytics query engine event polling table. The default value is 3600 seconds.

  • selectStatements — List of select statements that can be defined for different databases.

  • physicalColumns — Specifies the physical columns that belong to this physical table.

PhysicalColumn Elements

  • name (required property) — The name of the physical column.

  • description — The description of the physical column.

  • dataType — The data type of the physical column, such as VARCHAR. See DataType Enumerated Values.

  • length — The length of the physical column.

  • nullable — If set to TRUE, indicates that null values are allowed for the column. This allows null values to be returned to the user, which is expected with certain functions and with outer joins.

Syntax

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "$ref": "#/definitions/physicalTable",
    "definitions": {
        "physicalTable": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "name": {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^[^?*]+$"
                },
                "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#/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"
        },
        "PhysicalColumn": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "name": {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^[^?*]+$"
                },
                "description": {
                    "type": "string"
                },
                "dataType": {
                    "$ref": "#/definitions/DataType"
                },
                "length": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 2147483647
                },
                "nullable": {
                    "type": "boolean"
                }
            },
            "required": [
                "name"
            ],
            "title": "PhysicalColumn"
        }
    }
}