基本ビューの変更¶
ALTER TABLE
ステートメントを使用して、基本ビューの以下のプロパティを変更できます。
基本ビューのロケール構成
基本ビューのキャッシュ構成 (
CACHE
)。この値がPARTIAL
またはFULL
の場合、クエリの実行結果としてソースから抽出されたタプルがローカルキャッシュに保存されます。「 キャッシュの使用 」のセクションでは、各キャッシュモードの動作方法について説明します。BATCHSIZEINCACHE
。ソースから取得した列は、バッチ処理でキャッシュに挿入されます。このパラメータにより、1 回のバッチで処理する列の数を決定します。値DEFAULT
は、[Database Management] ダイアログ ([Administration] メニュー) でデータベース用に定義されるバッチ処理サイズです。データベースで具体的なバッチ処理サイズが指定されていない場合、キャッシュモジュールは [Cache] ダイアログ ([Administration] > [Server configuration] メニュー) で定義した値を使用します。基本ビューのメモリ使用量の構成 (
SWAP
、SWAPSIZE
、MAXRESULTSIZE
)。つまり、基本ビューを使用し、かつ多くのタプルがかかわるクエリの「ディスクへのスワップ」ポリシーです。詳細については、「 スワップポリシーの構成 」のセクションを参照してください。CREATE CACHE INDEX
コマンドとDECLARE CACHE INDEX
コマンドはまったく同じように動作します。どちらもキャッシュのインデックスを生成します。詳細については、管理ガイドの「 キャッシュインデックス 」のセクションを参照してください。DELETE CACHE INDEX
は、基盤となるデータソースからキャッシュのインデックスを削除します。詳細については、管理ガイドの「 キャッシュインデックス 」のセクションを参照してください。DECLARE VIEW INDEX
は、データソースの既存の VDP にビューのインデックスを定義します。CREATE VIEW INDEX
は、基盤となるデータソースにビューのインデックスを生成します。詳細については、管理ガイドの「 ビューのインデックス 」のセクションを参照してください。DELETE VIEW INDEX
は、VDP に定義したビューのインデックスを削除します。DELETE REMOTE VIEW INDEX
は、基盤となるデータソースおよび VDP からビューのインデックスを削除します。詳細については、管理ガイドの「 ビューのインデックス 」のセクションを参照してください。検索メソッドの追加、削除、または変更を行います。検索メソッドは、その検索方法を使用して特定のクエリが実行されるために従うべき制限事項を表すルールから構成されます。さらに、各検索メソッドには、ユーザーによるソースのクエリを変換し、その応答を解釈するために必要となる、 ラッパー が関連付けられています。「 検索メソッドへのラッパーの割り当て 」のセクションで、この手順の詳細を説明しています。
DELEGATESTATSQUERY
: この値がfalse
であれば、この基本ビューの統計データを収集するために実行されたクエリは、ソースにプッシュダウンされません。代わりに、Virtual DataPort が (SELECT * FROM table
を実行し) 全データを取得し、集計関数をローカルで実行します。このプロパティがtrue
であるか、存在しないと、可能な場合にはこのクエリの処理がソースにプッシュダウンされます。このオプションの詳細については、管理ガイドの「 ビューの統計情報の収集 」のセクションを参照してください。
SMART_ONLY
句、SMART_THEN_ATSOURCE_THROUGH_VDP
句、ATSOURCE_THROUGH_VDP_ONLY
句は、ビューの統計を取得するためのサーバーの動作を以下のように制御します。SMART_ONLY
: サーバーはデータベースのシステムテーブルからビューの統計を取得します。これらのテーブルから取得可能な情報は、データソースが接続するデータベースに依存するため、すべての統計データは得られない場合があります。この句を追加するのは、[Statistics] タブの [Complete missing statistics…] チェックボックスのチェックを外すのと同じことです。
SMART_THEN_ATSOURCE_THROUGH_VDP
: サーバーはデータベースのシステムテーブルから統計を取得します。統計をカタログから取得できない場合は、通常のSELECT
クエリを実行して統計が取得されます。この句を追加するのは、[Statistics] タブの [Complete missing statistics…] チェックボックスを選択するのと同じことです。
ATSOURCE_THROUGH_VDP_ONLY
: サーバーはデータベースのシステムテーブルのいかなる統計の取得も試みず、代わりに通常のSELECT
クエリを実行して統計を取得します。このオプションは Administration Tool では使用できません。VQL でのみ設定できます。
このオプションの詳細については、管理ガイドの「 ビューの統計情報の収集 」のセクションを参照してください。
CHECK_INDIRECT_ACCESS
: このオプションが値ON
で定義されている場合、基本ビューのINDIRECT_ACCESS
権限をチェックします (この権限がサーバーレベルで有効な場合のみ)。ビューの名前は、
ALTER TABLE <name> RENAME...
で変更します。基本ビューの主キーを追加、変更、削除します (定義に対して
<add key>
または<drop key>
を実行)。主キーの詳細については、管理ガイドの「 ビューのプライマリキー 」のセクションを参照してください。以下のように基本ビューの列を変更します。
列の名前を変更するには、以下のように指定
ALTER COLUMN <current field name:identifier> RENAME <new field name:identifier>
例:
ALTER TABLE internet_inc ( ALTER COLUMN iinc_id RENAME incidence_id );
列のデータ型を変更するには、以下のように指定
ALTER COLUMN <name:identifier> MODIFY <new type:identifier> <is field nullable>
フィールドの型を変更すると、そのフィールドの現在のソースタイププロパティが失われます。その値が必要な場合は、再度追加する必要があります。
例:
ALTER TABLE internet_inc ( ALTER COLUMN incidence_id MODIFY decimal FALSE );
フィールドのソースタイププロパティを追加または変更するには、以下のように指定
ALTER COLUMN <field name:identifier> ADD ( <source type property:identifier> = <source type value:literal> )
「ソースタイププロパティ」がすでに存在する場合は、指定した値で既存の値が置き換えられます。
例:
ALTER TABLE internet_inc ( ALTER COLUMN summary ADD ( sourcetypesize = '1000') );
フィールドの説明を追加または変更するには、以下のように指定
ALTER COLUMN <field name:identifier> ADD ( DESCRIPTION = <description:literal> )
例:
ALTER TABLE internet_inc ( ALTER COLUMN iinc_id ADD ( DESCRIPTION = 'Identifier of the incident' ) );
ALTER TABLE <name:identifier>
[ I18N <name:identifier> ]
[ CACHE {
OFF
| PARTIAL [ EXACT ] [ PRELOAD ]
| FULL [ INCREMENTAL <incremental_condition:literal> ]
| INVALIDATE [ ON CASCADE ]
[ NOATOMIC [ INVALIDATEBLOCKSIZE <integer> ] ]
[ WHERE <condition> ]
| RECREATE
}
]
[ BATCHSIZEINCACHE { <integer> | DEFAULT } ]
[ TIMETOLIVEINCACHE { <seconds:integer> | DEFAULT | NOEXPIRE } ]
[ CREATE_TABLE_TEMPLATES (
[ CACHE = <create table template> , ]
[ REMOTE_TABLE = <create table template> ]
) ]
[ SWAP { ON | OFF | DEFAULT} ]
[ SWAPSIZE <megabytes:integer> ]
[ MAXRESULTSIZE <megabytes:integer> ]
[ <table index clause> ]*
[ <table search method clause> ]*
[ { <add key> | <drop key> }]
[ DELEGATESTATSQUERY = <boolean> ]
[ {
SMART_ONLY
| SMART_THEN_ATSOURCE_THROUGH_VDP
| ATSOURCE_THROUGH_VDP_ONLY
} ]
[ DESCRIPTION = <literal> ]
[ CHECK_INDIRECT_ACCESS { ON | OFF} ]
| ALTER TABLE <name:identifier> ( <alter column clause>+ )
| ALTER TABLE <name:identifier> RENAME <new_name:identifier>
<table index clause> ::=
DECLARE { CACHE | VIEW } [ CLUSTER | HASH | OTHER ]
INDEX <index_name:identifier> [ PRIMARY ] [ UNIQUE ]
ON ( <table index field [ ,<table index field> ]* )
| CREATE [ OR REPLACE ] { CACHE | VIEW }
INDEX <index_name:identifier> [ UNIQUE ]
ON ( <table index field> [ ,<table index field> ]* )
| DELETE CACHE INDEX <index_name:identifier>
| DELETE [ REMOTE ] VIEW INDEX <index_name:identifier>
<table index field> :: = <index_field_name:identifier> [ ASC | DESC ]
<table search method clause> ::=
ADD SEARCHMETHOD <name:identifier> (
[ I18N <name:identifier> ]
[ CONSTRAINTS ( [ <constraint clause> ]+ ) ]
[ OUTPUTLIST ( <output clause> ) ]
[ <wrapper clause> ]
)
| ALTER SEARCHMETHOD <name:identifier> (
[ I18N { <name:identifier> | DEFAULT } ]
[ CONSTRAINTS ( [ <constraint clause> ]+ ) ]
[ OUTPUTLIST ( <output clause> ) ]
[ <wrapper clause> ]
)
| DROP SEARCHMETHOD <name:identifier>
<alter column clause> ::=
{ ALTER COLUMN <name:identifier> RENAME <new name:identifier>
| ALTER COLUMN <name:identifier> MODIFY <new type:identifier>
[ <nullable clause> ]
| ALTER COLUMN <field name:identifier> ADD (
<source type property:identifier> = <source type value:literal>
)
| ALTER COLUMN <field name:identifier> ADD (
DESCRIPTION = <description:literal> )
}
<nullable clause> ::= { TRUE | FALSE }
<constraint clause> ::=
ADD <field> ( [ <operator> [, <operator> ]* ] )
{
<obligatoriness> <multiplicity>
[ ( <value_1:value> [ , <value_i:value> ]* ) ]
|
NOS { ZERO | 0 } ()
}
| DROP <integer>
<output clause> ::=
<field> [ ,<field> ]*
<wrapper clause> ::=
WRAPPER ( <wrapper type> <name:identifier> )
ALTERNATIVE_WRAPPERS ( JDBC <wrapper_name:identifier> [, JDBC <wrapper_name:identifier> ]* ) ]
| DROP WRAPPER
<wrapper type> ::=
CUSTOM
| DF
| ESSBASE
| JDBC
| JSON
| LDAP
| MONGODB
| ODBC
| SALESFORCE
| SAPBWBAPI
| SAPERP
| WS
| XML
<field> ::=
<identifier>[.<identifier>]*
<obligatoriness> ::=
OPT
| OBL
<multiplicity> ::=
ZERO
| ONE
| ANY
| <integer>
<operator> includes “any” to represent any operator.
<add key> ::=
ADD [ CONSTRAINT <name:literal> ]
PRIMARY KEY ( <field_name:literal> [, <field_name:literal>]*)
<drop key> ::=
DROP CONSTRAINT <name:literal>
| DROP PRIMARY KEY
<create table template> ::= <template_definition:literal>
[ DEFAULT( <parameter definition> [, <parameter definition> ]* ) ]
Note: You can use parameters within the template definition. Syntax: @{parameter_name}
<parameter definition> ::= <parameter_name:literal> = <parameter_value:literal>
キャッシュテーブル作成コマンドのカスタマイズ
Denodo では、キャッシュテーブルの作成に組み込みの SQL ステートメントを使用します。これでほとんどのシナリオに対応できますが、Denodo ではキャッシュテーブルの作成に使用するコマンドをカスタマイズできます。ビューの構成を編集して、このビューのみのカスタムキャッシュテーブル作成テンプレートを設定する必要があります (「 キャッシュテーブル作成テンプレート 」のセクションを参照)。
ALTER TABLE <base_view_name>
CREATE_TABLE_TEMPLATES (
cache = '<my template definition>'
)
コマンドを実行すると、Denodo ではこのテンプレートを使用してビュー <base_view_name>
のキャッシュテーブルを作成します。キャッシュテーブルがすでにある場合は、新しいテーブル作成テンプレートを使用して新しいテーブルを取得するように、キャッシュテーブルを再作成する必要があります。「 キャッシュテーブルの再作成 」を参照してください。
基盤となるデータソースのインデックスの生成、編集、削除に必要な権限
基盤となるインデックスの管理に使用されるコマンドには、以下の権限が必要です。
基本ビューの作成に使用される JDBC データソースの Virtual DataPort データベースに対する「接続」権限
基本ビューの作成に使用される JDBC データソースに対する「実行」権限
基本ビューが存在する Virtual DataPort データベースに対する「接続」権限
インデックスが生成される基本ビューに対する「書き込み」権限
JDBC データソースに設定されるユーザーアカウントは、基盤となるデータベースにインデックスを生成できるよう設定されている必要があります。