前提:
Denodo Express インストール、起動済み
-- 1. 前作業
az login --use-device-code
az account show
az version
az configure --list-defaults
az configure --defaults location=japaneast
az configure --list-defaults
az group create \
--name rg9999999 \
--location japaneast
az group list
az upgrade
-- 2. Create an App
-- 2.1 アプリの登録
下記を保存する
アプリケーション(クライアント)ID
OAuth 2.0 承認エンドポイント (v2)
OAuth 2.0 トークン エンドポイント (v2)
-- 2.2 認証
プラットフォームを追加
Web
リダイレクト URI :
http://localhost:9090/oauth/2.0/redirectURL.jsp
IDトークンにチェック
-- 2.3 証明書とシークレット
新しいクライアントシークレット
値を保存する
-- 2.4 APIのアクセス許可
Azure Storageを追加
-- 2.5 APIの公開
スコープの追加
クライアントアプリケーションの追加
スコープを保存する
-- 3. ストレージ アカウントの作成
az storage account create \
--resource-group rg9999999 \
--name st123 \
--access-tier Hot \
--kind StorageV2 \
--sku Standard_LRS
az storage account list \
--resource-group rg9999999
-- 4. コンテナーの作成
key=$(az storage account keys list \
--account-name st123 \
--resource-group rg9999999 \
--output json \
--query [0].value | tr -d '"')
echo $key
az storage container create \
--name container01 \
--account-name st123 \
--public-access off \
--account-key $key
az storage container list \
--account-name st123 \
--account-key $key
-- 5. コンテナーにオブジェクトをアップロード
echo "col1,col2,col3" > f001.txt
echo "1,10,AAA" >> f001.txt
echo "2,20,BBB" >> f001.txt
az storage blob upload \
--account-name st123 \
--container-name container01 \
--name f001.txt \
--file f001.txt \
--account-key $key
az storage blob list \
--account-name st123 \
--container-name container01 \
--output table \
--account-key $key
-- 6. データベースとフォルダの作成
-- 6.1 データベース作成
CONNECT DATABASE admin;
CREATE OR REPLACE DATABASE db06 'description of db06'
VCS OFF
CHARSET UNICODE
AUTHENTICATION LOCAL
ODBC AUTHENTICATION NORMAL
CHECK_VIEW_RESTRICTIONS ALWAYS
;
-- 6.2 フォルダ作成
CONNECT DATABASE db06;
CREATE FOLDER '/01ds' DESCRIPTION 'description of folder01';
CREATE FOLDER '/02bv' DESCRIPTION 'description of folder02';
CREATE FOLDER '/03iv' DESCRIPTION 'description of folder03';
-- 7. データソース作成
Base URLはBlobのSASを使用する
CREATE OR REPLACE DATASOURCE DF ds01
FOLDER = '/01ds'
ROUTE HTTP 'http.CommonsHttpClientConnection,120000' GET 'https://st123.blob.core.windows.net/container01/f001.txt?sp=r&st=2023-04-22T12:39:24Z&se=2023-04-22T20:39:24Z&spr=https&sv=2021-12-02&sr=b&sig=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
HEADERS (
'x-ms-version'='2018-03-28'
)
AUTHENTICATION OAUTH20 (
ACCESSTOKEN = 'XXXXX' ENCRYPTED
REQUESTSIGNINGMETHOD = URL
AUTHENTICATION_GRANT = CODE_GRANT
TOKENENDPOINTURL = 'https://login.microsoftonline.com/22222222-2222-2222-2222-222222222222/oauth2/v2.0/token'
CLIENTIDENTIFIER = '11111111-1111-1111-1111-111111111111'
CLIENTSECRET = 'XXXXX' ENCRYPTED
ACCESSTOKENEXPIRESIN = 4108
AUTHORIZATIONSERVERURL = 'https://login.microsoftonline.com/22222222-2222-2222-2222-222222222222/oauth2/v2.0/authorize'
REDIRECTIONENDPOINTURL = DEFAULT
SCOPES = 'api://11111111-1111-1111-1111-111111111111/test123'
SETSTATEPARAMETER = true
)
PROXY OFF
COLUMNDELIMITER = ','
ENDOFLINEDELIMITER = '\n'
HEADER = TRUE;
-- 8. ラッパー作成
CREATE OR REPLACE WRAPPER DF ds01
FOLDER = '/02bv'
DATASOURCENAME=ds01
OUTPUTSCHEMA (
"Column0" = 'Column0',
"Column1" = 'Column1',
"Column2" = 'Column2'
);
-- 9. 基本ビュー作成
CREATE OR REPLACE TABLE b_tab1 I18N jp (
"Column0":text,
"Column1":text,
"Column2":text
)
FOLDER = '/02bv'
CACHE OFF
TIMETOLIVEINCACHE DEFAULT
ADD SEARCHMETHOD ds01(
I18N jp
CONSTRAINTS (
ADD "Column0" NOS ZERO ()
ADD "Column1" NOS ZERO ()
ADD "Column2" NOS ZERO ()
)
OUTPUTLIST ("Column0", "Column1", "Column2"
)
WRAPPER (df ds01)
);
-- 10. インターフェイスビュー作成
CREATE OR REPLACE INTERFACE VIEW i_tab1 (
"Column0":text,
"Column1":text,
"Column2":text
)
SET IMPLEMENTATION b_tab1
FOLDER = '/03iv';
-- 11. 動作確認
SELECT * FROM db06.b_tab1 CONTEXT('cache_wait_for_load' = 'true') TRACE
SELECT * FROM db06.i_tab1 CONTEXT('cache_wait_for_load' = 'true') TRACE
-- 12. クリーンアップ
アプリを削除
az storage account delete \
--resource-group rg9999999 \
--name st123 \
--yes
az group list
az group delete \
--name rg9999999 \
--yes