シャローム!Sato-Gです。
2ヶ月サボってた。すまぬm(_ _)m
言い訳がましいんだが、この間、SisenseのBase campがあったり、イスラエルでSisense社の上層部の方にお会いする機会があったりと、色々あったのだ。
イスラエルでは、Sisenseについて要望を申し上げたつもりなんだけど、ちょっと文句を言ったみたいに取られてしまった。
僕はSisense好きだから大きな誤解なんだけど、ホントごめんなさい。そんなつもりじゃないんです。。。
僕が言いたかったのはこんなことだ。
SisenseはBLoXなどを使えば洗練されたWebサイト風の素敵なダッシュボードを作成できるし、標準のウィジェットで不足しているものがあればPluginとか、さらにD3やHighChartsなども使える。
だけど、「セルフBIとして使うなら、なるべく標準機能でサポートされるべきで、僕らの立場ではお望みのチャートがない時にD3やHighChartを使えとはエンドユーザには言えない。Visualizationの民主化が進んでいるこの時代に、他社製品はそこを強化しているんだから、フロントエンドの強化も大事」って僕は思う。
ファンを増やすならなおさらね。
Sisense様、期待しておりますので、よろしくお願いしますm(_ _)m
ちょっとくどいか。。。

さて本題に戻ろう。
「はじめの一歩」ではCSVデータをElastiCubeに取り込んでダッシュボードを作ったけど、実際の場面ではデータベースからの取り込みが多いはずだよね。
それでデータベースから取り込んで、SQL編集してってことを考えていたんだけど、じゃあデータベースは何にするか。
簡単にセットアップできて、データのインポートとかせずにササッとできてしまう軽量なデータベース…
となると、SQLiteかなと思ってSQLiteでデータを作ってみた。
SQLiteならデータベースが一つのファイルになっているので、そのファイルをコピーして配置するだけで動くからお手軽にデータベースが使える。
というわけで、今回はSQLiteをSisenseサーバにセットアップして、SisenseからJDBC接続してみる。

1.データベースの準備

1-1.SQLiteのセットアップ

SQLiteは以下のURLからダウンロードする。
https://www.sqlite.org/download.html

必要なものは
(1)sqlite-tools
(2)sqlite-dll
の2つ。
(1)はSQLiteのコマンドラインツールで、いわばSQLite本体だ。
ダウンロード後、解凍して以下のようにフォルダを作成しておこう。
・C:\sqlite ←ここに解凍したファイル(sqlite3.exe, sqldiff.exe, sqlite3_analyzer.exe)を配置する
・C:\sqlite\db ←ここには後程データベースファイルを配置する

(2)はSQLiteを外部プログラムから利用するためのDLLで、PATHが通っているフォルダに配置する必要がある。
ここではC:\Windows\System32配下にDLLを置いた。

1-2.データベースの配置

以下からデータベースファイルをダウンロードする。
https://sisense-knowledge.com/data/ec_sales.zip

このファイルはパソコンを主体としたECサイトの購買データになっている。すでにテーブルも作成しているので、ダウンロードしたec_sales.dbをC:\sqlite\dbの中に配置する。
そこでsqlite3.exeを立ち上げ、

.open C:/sqlite/db/ec_sales.db
select * from 商品 limit 10;

これで、商品テーブルの値が表示されれば、正しくインストールされていることになる。

これで、DB環境は完成!すげー簡単!!
おそらく10分くらいでできちゃってるんじゃないかな。

2.Generic JDBC Connectorで接続

2-1.データベース接続の基本

改めて言うまでもないんだが、データベースへの接続はODBC、JDBC、OLE DBなどで行う。
SisenseからODBCとJDBCでデータベースに接続する時は以下のように使い分ける。

サーバのElastiCube Manager(Desktopツール)でデータモデリングを行うなら、ODBC Driverを使用する。
現在、Sisense社のほうではWeb Data Designer(ブラウザベース)でデータモデリングをすることを推奨している。Web Data DesignerはElastiCube Managerのすべての機能を網羅しているわけじゃないが、データモデリングを行うなら、Web Data Designerで十分だ。
因みにODBC Driverを使用する場合、32bitのドライバは認識してくれないみたいなので要注意。32bit版のDriverしか提供されていない場合は、あきらめるしかないが、今どきそんなデータベースはほとんどないと思うので、問題はないかと思う。

2-2.JDBC Driverのセットアップ

JDBC Driverは以下のURLからダウンロードする。
https://bitbucket.org/xerial/sqlite-jdbc/downloads/

今回はsqlite-jdbc-3.27.2.1.jarを使用することにした。
JDBCドライバは.jarファイルになっているので、そのファイルを以下のフォルダに配置する。
C:\ProgramData\Sisense\DataConnectors\jdbcdrivers\sqlite_jdbc_connector
(sqlite_jdbc_connectorは今回新しく作成したフォルダ)

以上で、JDBC接続環境は完成だ。しかし、これでホントに動くのか?

2-3.JDBC設定

Web Data Designerでデータの追加を行う際に、Generic JDBC Driverを選択する。

次に以下の設定画面となるので、以下の設定を行う。

・Connection String
接続文字列を設定する。SQLiteの場合はデータベースファイルをフルパスで指定してあげればいい。
jdbc:sqlite:C:/sqlite/db/ec_sales.db

・JDBC JARs Folder
JDBCドライバのjarファイルが入っているフォルダを設定する。
(C:\ProgramData\Sisense\DataConnectors\jdbcdriversの下に配置されている)
sqlite_jdbc_connector

・Driver’s Class Name
ドライバ毎にClass Nameが決まっているので、指定のClass Nameを設定する。SQLiteの場合は以下の設定。
org.sqlite.JDBC

[次へ]をクリックすると、JDBCでSQLiteに接続され「defalt」が表示されるので、defaultをクリックすると以下のようにec_sales.db内のテーブルが表示される。ホッ。。。

すべてのテーブルを選択し、ビルドするときちんと取り込めた。

3.まとめ

Generic JDBC Driverを使用してSQLiteに接続する方法を解説してきた。
SisenseのDocumentationには一般的な設定しか記載されていないが、他のデータベースでも同じやり方で設定すれば簡単に接続できるはずだ。
今回取り込んだテーブルを元にData Modelingの手法を試して行こう。

ではまた!

この記事が気に入ったら
いいね ! しよう