基本ビューの作成¶
基本ビューは CREATE TABLE
ステートメントを使用して作成できます。基本ビューは Virtual DataPort にデータを提供する外部ソース (Web、リレーショナルデータベースなど) を表します。
注釈
VQL ステートメントを手作業で記述するのではなく、管理ツールを使用してグラフィカルな方法で基本ビューを作成することを強くお勧めします。
基本ビューはそれぞれ属性グループで構成されており、各属性は データ型 を持っています。
基本ビューを作成するときは、基本ビューの名前、ロケール構成、スキーマを指定します。
CREATE [ OR REPLACE ] TABLE [<database:identifier>.]<name:identifier> I18N <name:identifier>
( <field> [, <field> ]* )
[ FOLDER = <literal> ]
[ DESCRIPTION = <literal> ]
[ <primary_key> ]
[ <tag_list> ]
[ CACHE {
OFF
| PARTIAL [ EXACT ] [ PRELOAD ]
| FULL
| INVALIDATE [ ON CASCADE ]
[ NOATOMIC [ INVALIDATEBLOCKSIZE <integer> ] ]
[ WHERE <condition> ] } ]
[ 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 search method clause> ]*
[ <table index clause> ]*
[ DELEGATESTATSQUERY = <boolean> ]
[ {
SMART_ONLY
| SMART_THEN_ATSOURCE_THROUGH_VDP
| ATSOURCE_THROUGH_VDP_ONLY
} ]
[ CHECK_INDIRECT_ACCESS { ON | OFF} ]
<field> ::=
<name:identifier>:<type:identifier> [ ( <property list> ) ] [ <tag list> ]
<primary_key> ::=
[ CONSTRAINT <name:literal> ]
PRIMARY KEY ( <field_name:literal>
[, <field_name:literal>]* )
<property list> ::=
<name:identifier> [ = <value:identifier>]
[, <name_i:identifier> [ = <value_i:identifier>] ]*
<table index clause> ::=
DECLARE { CACHE | VIEW } [ CLUSTER | HASH | OTHER ] INDEX <name:identifier> ON ( <table index field [ ,<table index field> ]* )
| DELETE { CACHE | VIEW } INDEX <name:identifier>
<table index field> :: = <field name:identifier> [ ASC | DESC ]
<table search method clause> ::=
ADD SEARCHMETHOD <name:identifier> (
[ I18N <name:identifier> ]
[ CONSTRAINTS ( [ <constraint clause> ]+ ) ]
[ OUTPUTLIST ( <output clause> ) ]
[ WRAPPER ( <wrapper type> <wrapper_name:identifier> )
ALTERNATIVE_WRAPPERS ( JDBC <wrapper_name:identifier>
[, JDBC <wrapper_name:identifier> ]* ) ]
)
<tag_list> ::=
TAGS ( <tag:identifier> [, <tag:identifier> ]* )
<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>
OR REPLACE
修飾子で、指定した名前の基本ビューが存在する場合に新しいビューと置き換えるよう指示できます。既存のビューを置き換える場合、派生ビューのクエリ機能が変更されることがあります (たとえば、これまで存在していなかった別のフィールドやクエリ制限を追加した場合)。そのため、この基本ビューから派生したビューに影響が及ぶことがあります。
フィールドの 型
が blob
であれば、フィールドのコンテンツタイプを定数 (たとえば、 application/pdf
) または式で指定できます。詳細については、管理ガイドの「 基本ビューの Blob フィールドの扱い 」を参照してください。
ビューの検索メソッドは ADD SEARCHMETHOD
句で定義します。検索メソッドについては、「 クエリ機能: 検索メソッドとラッパー 」を参照してください。
PRIMARY KEY
句ではビューのプライマリキーを定義します。プライマリキーの詳細については、管理ガイドの「 ビューのプライマリキー 」を参照してください。
ALTERNATIVE_WRAPPERS
句では基本ビューの代替ラッパーを定義します。管理ガイドの「 代替ソース 」で、その詳細を説明しています。
次の図は、 CREATE TABLE
ステートメントを使用した基本ビューの作成方法の例を示しています。このコードでは、JDBC ラッパーと、3 つのテキスト型フィールド (isbn
、 title
、 author
) を持つ基本ビュー book
を作成しています。
CREATE WRAPPER JDBC book
DATASOURCENAME=ds_jdbc_mysql
CATALOGNAME = 'public'
RELATIONNAME = 'book'
OUTPUTSCHEMA (
isbn = 'isbn' :'java.lang.String' (OPT) SORTABLE,
title = 'title' :'java.lang.String' (OPT) ESCAPE SORTABLE,
author = 'author' :'java.lang.String' (OPT) SORTABLE
);
CREATE TABLE book I18N us_est (
isbn:text,
title:text,
author:text ( DESCRIPTION = 'Author of the book. If there is more than one, the authors are separated by a comma')
)
PRIMARY KEY ( 'isbn' )
CACHE OFF
TIMETOLIVEINCACHE DEFAULT
ADD SEARCHMETHOD book(
I18N us_est
CONSTRAINTS (
ADD isbn (any) OPT ANY
ADD title (any) OPT ANY
ADD author (any) OPT ANY
)
OUTPUTLIST (isbn, title, author)
WRAPPER (jdbc book)
);