はじめに
PentahoのETLツールであるPDIでKdb+へ接続できるかの検証メモです。
Kdb+はカラム型の時系列DBのようです。今回の趣旨はPDIからKdb+へ接続できるかなので、Kdb+がどういったものかは調べてません。
https://en.wikipedia.org/wiki/Kdb%2B
Kdb+のインストールと起動
インストール
まず、無料版のKdb+のダウンロードします。
http://kx.com/download
Email、各チェックボックスにチェックを入れて、ページ下部のダウンロードしたいOSをClickします。
Zipファイルがダウンロードできるので、解凍してどこかのディレクトリに置いておきます。
ここでは、Windows版をダウンロードして、C:\test\配下に解凍してできた"q"ディレクトリを置くことにしました。
環境設定
次に、変数を設定しておきます。コマンドプロンプトを起動して以下のように設定。
C:\>setx QHOME "C:\test\q"
C:\>setx PATH "%PATH%;C:\test\q\w32"
C:\>exit
Kdb+の起動
Kdb+を起動します。コマンドプロンプトを起動して"q -p 5000"として実行。
C:\> q -p 5000
KDB+ 3.5 2017.05.02 Copyright (C) 1993-2017 Kx Systems
w32/ 2()core 4095MB michi kdbdemo 10.128.0.2 NONEXPIRE
Welcome to kdb+ 32bit edition
For support please see http://groups.google.com/d/forum/personal-kdbplus
Tutorials can be found at http://code.kx.com/wiki/Tutorials
To exit, type \\
To remove this startup msg, edit q.q
q)
テーブルの作成
Kdb+を起動した状態で、テーブルを作成します。
q) family:([]name:`John`Mary`David; age:52 49 18; hair:`brown`black`blonde; eyes:`blue`brown`blue)
確認。
q) family
name age hair eyes
----------------------
John 52 brown blue
Mary 49 black brown
David 18 blonde blue
q)
q) select name,age from family
name age
---------
John 52
Mary 49
David 18
q)
ブラウザからも確認しておきます。
http://localhost:5000
PDIのダウンロードとインストール
こちらを参照に、ダウンロードとインストールをしておきます。
Kdb+のJDBCドライバーのインストール
以下よりダウンロードします。
https://github.com/KxSystems/kdb/blob/master/c/jdbc.jar
ダウンロードしたjarファイルを以下の場所に配置します。
data-integration/lib/配下
PDIからKdb+へ接続
接続設定
PDI(Spoon)を起動して「テーブル入力(Table Input)」ステップを置いて、ステップをダブルクリックして設定画面を表示します。
「データソース名」の横の方にある「新規作成」ボタンを押してデータソース接続の設定画面を表示し、設定を行ないます。
接続名:kdb
接続タイプ:Generic database
カスタム接続URL:jdbc:q:localhost:5000
カスタムドライバークラス名:jdbc
ユーザ名:OSユーザ名
パスワード:OSユーザのパスワード
確認
SQLステートメントを以下のようにしてプレビューで確認します。
family
別のクエリでプレビュー確認します。
select name,age from family
以上で、接続できました!
参考
http://code.kx.com/wiki/Tutorials
https://groups.google.com/d/forum/personal-kdbplus