はじめに
この記事はMicrosoft Power BI Advent Calendar 2022 12月20日の記事になります。
佐賀県の小売業(和服業)で情シスをしており、複数のグループ会社(約5社)と約80店舗(約800名)のシステム関連全般を2名の情シスで行っています。
記事の内容
社内でネットの速度(ウェブ会議や業務システム)が遅いとの問合せ(特に朝)があり、社内のネットワーク改善で「どこの拠点・時間帯が遅くなっている原因なの?」とよく言われるので、Power BIにて可視化して分析を行ってみました。
通信データ(CSV)のダウンロードと格納
各拠点の月単位での通信データをCSVファイルを同一フォルダにファイルを格納する。
Power Query部分
1.データ内容について
データはCSV形式で、拠点で月単位にファイルが分かれている。
CSVは、1行目~11行目がヘッダ部分で、12行目以降に日付・時間帯毎の通信量が格納されている。
2.データ取込・加工・変換(ファクトテーブル)
Power BI Desktopのデータ取得にて「フォルダ」を選択しCSVファイルが格納されているフォルダを選択
不必要な列を削除し、ファイル名から拠点IDを取得、ヘッダ部分の行削除を行いデータを整えます。
①拠点IDの取得
ファイル名の左10桁が拠点IDのため、Text.Startにて最初の10文字を抽出する。
② ヘッダ行の削除
CSVデータの上位11行はヘッダ情報のため、ヘルパークエリ内で上位の行を削除する。
③列は分析に必要な項目のみとする
ファクトテーブルの列数は分析に必要な項目のみ(拠点・日付・時間帯・通信量)とし不必要なの列は削除する。
3.ディメンションテーブルの作成
日付、拠点、時間帯のディメンションテーブルを作成する。
①日付テーブル
今回はPower Queryにて作成を行う。
②拠点情報(Area)
拠点情報(IDと拠点名)は、システム部門で管理しているのでそのデータを利用してディメンションテーブルを作成
③時間帯(Time)
時間帯についてはCSVファイルを見ると5分刻みだったので、List.Times関数で0時から5分刻みで23:55までのリストデータを作成しテーブルに変換する
List.Times(
#time(0, 0, 0),
288,
#duration(0, 0, 5, 0)
)
④業務時間帯の区分(時間帯)
業務時間帯の通信量を調べるメジャーを作成するため、Power Queryの条件列にて、時間帯のディメンションテーブルに業務時間帯のフラグをつける。
レポート部分
1.データモデリング
ファクトテーブルがTraficDataとし、日付テーブル・拠点(Area)・時間帯(Time)をディメンションテーブルとしスタースキーマにしファクトテーブルの項目は非表示にする。
2.メジャーの作成
集計・計算用のメジャーを作成します。Power Queryで区分を立てたWorkkbn(業務時間帯)のデータ量のメジャーを入力します。
勤務時間データ量 =
CALCULATE(
sum(
TraficData[Out_data]
),
'Time'[Workkbn] = 1
)
3.グラフを作成
時間帯毎の通信量はリボングラフにし、スライサーを曜日・年月・会社名にし条件による時間帯毎の通信量が分かるようにする。
また会社別・1拠点あたり通信量の割合を把握できるよう円グラフにする。
分析してみたところ
1.朝・夕の通信量が多すぎる
午前9時~午前10時にかけて通信量が多いのは、毎日ウェブでの朝会が行われているため。
全店での店舗でのリモート打合せ(開店前)が多いため全体的に通信量が多いものと思われる。
2.1拠点だけ通信量が常に多い
会社単位では水色の通信量が多いが、拠点数が多い(約50拠点)ので1拠点単位では一番少ない。
ただ紫色の会社については、1拠点当たりの通信量も大きい。
考えられるのは会長が複数のPCでオンデマンド動画をほぼ毎日同時視聴しているのが原因。
常に一定量なので、動画を開きっぱなしというのが推測される。
まとめ
通信改善の提案は費用面で却下になったが、データを可視化してみることにより、以前までは「通信が遅いので改善したい」という曖昧な部分がデータを可視化することにより根拠を示すことができた。