Dr.Sum Data FunnelでCSVファイルを連携してみた

#1. はじめに

Dr.Sum Ver. 5.1 から「Data Funnel」という機能が追加されています。
とても便利な機能を気軽に利用できるのが特徴（標準機能として利用できるので追加料金も必要ありません！）なのですが、そもそも認知されてなかったり、難しそうというイメージを持たれている方もいるかと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1569715/55a831ff-3f28-8432-784f-97c6ed907520.png)
今回の記事を通してDr.Sum Data Funnelの便利な機能を紹介できればと思います！

#2. Dr.Sum とは
Dr.Sum とは、ウイングアーク１ｓｔ株式会社が提供する、企業内の基幹データベースの情報を高速に集計できる BI ツールです。

![top_solution_image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1569715/80adba17-0645-8a23-21a3-ac26b3d78568.png)

※キャプチャはウイングアーク1st社のホームページより抜粋
https://www.wingarc.com/product/dr_sum/

Dr.Sum では次のようなことができます。

- 企業内のデータを高速に集計できます
    - 企業内の大容量のデータをインポートして、高速に集計できます。インメモリにも対応しているので、さらに高速な集計も可能です。
- 操作性の高いユーザーインターフェイスが課題発見をサポートします
    - Microsoft Excel や Web ブラウザーを利用して、手軽なレポート出力、課題発見に向けた情報分析ができます。


#3. Dr.Sum Data Funnel とは
Dr.Sum Data Funnelとは、継続的に発生する時系列データをリアルタイムに収集、加工するためのツールです。収集した時系列データを、Dr.Sum DatalizerまたはMotionBoardなどのBIツールで集計および分析するために適したフォーマットに加工できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1569715/7dab7132-89af-4ae3-ed6a-7c7908a3113e.png)

#4. Dr.Sum Data Funnel でCSVファイルを連携してみる

データ収集方法は3つのプロトコル（MQTT、HTTP、OPC UA）に対応しています。
今回はCSVファイルをMQTTプロトコル経由でDr.Sum に格納していきたいと思います。

##(1)データの準備
連携を想定するCSVファイルを準備して任意のフォルダに配置します。
例）C:\DrSum55work\datafile

```sample.csv
MACHINE,DTTM,STR,VAL
AAA,2021/06/22 13:00:01.00,XXX,40
AAA,2021/06/22 13:00:02.00,XXX,90
AAA,2021/06/22 13:00:03.00,XXX,100
AAA,2021/06/22 13:00:04.00,XXX,30
AAA,2021/06/22 13:00:05.00,XXX,20
AAA,2021/06/22 13:00:06.00,XXX,10
AAA,2021/06/22 13:00:07.00,XXX,20
AAA,2021/06/22 13:00:08.00,XXX,10
```

##(2)コマンドの作成

MQTTでパブリッシュするコマンドを実行するためのconfファイルを作成して任意のフォルダに配置します。
例）C:\DrSum55work

```mqttpublish.conf
mqtt-host=localhost
mqtt-port=1883
mqtt-user=*****
mqtt-password=*****
mqtt-topic=Test

csv-charset=UTF-8
csv-skip-rows=0
csv-has-header=true
csv-delimiter=,
target-type=csv 
processed-files-destination=C:/DrSum55work/datafile/fin
```

ここで重要なのは**「mqtt-topic=Test」**です。
MQTTプロトコルでパブリッシュする際のMQTTトピックを**「Test」**という文言で指定しています。後続のパイプライン定義を作成する際にも、ここで指定したMQTTトピックを設定します。mqtt-topicは任意の値を設定できます。

続いて、CSVファイルをMQTTでパブリッシュするコマンドを作成して任意のフォルダに配置します。
例）C:\DrSum55work

```mqttpublish_test.bat
cd <Dr.Sum Data Funnel Clientのインストールフォルダー>\cmd\JPN
call mqttpublish -config C:\DrSum55work\mqttpublish.conf -target-files C:\DrSum55work\datafile
```

コマンドの詳細は以下のマニュアルを参照下さい。

https://cs.wingarc.com/manual/drsum/5.5/ja/UUID-c176da9b-8dab-f57d-3811-cd19effbfb51.html

##(3)パイプライン定義の作成

任意の名前でパイプライン定義を作成し、以下を設定して「テーブル化の設定」をクリックします。
実行種別：ストリーム
データタイプ：CSV
MQTTトピック：Test（mqttpublish.confで指定した値と同じもの）
トリガー間隔：1秒
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1569715/44bb1d29-540f-f310-6c43-28e4edf31da4.png)

「データを入力して推定」を選択して、赤枠部分にCSVファイルの内容を張り付けて「推定」ボタンを押すとテーブル化されますので、そのまま「ＯＫ」ボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1569715/f535236d-6ac1-9aa4-31a8-fc1b12244df8.png)

「時刻関連項目設定」画面で分析用日時項目を「ARRIVEDTIME」に指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1569715/053b68f8-85be-afef-047b-d36b5d12e1ce.png)

「Dr.Sumに出力」画面で出力先を設定してパイプライン定義を保存します。
※「テーブルの作成SQLをクリップボードにコピー」ボタンを押すとCREATE文がコピーされるので、必要に応じてDr.Sum 側にテーブルを作成してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1569715/bbed8710-e625-62a6-c211-14c53d47e5aa.png)

作成したパイプライン定義を起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1569715/5491cbf5-5503-151b-a8dd-15b7bd2fe656.png)


#5. 結果確認
(2)で作成した「mqttpublish_test.bat」を実行して、Dr.Sum Data Funnel経由でDr.Sumにデータが格納されたことを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1569715/b0c972f2-8128-eea6-fdf9-63ab14583b4b.png)


#まとめ
CSVファイルを定期的に出力する仕組みがあれば、Dr.Sum Data Funnelを利用して簡単にリアルタイム連携を構築できるのがわかっていただけたかと思います。

今回はDr.Sum Data Funnelの最大の特徴でもあるデータ加工については何も触れていないので、次回の記事で書いていきたいと思います！

ウイングアーク1st社のホームページからDr.Sum Data Funnelハンズオンの申込ができるようです。
興味がある方はぜひ申込してみてください！