{Denodo}データソース・ラッパー・基本ビュー・インターフェイスビューの作成(CSV)

 

https://community.denodo.com/docs/html/browse/8.0/jp/vdp/administration/creating_data_sources_and_base_views/delimited_file_sources/delimited_file_sources
https://community.denodo.com/docs/html/browse/8.0/jp/vdp/vql/generating_wrappers_and_data_sources/creating_data_sources/df_data_sources

 

前提: 
Denodo Express インストール、起動済み

-- 1. テスト用CSVの作成

cd C:\
notepad a.csv

1,A,XXX,あ
2,B,YYY,い


UTF8で保存

 

-- 2. 事前準備

-- 2.1 データベース作成
DROP DATABASE db01 cascade;

CREATE OR REPLACE DATABASE db01 'description of db01'
VCS OFF
CHARSET UNICODE
AUTHENTICATION LOCAL
ODBC AUTHENTICATION NORMAL
CHECK_VIEW_RESTRICTIONS ALWAYS
;

-- 2.2 フォルダ作成
CONNECT DATABASE db01;

CREATE FOLDER '/01ds'  DESCRIPTION 'description of folder01';
CREATE FOLDER '/02bv'  DESCRIPTION 'description of folder02';
CREATE FOLDER '/03iv'  DESCRIPTION 'description of folder03';

 

 

-- 3. データソース作成

-- Virtual DataPort が動作しているオペレーティングシステムに関係なく、行末を示すには、 \r や rn` ではなく、 \n を使用します。

CREATE OR REPLACE DATASOURCE DF ds01
    FOLDER = '/01ds'
    ROUTE LOCAL 'LocalConnection' 'C:/a.csv'
    CHARSET = 'UTF-8'
    COLUMNDELIMITER = ','
    ENDOFLINEDELIMITER = '\n'
    HEADER = FALSE;


-- 4. ラッパー作成


CREATE OR REPLACE WRAPPER DF b_tab1
    FOLDER = '/02bv'
    DATASOURCENAME=ds01
    OUTPUTSCHEMA (
        col1 = 'Column0' (OPT),
        col2 = 'Column1' (OPT),
        col3 = 'Column2' (OPT),
        col4 = 'Column3' (OPT)
    );

 

 

-- 5. 基本ビュー作成

CREATE OR REPLACE TABLE b_tab1 I18N jp (
        col1:int,
        col2:text,
        col3:text,
        col4:text
    )
    FOLDER = '/02bv'
    CACHE OFF
    TIMETOLIVEINCACHE DEFAULT
    ADD SEARCHMETHOD b_tab1(
        I18N jp
        CONSTRAINTS (
             ADD col1 (any) OPT ANY
             ADD col2 (any) OPT ANY
             ADD col3 (any) OPT ANY
             ADD col4 (any) OPT ANY
        )
        OUTPUTLIST (col1, col2, col3, col4
        )
        WRAPPER (df b_tab1)
    );

 


-- 6. インターフェイスビュー作成


CREATE OR REPLACE INTERFACE VIEW i_tab1 (
        col1:int,
        col2:text,
        col3:text,
        col4:text
    )
    SET IMPLEMENTATION b_tab1
    FOLDER = '/03iv';

ALTER VIEW i_tab1
 LAYOUT (b_tab1 = [250, 94, 200, 105]);

 


-- 7. 動作確認

SELECT * FROM db01.b_tab1 CONTEXT('cache_wait_for_load' = 'true') TRACE;

SELECT * FROM db01.i_tab1 CONTEXT('cache_wait_for_load' = 'true') TRACE;