Denodo にて Snowflake 上テーブル向けのビューを作成する

2024.03.26

こんにちは、川田です。今回は、Denodo 上に Snowflake テーブルに対する基本ビューを作成してみます。

Denodo 公式ドキュメントにて Snowflake 環境への接続ドキュメントが用意されており、そちらに沿って作業を実施します。

HOW TO CONNECT TO SNOWFLAKE FROM DENODO

Denodo から接続する方法として、以下 2 種類が用意されています。

  • Snowflake の USER/PASSWORD 認証 を利用する方法
  • Snowflake の USER/KEY PAIR 認証 を利用する方法

今回は USER/PASSWORD の認証方法にて、接続を試みます。

環境

  • Denodo Platform 8.0 (Denodo Express)
  • Snowflake 8.11.4

利用する Denodo 環境は、無償版にあたる Denodo Express を利用しています。

事前作業

Snowflake 側に、Denodoより接続する環境を作成します。以下の内容にて作成しています。

リソース 名前
データベース名 TEST_DENODO_DB
スキーマ名 PUBLIC
テーブル名 TEST01
ウェアハウス名 DENODO_WH
ユーザー名 DENODO_USER
ユーザーパスワード ********
ロール名 DENODO_ROLE

データベースとテーブルを作成します。

USE ROLE SYSADMIN;

CREATE DATABASE TEST_DENODO_DB;

CREATE TABLE TEST_DENODO_DB.PUBLIC.TEST01 (
    COL1 INTEGER NOT NULL,
    COL2 INTEGER NOT NULL
);

INSERT INTO TEST_DENODO_DB.PUBLIC.TEST01 VALUES (1, 1);

ウェアハウスを作成します。

CREATE WAREHOUSE DENODO_WH
WITH
    WAREHOUSE_SIZE = XSMALL
    MAX_CLUSTER_COUNT = 1
    AUTO_SUSPEND = 60
    INITIALLY_SUSPENDED = TRUE;

ロールとユーザーを作成します。

USE ROLE SECURITYADMIN;

CREATE ROLE DENODO_ROLE;

GRANT ROLE DENODO_ROLE TO ROLE SYSADMIN;
GRANT USAGE ON WAREHOUSE DENODO_WH TO ROLE DENODO_ROLE;

GRANT USAGE ON DATABASE TEST_DENODO_DB TO ROLE DENODO_ROLE;
GRANT USAGE ON SCHEMA TEST_DENODO_DB.PUBLIC TO ROLE DENODO_ROLE;

GRANT SELECT ON ALL TABLES IN SCHEMA TEST_DENODO_DB.PUBLIC TO ROLE DENODO_ROLE;
GRANT SELECT ON FUTURE TABLES IN SCHEMA TEST_DENODO_DB.PUBLIC TO ROLE DENODO_ROLE;

CREATE USER DENODO_USER PASSWORD = '********';

GRANT ROLE DENODO_ROLE TO USER DENODO_USER;

ALTER USER DENODO_USER
SET DEFAULT_ROLE = DENODO_ROLE
DEFAULT_WAREHOUSE = DENODO_WH;

Denodo 側の作業

Web Design Studio より操作を行います。

File -> New -> Data Source -> JDBC を選択し、新しい Snowflake 向けの Data Source を以下の通り追加します。

パラメーター
Name snowflake_test_denodo_db
Database adapter snowflake
Database URL jdbc:snowflake://XXXXXXXX.ap-northeast-1.aws.snowflakecomputing.com/?db=TEST_DENODO_DB&schema=PUBLIC&warehouse=DENODO_WH
Transaction isolation Read Commited
Authentication Use login and password
User DENODO_USER
Password ********

Database URL の値は、以下の形式で入力します。

jdbc:snowflake://host/?db=database&schema=schema&warehouse=warehouse

続いて CREATE BASE VIEW タブを選択します。事前作業で用意したテーブルが参照できていることを確認し、Create selected をクリックしベースビューを作成します。

以下の通りベースビューを作成できました。