Tableauを使った業務自動化アイデア ②データ接続編
こんにちわNakajimaです。
自己紹介です。
つまり地方の製造業情報システム部門管理職が一人の意見として書いているだけです。
今回はTableauを導入し3ヶ月、システム部門としてTableauを使った分析業務の自動化について書いていこうと思います。
①全体の流れ編へのリンク
②データ接続編【本編】
1.データソースの準備
まず分析対象となるデータはcsvファイルに存在していることとします。
個人的感覚ですが、組織内業務で問題になることとして「ファイルどこに保存したっけ?」問題や「ファイル名勝手に変えないでくれる?」問題があります。
これらは全て各部門のファイル保存ポリシーに依存してしまっているから発生していると考えています。自動化する場合には必ず、自動化部門のポリシーにのっとったファイル保存ルールで運用する方が良いと思っています。
今回はcsvファイルを クラウドサービスであるMicroSoft365のSharePointに保存してデータ接続していきます。データは必ずしもCloudに保存しないといけないわけではないと思います。あくまで筆者の環境でそれを採用しただけということです。適宜皆様の環境に置き換えてイメージしてください。
では進めていきます。
MS365のTeamsで[自動化データ保管用のチーム]を作成し、[ファイル]の中に必要なディレクトリ階層を作りcsvファイルを保管します。
2.データソースへの接続
まずTableau Cloudに成果物を保存するためのプロジェクトを作成しておきます。
今回はプロジェクト名を [MS365内CSV_Prep_Tableau連携] という名前にしました。
また今回の事例では、csvファイルそのままでは分析できないケースを想定しています。業務でよくあるケースとして、csvファイルではデータが不完全なためEXCEL上でデータをいじいじ整形してグラフを作ることがあると思います。
EXCEL整形が間に入ると、その整形作業待ち時間が発生し業務フローが滞るということがあると思います。今回はそのEXCEL整形をTableau Prep Builderを使って実施することとしました。
Tableau Prep Builderを起動します。(以下 Prep とする)
今回はパソコンにインストールしたPrepを使いました。
画面左上の接続をクリックします。
OneDriveとSharePoint Onlineを選択します。
SharePointへ接続するためのアクセス権チェックが始まります。
アカウントの選択とパスワード入力をします。
無事通過すると以下の画面が表示されました。
MS365上で接続するデータを指摘します。
今回はSharePoint上のcsvファイルなので、[SharePointサイト]を選択して[サイトを一覧表示する]をクリックします。
一覧から今回作成したチームを選択します。
チームを選択するとディレクトリ選択画面が表示されますので、対象ファイルが保存されているディレクトリまで移動しcsvファイルを選択します。
今回は作業実績.csvを選択します。
3.データの整形
ここまででMS365 SharePoint上へのデータ接続が完了しました。
次にPrepを操作してデータを整形していきます。
ここではPrepの詳しい操作は行いません。あくまでPrepの操作イメージが目的です。Tableau環境はあるが、まだPrepに踏み出せていないような方への説明です。
今回のデータ整形は、作業実績時間分析のためです。しかしcsvデータには以下の問題があります。・作業実績時間(今回の単位は分とする)の値がない・作業開始日と時刻(終了も同様)が分かれているため作業実績時間を計算で求められrない。これらをPrepを使って処理していきます
作業実績.csvの右横の+プラスマークから[クリーニングステップ]をクリックします。
そうすると処理を定義する箱が追加されます。
まず作業時間計算するために、開始と終了の日付ど時刻が存在した日付データに変換していきます。今回の方法はあくまで1つの参考方法です。
まず処理を定義する名前に変更しておきます。今回はクリーニング1を作業日時準備としました。
今回は開始日付フィールドと開始時刻フィールドを1度文字列に変換し、その後両フィールドを計算式で結合させ、結合したデータを日付型のデータに変えていく作業をします。
作業.csvをクリックすると画面上にデータが表示されます。
開始日付を文字列結合のために文字列に変えます。
次に開始時刻ですが、これはPrepの仕様なのか余計な年月が追加されています。
恐らく上手く取り込む方法もあるとは思いますが、今回そこはスルーします。
開始時刻の[…]から値の分割→カスタムを選択します。
分割条件が設定できますので、
区切り文字:" "(半角スペース)
分割:最初の2フィールド
等にして 1899-12-30と08:00:00 を分けていきます。
分割した結果、08:00:00 のみを抽出できました。
終了日付、終了時刻も同様の処理を行っておきます。
次に開始日付と開始時刻を結合させ開始日時データを生成していきます。
[計算フィールの作成]を選択し、
DATETIME([開始日付]+" "+[開始時刻 分割済み])
このような計算式を用いて日付型のデータを生成します。
日付型のデータが生成できました。
終了日時も同様に計算します。
作業開始日時から作業終了日時までの経過時間(分)を求めます。
作業日時準備の右側[+プラスマーク]から[クリーニングステップ]を選択し、同様の作業で作業時間計算処理を追加していきます。
計算フィールドの作成を選択し、以下のような計算式を用いて作業時間を計算します。
作業時間計算 : ([作業終了日時]-[作業開始日時])*1440
作業時間が計算されました。
今回のcsvファイルでは60分と70分のデータが存在していることが分かります。
4.データの出力
ここまででデータが整形されたこととします。
整形されたデータをTableau Cloudで分析するためのデータソースとして使用するために出力していきます。
一連のフローの最後である作業時間計算処理の右側[+プラスマーク]から[出力]を選択します。
[出力]が追加されました。
次に出力先を定義していきます。
[フローの実行]をクリックすると作業実績データソースがTableau Cloudの指定したプロジェクト(ディレクトリ)に保存されます。
Prepの操作は今回は以上とします。Prep定義データは必要に応じて保存してください。
また今回Prepはパソコン上のPrepを使用しましたが、[パブリッシュ]をすることでTableau Cloudにも定義を保存できるようです。(どうやらTableau Cloudでも編集できるだろうことに後から気づきました・・・)
パブリッシュとはCloud上にアップロードするような意味合いの理解で良いと思います。
データソース出力の実行方法
作成したフローからデータソース作成を実行していきます。
[…]から[今すぐ実行]をクリックすることでデータソースが出力されます。
データソース出力の自動実行方法
①全体の流れ編でも記載しましたが、問題となるのは①全体流れ編でも記載した Prepで定義した[出力]の自動実行です。
どうやらTableau Cloudだけでは不可能らしく、Tableau+が必要のようです。
フローのスケジュールを組むためには Tableau Prep Conductor が必要であり、Tableau Prep Conductor は Data Managementに入っており、そのData Management は Tableau+ に入っているようです。
Tableau+はオプション料金であり、かつTableau公式サイトに費用は掲載されていません。筆者は導入ベンダーに問い合わせ行い費用確認しました。
このような経緯から、残念ながら筆者の環境では人が[出力]をクリックして運用しています。できるだけ[出力]クリック数が少なくなるような工夫で乗り切っている状況です。
とは言え、結局のところどこで費用をかけるか?という選択に過ぎないと思います。
情報システム部門のリソースが潤沢な組織では、CSVファイルデータをお持ちのデータベースに書き込む方法もあると思います。ただそれは情報システム部門への費用がかかっていると言えます。
また情報システム部門のリソースが少ない組織では、EXCELマクロにcsvファイルを整形するような処理を組み込み、それを自動起動するようなバッチ処理をWindowsスケジュールに仕込む方法もあると思います。ただそれではTableauとデータソースを繋ぐ部分をどうデザインするか?という観点が必要になります。
いづれにしても、現状で仕組み化するには何かしらの苦労が伴うように感じます。
まずは最小限の手数で仕組みを構築し、最小限の運用で回せる方法を採用すべきと思います。目的はシステムの自動化ではなく、分析による成果の創出なのですから。
それでは分析画面の作成編へ進みたいと思います。
③分析画面とアラート作成編へのリンク
④複数アラート一括作成編へのリンク
終わり