目次
Windows7でしか動かない販売管理ソフトとは?
私の入社する前に外注で作られた販売管理システムがある。Windows7専用のアプリケーションで、データベースはMicrosoft Accessを利用していると思われる。
新しいフォルダ
や、商品管理データ2
といったディレクトリ階層を解読しながら抜けていくと、どうやら本番DBと思われるファイルを発見した。
その拡張子は、.mdb
となっており、どうやらAccess2007より前のバージョンかと推測された。
私自身にMicrosoftのアプリケーションを構築する能力がなく、強いて言うならWebアプリケーションしか作ったことがない。よってこれをWindows10に対応させたり、クラウド化するのは骨が折れる作業であった。
欲しいデータが取得できない問題
現状、Windows7専用のアプリとなった販売管理システム。「顧客名から販売履歴を検索したい!」と言った要望が出てきた場合、このアプリケーションにコードを追加する必要がある。しかし、販売管理システムをカスタマイズするには、次の問題があった。
- IDEが必要
- Microsoft 製品のコーディング知識
旧システムである現状の販売管理システムに関する知識を今から覚えるのは気が進まない。
そこで販売管理システムは活かしつつ、検索だけでも自由にできないかと考えた。そこで、OSSのBIツールでもあるRedashを用いて、現状の販売管理システムのデータを参照できないかと考えた。
Redashからデータ参照できるようにする
AWS Lightsail上にRedashを構築する方法
Redashは多くのデータソースに対応しているが、もちろん.mdb
形式には対応していない。そこでまずは.mdb
形式のデータを、慣れ親しんだ.sql
形式に変換できないかと考えた。
現状の販売管理システムのデータが、MySQL化するだけで検索能力は飛躍的に向上するでしょう。
今回は、MDB/ACCDB Viewerというソフトを使って手動で.mdb
→.sql
変換を行うこととした。作業の流れとしては次の通りである。
- 販売管理システムのデータ
.mdb
を、MDB/ACCDB Viewerを使用して.sql
に変換する .sql
ファイルを、MySQLサーバに転送する- RedashからそのMySQLサーバのデータを参照する
- 自由にクエリを書き、検索専用のミニマムアプリにように使う
これらの流れを行う。少なくとも1日1回はデータの抽出からインポートを行うので、若干面倒になった。そのあたりは、シェルスクリプトを作成し、コマンド一発で実行できるような環境を用意。
#!/bin/sh
cd `dirname $0`
mv ./data/商品管理.sql ./data/admin.sql
echo "File Formatting..."
sed -i -e 's/UTF8/UTF8MB4/g' ./data/admin.sql
echo "admin.sql >>> Glue server..."
scp ./data/admin.sql redash:/opt/redash/maki-data/data/admin.sql
CONTAINER_ID=`ssh redash "cd /opt/redash/maki-data && sudo docker-compose ps -q db"`
ssh redash "sudo docker cp /opt/redash/maki-data/data/admin.sql $CONTAINER_ID:/data/admin.sql"
echo "scripts copy..."
ssh redash "sudo docker cp /opt/redash/maki-data/db/script $CONTAINER_ID:/"
echo "UPDATE..."
ssh redash "sudo docker exec $CONTAINER_ID /script/update_admin.sh"
Redashで統計分析やデータ検索が高速化!
Redashを導入することによって、素早く顧客データにアクセスできるだけでなく、統計分析も行えるようになった。Windows7専用の販売管理システムでは統計分析はできなかったが、過去のデータは蓄積されていたので過去10年以上の販売データが統計分析に役立っている。例えば次のような恩恵が受けられた。
- 週毎の売上データで、週間進捗を確認
- 顧客名をlike検索して素早く購入履歴にアクセス
- 商品分類別売上