はじめに
通常、BIツールでデータ加工するときに、BIツールか、前段階のETLか、どの段階で実施するべきか検討することが多いと思います。BIツールでは、「システム構築の半分は、データの準備」と言われるぐらい、データの準備(加工)は重要な部分を占めています。この記事では、Oracle Analytics Cloud(OAC) でのデータ加工をどの段階でするべきか、方向性の参考となるような情報を提供したいと思います。
Oracle Analytics Cloud でのデータ加工する段階
OAC では、データ加工する段階は、データソース(データベース)側から列挙すると、データ ビジュアライゼーション(セフルサービスBI)の場合、テーブルの列追加、ビュー、データモデル、データフロー、データセット、マイ計算となります。テーブルの列追加とビューは、データベース側の機能です。
基本的には、できるだけ上流(データソース側)でデータ加工したほうが、うまくいくケースが多いです。BIツールよりデータベース・サーバーのほうが、計算処理能力が高いからです。データを二次利用するケースも考えて、データベース・サーバーのほうが効果的でしょう。例を上げますと、「売上金額」と「原価」の列を持った表があるとして、「利益額」を表示したい場合、「利益額」は、「売上金額」ー「原価」で列同士から計算できるので、データベース側で処理したほうがいいでしょう。表にデータを入れるときに計算して実体として列をINSERTするでもいいですい、ビューとして、計算列を追加しておくでもいいでしょう。ただ、ビューの場合は、検索時に計算されるので、データ行数が多い場合には、パフォーマンスに影響ででる場合があります。最終的に、BIツールで、合計「利益額」を集計するときよりも、データベース側で高速に処理できるメリットもあります。
- 売上表
売上金額 | 原価 | 利益額 |
---|---|---|
100 | 80 | 20 |
ただ、組織によっては、データベースを操作する部門権限がなかったり、データベース・サーバーの負荷の懸念で、データベースでデータ加工できない場合もあると思います。
データ・セット
データ・セットとは、ワークブックの元データとなるデータソースです。データ・セットでも式を使った列の追加をすることができます。もし、データベース側で加工処理できない場合、データ・セットには加工処理できることが多く、データ・セットで加工処理をしたほうがいいと思います。データ・フローのように、処理実行しなくてもいいですが、機械学習のような複雑な処理は実行できません。
データ・フロー
データ・フローは、データセット、サブジェクト領域またはデータベース接続からデータを加工できます。データ・フローはGUI(画面)で、アイコンを追加していくて、フローを定義することができます。ただし、データ・フローを実行しないと、データ・セットができないので、手動もしくはスケジュール実行する必要があります。データ・フローには機械学習などの高度な処理のアイコンもあります。
ワークブックのマイ計算
ビューワー側のワークブックのマイ計算でもデータ加工できますが、制限事項があり、データ・セットでデータ加工できるのであれば、データ・セット側でデータ加工したほうがいいと思います。ただし、利益率や歩留まり(不良品率)を計算するときは、データ集計後に計算するべきなので、マイ計算で計算するべきかと思います。
おわりに
Oracle Analytics Cloud でデータ加工する段階はいくつもあるので、どの段階でデータ加工するべきかについて記載しました。基本的に、データソース側で加工し、割合を求めるときはワークブックのマイ計算で処理したらうまくいくのではないかと思います。Oracle Analytics Cloud で分析するときに、参考になれば幸いです。