データベースにライブ接続すると処理に時間がかかりすぎて使い物にならない。
抽出したデータソースなら早いけど、リアルタイムにデータを見える化したい。
今回は、こういった疑問に答えていきます。
スマートファクトリー化を行っていく上で工場の生産設備データの収集は必須条件です。
生産設備ごとにあるPLCのような設備データを定周期で収集しますが、データ量は膨大になります。
膨大なデータ量のデータベースのテーブルにTableauからライブ接続すると処理に時間がかかりすぎてせっかく作ったダッシュボードも使い物にならないことがしばしばあります。
これはテーブルのデータをすべて読み込もうとすることに原因があります。
そこで、条件を指定してから(例えば検索条件で日時を指定)テーブルの情報を読み込み、データ量を少なくする必要があります。
その方法について紹介していきます。
データベースにライブ接続でデータ量を絞る方法
Tableu Desktopの標準機能で実現することができます。
データソースのカスタムSQLとパラメーターを組み合わせて使うことで、ユーザーがダッシュボードで指定した条件でデータベースのデータを取得することができます。
SQLを記述する必要がありますが、初めて触る人でも基本的な構文しか使わないので、比較的理解しやすいかと思います。
実装手順
カスタムSQLのみで本日のデータを取得する方法
- Tableau DesktopからPostgreSQLに接続する。
2. データソースタブの新しいカスタムSQLをドラッグアンドドロップしてカスタムSQLの編集画面に以下のSQLを記述します。
SELECT * FROM [テーブル名] WHERE [カラム名] > (SELECT CURRENT_DATE)
『SELECT CURRENT_DATE』で現在の日付を取得することができます。
3. 本日のデータのみ取得できていることを確認する。
カスタムSQLとパラメーターを組み合わせて1日分のデータを取得する方法
- 計算フィールドで本日の日付を取得するフィールドを作成する。
2. 計算フィールドで翌日の日付を取得するフィールドを作成する。
3. パラメーターで開始日を作成する。
4. パラメーターで終了日を作成する。
5. カスタムSQLの編集でSQLの条件式に作成したパラメーターを挿入する。
6. 最後にワークシートから作成したパラメーターの[開始日]と[終了日]を右クリックしてパラメーターの表示をするとユーザーが検索する日付を選択できるようになります。
まとめ
データベースの抽出条件を動的なクエリで絞ることでライブ接続した場合の処理時間を短くすることができます。
ユーザーへのストレスを減らすことができますし、データベース自体への余分な負荷も減らすことができます。
データベースに対してライブ接続したい場合の参考になりましたら幸いです。