気軽にはじめるPower BIのデータクレンジング(後編)
日本マイクロソフトの横井羽衣子さんと酒井麗菜さんによる、Power BIの自主学習会や、データクレンジングについてお話の後編です。
前半はこちらから「気軽にはじめるPower BIのデータクレンジング(前編)」
今回は、Power BIへCSVデータを持ち込む際のクレンジング作業を解消した過程をお聞きします。
日付形式のクレンジングを自動化
-酒井さんが分析対象としているデータで、クレンジングの際にひと手間かける必要のあるデータは日付と時間ということでした。
酒井:はい。Web解析サービス側の仕様で、吐き出されるCSVでは日付と時間の間に「-t-」といったような文字列が入ってしまっていました。これをExcelで開いた場合は「日時」として認識されるのですが、Power BIに取り込むと「文字列」になってしまい、修正ができません。そこで、いったんExcel で開いて、毎回LEFT関数で処理していたんです。
横井:そこで、前回概要をお伝えした通り、SQL Serverを使うことにしました。SQLサーバーからデータを取る場合はSQL文が使えるのと、毎回のデータの同期は自動的で取得できるので、よいのではないかと考えました。
また、ローカルのファイルでデータを修正すると、人がファイルの差分を管理することになり、最新のファイルがどれか分からなくなったり、データの一部を欠損してしまったりなどのミスが起きる可能性があります。サーバーを介することでデータの信頼性も確保できるようになります。
-具体的な流れを教えていただけますか?
横井:はい。今回紹介する手順は、データベース上でデータを補整しないので、ちょっと邪道じゃないかと言われるかもしれないんですが、
私はこれくらい気軽な感じでSQLを使ってみてほしいなと思っています。
Power BIへ接続の流れ
横井:今回の流れを図に示すと以下のようになります。
まずWeb解析のログデータはTSV(タブ区切りデータ)で入手することにしました。こちらのデータを、Azure Blob storageに保存します。Blob storageはストレージサーバーですので、イメージ的にはSharepointと似たようなものと考えてOKです。
Blob storageから、SQL Serverへ接続するのには、Azure Data Factory を使っています。データ変換したり、複数のオンプレミスデータを移動したりするのに便利なツールです。
Data Factoryの設定画面
Data Factoryでデータを転送する設定は、特別な設定が必要ないので、基本は「次へ」ボタンを押していくだけです。ただし、スキーマの設定(データ型の設定)があるので、読み込むものの形式と合っているか、確認し適宜変更しておく必要があります。データを読み込むと自動的にそれらしいスキーマがマッピングされるのですが、こちらが意図しているものと異なっている場合もあるので念のため確認するようにしましょう。String(文字列)かInt(数値)かの違いは確認しておく必要があります。
ステップに従ってデータソースや入力先を設定
あとは、転送を開始すれば、ほとんど自動的にSQL Serverにデータが入力されます。更新時も、Blob storageにデータを配置し再読み込みさえすれば、新しいデータの追加が簡単に行えます。
-便利ですね!
データの読み込みは、データの量が増えてもあまり遅くならないので、大量データを扱うのにも向いています。
この点は何万行もExcelで扱うのに比べると、ぐっと楽だと思いますよ。
SQL Serverのテーブルの表現は、横方向に見えるものが縦方向になっていたりしてちょっと戸惑うかもしれません。ただ、見慣れてしまえばなるほどということですぐになじめると思います。
-フォルダの中に表が入っていて、表の項目はリストとして表示されるイメージなんですね。
左上がSQLServerのインターフェース。フォルダを展開していき、右クリックで新規テーブルが作成できる。
横井:最後に、このサーバーにPower BIから接続します。
-この段階では、問題になっている日付と時間の列は、文字列で扱われていますか。
横井:そうなんです。いろいろな方法がありますが、データを転送する前の段階で整えるというのは今回、考えませんでした。
Power BIのSQL文でFormat関数を使い、問題の列の文字列を除いて数字だけを取り出す指定にしています。
Power BI Desktopの接続SQL Server データベース接続ダイアログ
-これで読み込むと無事、計算可能なデータが取り出せるのですね。
横井:そうです。
酒井:これで、いつも行っていた手作業がなくなったので、新しいデータが追加されれば、ほとんど自動的にPower BIへデータを取り込むことが可能になりました。
得意分野にプラス1を持つと仕事が捗る
-解説ありがとうございました。このデータクレンジングのお話を伺って感じたのは、1つは、サーバーを扱うことをそんなに難しく考えなくてもよいということです。
酒井:私にとって半年前はまったく知らなかった知識だったので最初こそ、戸惑いましたし、使い方自体は横井さんから教わらないとわかりませんでしたが、何回か手順を追って作業してみると自分でも操作ができるようになっていました。
-データベースを使うといっても、そこまで気負いする必要ないという印象も受けました。
横井:最初は分かっている人が手伝ってセッティングする必要があると思いますが、一度システムができてしまえばオペレーションは問題なくできると思います。
私たちの場合は、自主勉強会ということで、Power BIを使うのが上手な酒井さんと、データベースが得意な私が一緒に取り組むことで、仕事の効率改善が可能になりました。ただ、もし2人でなく1人の場合でも、自分の得意な分野にプラス1つ別のスキルを掛け合わせてみると、仕事の効率って、グンと上がるんじゃないかと思います。
-そうですね。わからないからそれは触れない…と避けてしまう前に、ちょっとチャレンジしてみたら、すごく作業が楽になる、ということもありますよね。
酒井:今後も勉強会を続けるなかで、私も新たなスキルを身につけていきたいなと思います。
横井:私はまだまだレポート作成のビジュアル化に自信がありません。レポートの見せ方ひとつで資料の説得力は違ってきますよね。酒井さんはPower BIのビジュアライゼーションのセンスは抜群なので、私も酒井さんからレポートデザインのコツを学んでいきたいと思ってます。
-本日はありがとうございました。