COLUMN

データ集約とデータクレンジングの重要性

column_yokoi4

こんにちは、日本マイクロソフトの横井羽衣子です。このコラムでは、Power BIを集計業務やビジネス分析に使うオフィスユーザーの方々を対象に、マイクロソフトから役立つ情報を、さまざまなテーマでお届けして参ります。

今回は、Power BIで分析する前段階で、避けては通れない「データ集約とデータクレンジング」についてお話したいと思います。

 

データ分析は素材の安全性確保が大事!

私たち日本マイクロソフトのスタッフも、現在さまざまな業務でPower BIを利用しています。たとえば、「Web解析」や「ファイナンス部門」などでの利用についても過去のPOWER BI FORUM内のコラムやインタビューで紹介していただきましたが、マイクロソフトでは、グローバルで同じシステムを利用したり、それぞれのシステムがデータ連携したりなど、データ環境の整備が進んでいます。データベースの接続性と利用環境がとてもよく、Power BIを始めるのには恵まれた環境があります。このように、データ集約がなされることで、データの出どころや最新かどうかなどの状況を心配することなく、すぐに仕事にとりかかれるからです。

いま申し上げた「データ集約」とは、データを一元管理し、データの整合性を担保できる環境をつくることです。おおざっぱに喩えるなら、「お料理の具材をちゃんと冷蔵庫に入れて保管していますか?具材の安全性は大丈夫ですか?」ということ。具材が腐っていたら、どんなに腕のいいシェフが調理をしても、美味しいご飯にはなりません。万が一美味しくできても、食中毒になってしまっては元も子もないですよね。

それと同じで、データの健全性が保証できない環境でデータを取ってきてしまったら、どんなに優れた手法でデータ分析を行ったとしても、そこから導かれる数字は間違ったものになり、間違ったビジネス決断が行われてしまいかねません。それではすべての作業は水の泡です。

どんなオフィスでも「あるある」なデータの保管問題をお教えしましょう。ファイルサーバーにポンと置かれたExcelシート。しかもファイル名は「売上表20170501」「売上表20161201」など日付がついているファイルが複数存在します。さて、最新のファイル名を選べばいいのでしょうか? ところが、念のため保存日順で並べてみると、「20161201」のほうが最新更新日は新しいのですが…。先月作業をした営業のAさんは、Aさんバージョンの最新版Excelファイルをローカルに保管していて、サーバーのシートと微妙に異なる内容になっている。なんていう場合もあります。

0728_column_01

もし、あなたがこれらのデータを使ってPower BIやExcelで分析をしなければならないとき、どのデータが最新か、あるいは、最新のファイルでは直近より1行減っているのは何故か…。などと考えなくてはならず、いつまでたっても作業ができません。これが、データの整合性が保証されていない環境です。
更に恐ろしいのは、ファイルだと誰でも触れてしまうので、持ち出しも可能ですし、さらに持ち出しされても気づけないことです…。顧客データが業者に出回ってはじめて気づくなんて怖いことだってあるわけです。

ファイルを手動で更新する環境だと、必ずこういうことが起こります。データの整合性を保つにはファイル単位での管理には限界があり、ある程度以上の情報を扱うためには、必ずデータベースサーバーを導入するべきです。
ここまでが今日の1つ目のテーマ、「データ集約」の重要性です。

 

データクレンジングはソフト内で終わらないことも

もう1つの重要な点、データ分析に適した状態のデータに整える「データクレンジング」の作業です。「データベースを扱うための基礎の基礎—身近なデータから学ぼう」では使いやすいデータと使いづらいデータを紹介しました。それ以外にも、Power BIでデータを扱うときは、数値には「数値」属性が割り当てられていないとなりませんし、年月日や時刻などもそれぞれに合ったデータ属性が割り当てられていないとなりませんよね。

再び、「あるある」を挙げてみましょう。データ分析に使いたいのでダウンロードしてきた総務省の公的資料は、エクセル上で印刷用の文書レイアウトがされているため、空白の行が上にあるなど、Power BIオンラインに取り込んでも、表とみなされません。データとして使うには、ちょっと面倒なのですが、どうしても一手間かける必要があります。こういった簡単に修正できるけれど面倒な手直しの作業も、データクレンジングの一例です。

0728_column_02

あるいは、社内のCSVファイルで提供されたデータの場合はテキストデータ扱いになっていたり、組み合わせて使いたいデータと日付の表記フォーマットが違っていたり…などという難関にぶつかることもあります。データクレンジングは、分析の前に必ずやらなければならない作業です。これが行われていなければ分析自体できなくなってしまいます。不要なデータが含まれたまま作業すれば、分析結果に不整合が起こってきます。

0728_column_03
例) アメリカ、日本、欧州では日付フォーマットが違っているためにとんでもない誤解が発生することもある(2017/06/12)

 

SQLからデータを取得するソリューション

私たちもWeb解析を行っていて、素材となるCSVデータの日付の文字列にアルファベットが入っていて困ったことがあります。日付の表示フォーマットを変換するために、関数を使って解決できればいいのですが、そのときは毎回の作業のことを考えて、SQLサーバーを使うことにしました。

SQLは、オープンソースを始め、Microsoft Azure サーバーでも利用できる、とてもポピュラーなデータベースです。データウェアハウスにも使われます。サーバーやデータベースと聞くと拒否反応を起こすというビジネスユーザーの方も多いのですが、実際に使ってみればExcelの行列にデータをコピー&ペーストで埋めるレベルのシンプルな操作でもデータベースを作ることが出来るので、実は敷居は低いんですよ。

この時は、CSVのデータをいったんSQLサーバーにコピー&ペーストで登録し、Power BIからデータベースに接続する際、SQL文を書いて取り込み方法を指定することで文字列を除いて必要な数字を取り込めるようにしました。この作業は1回設定すれば、2回目以降はデータの更新を行うだけで好ましいフォーマットでデータを読み込むことができるようになりました。

つまり、データの整合性のためだけでなく、データクレンジングの面からも、データベースサーバーは大変役立つんですね。

0728_column_04

例) Power BI で接続する際に詳細設定を開いてみると SQL ステートメントを記載するところがでてくる。この例では “format” 関数を使って、”年4桁/月2桁/日付2 桁” の形式で “初回入電日” という列のデータを取得し、Power BI 上で “初回入電日GT” という列で扱うようにする、という意味

0728_column_05
列名にも出てきます↑

今回は、データ集約とデータクレンジングという2つの「下ごしらえ」の重要性を紹介しましたが、共通しているのがデータベースサーバーの重要性です。データ漏洩やデータの消失・信頼性などを守るためにもサーバーは進化しています。ごくごく簡単にも始められるデータベース、SQL Databaseについても、近いうちにお話したいとおもいます。

0728_column_06