SMML要素: データベース

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

Databaseの要素

  • name (必須プロパティ) — データベースの名前。

  • description — データベースの説明。

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

  • databaseType (必須プロパティ) — データ・ソースのタイプ。たとえば、Oracle Database、SQL Server、DB2です。DataBase Typeの列挙値を参照してください。

  • persistConnectionPool — 永続接続プールとして使用される接続プールを参照します(割り当てられている場合)。永続接続プールは、特定のタイプの問合せに使用される(通常、マーケティングの問合せのサポートに使用される)データベース・プロパティです。

  • connectionPools — このデータベース・オブジェクトの接続プールを参照します。

  • featureOverrides — このデータベースのSQL機能をリストします。

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

  • queryLimits — 選択すると、すべてのユーザーがPOPULATE SQLを実行できるようになります。全員ではないが大半のユーザーがPOPULATE SQLを実行できるようにするには、このオプションを選択してから、特定のユーザーやグループに対する問合せを制限します。問合せ制限の設定を参照してください。

  • virtualPrivateDatabaseTRUEに設定すると、物理データベース・ソースを仮想プライベート・データベース(VPD)として識別します。VPDを使用すると、ユーザーの権限資格証明によって返されるデータ結果が決まります。このオプションは、セッション変数の「セキュリティ・センシティブ」オプションとともに使用します。

  • crmMetadataTables — Siebel Systemsの従来のソースのみに使用できます。TRUEに設定すると、Oracle AnalyticsはOracleのSiebel CRM固有の表で表定義を探します。

  • allowDirectDatabaseRequestsTRUEに設定すると、すべてのユーザーが物理問合せを実行できるようになります。Oracle Analytics問合せエンジンによって、基礎となるデータベースに未処理のユーザー入力による物理SQLが直接送信されます。全員ではないが大半のユーザーに物理問合せの実行を許可するには、このオプションを選択してから特定のユーザーおよびグループの問合せを制限します。問合せ制限の設定を参照してください。

  • allowPopulateQueriesTRUEに設定すると、すべてのユーザーがPOPULATE SQLを実行できるようになります。全員ではないが大半のユーザーがPOPULATE SQLを実行できるようにするには、このオプションを選択してから、特定のユーザーやグループに対する問合せを制限します。問合せ制限の設定を参照してください。

ConnectionPoolの要素

  • name (必須プロパティ) — 接続の名前。

  • description — 接続の説明。

  • connection (必須プロパティ) — Oracle Analyticsで定義された接続を参照します。

  • callInterface — コール・インタフェースのタイプ。

  • maxConnections — 特定のユーザーに対してこの接続プールで許容される接続の最大合計数。

  • requiresFullyQualifiedTableNamesTRUEに設定されている場合、このデータベースでは表の完全修飾名が必要であることを示します。完全修飾名は、セマンティック・モデルの物理オブジェクト名に基づきます。

  • connectionTimeOut — リクエストの完了後に、データ・ソースへの接続を開いたままにしておく時間。この期間内は、新たなリクエストで新たな接続が開かれるのではなく、この接続が使用されます(最大接続数で指定された数値以内)。この時間は接続リクエストの完了ごとにリセットされます。タイムアウトを0(デフォルト)に設定すると接続プールが無効になります。つまり、データ・ソースへの各接続は、リクエストの完了と同時に終了します。新しい接続では、その他の接続プールが使用されるか、新しい接続が開きます。

  • connectionTimeoutUnitMINUTESなどの単位。
  • multithreadedTRUEに設定されている場合、接続プールがマルチスレッドをサポートする、つまり1つの接続プールで複数の問合せをサポートできることを示します。このオプションがfalseに設定されている場合、問合せはそれぞれ1つのデーターベース接続に結び付けられます。

  • supportParams — データ・ソースでパラメータがサポートされるかどうかを指定します。falseに設定されており、データベース機能表でパラメータがサポートされる場合は、Oracle Analytics問合せエンジンからデータベースへの、パラメータを指定したフィルタ(または計算)のプッシュを可能にする特別なコードが実行されます。

  • isolationLevel — ODBCゲートウェイおよびDB2ゲートウェイに使用されます。各接続のトランザクション分離レベルをバックエンド・データベースに設定します。分離レベルの設定によって接続から発行されるすべての文のデフォルトのトランザクション・ロック動作が制御されます。オプションは次のとおりです。
    • default: データ・ソースのデフォルトのトランザクション・ロックの動作を使用します。
    • readCommitted: 内容を保証しない読取りを回避するため、データの読取り時に共有ロックを保持することを指定します。
    • readUncommitted: 内容を保証しない読取りを実装します(分離レベル0のロック)。このオプションを設定すると、未コミットのデータや内容を保証しないデータを読み取り、データの値を変更して、トランザクションの終了前にデータ・セットで行を表示したり非表示にしたりすることができます。
    • repeatableRead: 問合せに使用されるすべてのデータをロックして、他のユーザーがデータを更新しないようにします。
    • serializable: データ・セットの範囲をロックし、トランザクションが完了するまでデータ・セットに対して他のユーザーが行を更新または挿入しないようにします。
  • runOnConnectScripts — 接続が確立される前に実行される接続スクリプトを保持します。

  • runBeforeQueryScripts — 問合せの実行前に実行される接続スクリプトを保持します。

  • runBeforeQueryScripts — 問合せの実行後に実行される接続スクリプトを保持します。

  • runOnConnectScripts — 接続が閉じられた後に実行される接続スクリプトを保持します。

  • writeBackConfig — データ・ソースのライトバック・プロパティを示します。

  • permissions — 接続プールにアクセスするためのユーザーとアプリケーション・ロールおよび権限をリストします。「Permissionの要素」を参照してください。

RunScriptの要素

  • script (必須プロパティ) — 接続スクリプトを保持します。

  • disableTRUEに設定すると、接続スクリプトの無効化に使用されます。

WriteBackConfigの要素

  • dbSupportsUnicode — Unicodeデータベースの明示的なUnicodeデータ型(NCHARなど)の列を操作する場合、この属性をTRUEに設定します。

  • bulkInsertBufferSize — データがデータベース表に挿入されるたびに、データ量(KB単位)を制限するために使用されます。

  • transactionBoundary — データベース表への挿入1回当たりのバッチ・サイズを制御します。

  • tempTablePrefix — 一時表名の最初の2文字。デフォルト値はTTです。

  • tempTableOwner — SQL文で一時表の名前を修飾する(たとえば、表owner.tablenameを作成する)ために使用される表の所有者名。

  • tempTableDatabase — 一時表が作成されるデータベース。このプロパティは、IBM OS/390にのみ適用されます。これは、IBM OS/390ではデータベース名修飾子をCREATE TABLE文に組み込む必要があるためです。

  • tempTableSpace — 一時表が作成される表領域。このプロパティは、IBM OS/390にのみ適用されます。これは、IBM OS/390では表領域名修飾子をCREATE TABLE文に組み込む必要があるためです。

Featureの要素

  • name (必須プロパティ) — LEFT_OUTER_JOIN_SUPPORTEDなどの機能の名前を示します。

  • value (必須プロパティ) — この機能がデータベースでサポートされているかどうかを示します。または、機能の実際の値を示します(MAX_COLUMNS_IN_SELECTが「0」など)。

QueryLimitの要素

  • accessor (必須プロパティ) — 問合せ制限を割り当てるアプリケーション・ロールをリストします。

  • maxRowSetting — 最大行数制限のステータスを指定します。有効値は次のとおりです:
    • Inherit — 親アプリケーション・ロールからmaxRows制限を継承します。継承する制限がない場合は、制限は適用されません。
    • EnablemaxRowsに指定された値に行数を制限します。行数がmaxRows値を超えると、問合せは終了します。
    • DisablemaxRowsに設定された制限を無効にします。
    • WarnmaxRowsに設定されている制限は適用せず、設定されている制限を超える問合せについて問合せログに記録します。
  • maxRows — アクセッサがデータベースから取得できる最大行数を示します。
  • maxTimeSetting — 最大時間制限のステータスを指定します。有効値は次のとおりです:

    • Inherit — 親アプリケーション・ロールからmaxTime制限を継承します。継承する制限がない場合は、制限は適用されません。
    • EnablemaxTimeに指定された値に分数を制限します。
    • DisablemaxTimeに設定された制限を無効にします。
    • WarnmaxTimeに設定されている制限は適用せず、設定されている制限を超える問合せについて問合せログに記録します。
  • maxTime — データベースで問合せを実行できる最大分数。

  • logicalQueryMaxTime — 論理問合せを実行できる最大時間(秒)。

  • directDatabaseRequests — 選択すると、すべてのユーザーが物理問合せを実行できるようになります。Oracle Analytics問合せエンジンにより、ユーザーが入力した未処理の物理SQLが基礎となるデータベースに直接送信されます。全員ではないが大半のユーザーに物理問合せの実行を許可するには、このオプションを選択してから特定のユーザーおよびグループの問合せを制限します。

  • restrictions — データベースへのアクセスに実施される制限を示します。

Restrictionの要素

  • type — 制限のタイプ(制限がALLOWDENYか)を示します。
  • day — 制限に対して指定された日。
  • from — 制限の開始時間を示します。
  • to — 制限の終了時間を示します。

構文

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "$ref": "#/definitions/database",
    "definitions": {
        "database": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "name": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "tags": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "databaseType": {
                    "$ref": "common_schemas#/definitions/DatabaseType"
                },
                "persistConnectionPool": {
                    "type": "string"
                },
                "connectionPools": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/ConnectionPool"
                    }
                },
                "featureOverrides": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Feature"
                    }
                },
                "queryLimits": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/QueryLimit"
                    }
                },
                "virtualPrivateDatabase": {
                    "type": "boolean"
                },
                "crmMetadataTables": {
                    "type": "boolean"
                },
                "allowDirectDatabaseRequests": {
                    "type": "boolean"
                },
                "allowPopulateQueries": {
                    "type": "boolean"
                }
            },
            "required": [
                "databaseType",
                "name"
            ],
            "title": "Database"
        },
        "ConnectionPool": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "name": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "connection": {
                    "type": "string"
                },
                "remoteConnection": {
                    "type": "boolean"
                },
                "maxConnections": {
                    "type": "integer"
                },
                "requiresFullyQualifedTableNames": {
                    "type": "boolean"
                },
                "connectionTimeout": {
                    "type": "integer"
                },
                "connectionTimeoutUnit": {
                    "type": "string",
                    "enum": ["WHEN_QUERY_COMPLETES", "DAYS", "HOURS", "MINUTES", "SECONDS", "NEVER"]
                },
                "multithreaded": {
                    "type": "boolean"
                },
                "supportParams": {
                    "type": "boolean"
                },
                "isolationLevel": {
                    "type": "string"
                },
                "runOnConnectScripts": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/RunScript"
                    }
                },
                "runBeforeQueryScripts": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/RunScript"
                    }
                },
                "runAfterQueryScripts": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/RunScript"
                    }
                },
                "runOnDisconnectScripts": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/RunScript"
                    }
                },
                "writeBackConfig": {
                    "$ref": "#/definitions/WriteBackConfig"
                },
                "permissions": {
                    "type": "array",
                    "items": {
                        "$ref": "common_schemas#/definitions/Permission"
                    }
                }
            },
            "required": [
                "connection",                                
                "name"
            ],
            "title": "ConnectionPool"
        },
        "RunScript": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "script": {
                    "type": "string"
                },
                "disable": {
                    "type": "boolean"
                }
            },
            "required": [
                "script"
            ],
            "title": "RunScript"
        },
        "WriteBackConfig": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "dbSupportsUnicode": {
                    "type": "boolean"
                },
                "bulkInsertBufferSize": {
                    "type": "integer"
                },
                "transactionBoundary": {
                    "type": "integer"
                },
                "tempTablePrefix": {
                    "type": "string"
                },
                "tempTableOwner": {
                    "type": "string"
                },
                "tempTableDatabase": {
                    "type": "string"
                },
                "tempTableSpace": {
                    "type": "string"
                }
            },
            "title": "WriteBackConfig"
        },
        "Feature": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                
                "name": {
                    "type": "string"
                },
                "value": {
                    "oneOf": [
                        {"type": "string"},
                        {"type": "boolean"},
                        {"type": "integer"}
                    ]
                }
            },
            "required": [
                "name",
                "value"
            ],
            "title": "Feature"
        },
        "QueryLimit": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "accessor": {
                    "type": "string"
                },
                "maxRowSetting": {
                    "type": "string",
                    "enum": ["INHERIT", "ENABLE", "DISABLE", "WARN"]
                },
                "maxRows": {
                    "type": "integer"
                },
                "maxTimeSetting": {
                    "type": "string",
                    "enum": ["INHERIT", "ENABLE", "DISABLE", "WARN"]
                },
                "maxTime": {
                    "type": "integer"
                },
                "logicalQueryMaxTime": {
                    "type": "integer"
                },
                "directDatabaseRequests": {
                    "type": "string",
                    "enum": ["INHERIT", "ALLOW", "DISALLOW"]
                },
                "restrictions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Restriction"
                    }
                }
            },
            "required": [
                "accessor"
            ],
            "title": "QueryLimit"
        },
        "Restriction": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "type": {
                    "type": "string",
                    "enum": ["ALLOW", "DENY"]
                },
                "day": {
                    "type": "string",
                    "enum": ["SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY"]
                },
                "from": {
                    "type": "integer"
                },
                "to": {
                    "type": "integer"
                }
            },
            "required": [
                "day",
                "from",
                "to",
                "type"
            ],
            "title": "Restriction"
        }
    }
}