Wave Analytics Spring’16の新機能紹介(2/2)

February 22, 2016 Naoki Kitaarashi

みなさん、こんにちは。前回のブログに引き続きSpring'16でのWave Analyticsの新機能について紹介したいと思います。新機能紹介の前半についてはこちらをご参照下さい。

 

複数のデータフロー定義

パイロット扱いでありまだ実際には試していないのですが、今まで組織全体で1つしか定義できなかったワークフロー定義を目的別に複数持てるようになりました。1つの組織に複数のWaveアプリケーションを作成する場合、データフローを1つしか作れないのは少し不便な制約だったので、とてもうれしい機能拡張です。Summer'16で正式リリースになることを期待します。

Screen Shot 2016-02-15 at 13.49.38

[新しいデータフロー・ビュー画面(リリースノートより)]

 

アクション連携の強化

アクション連携機能が強化され、一部の標準オブジェクトだけでなくより多くの標準オブジェクトとカスタムオブジェクトでアクション連携機能がサポートされるようになりました*1。また、下記のメニューがアクションメニューに追加されています。

  • 投稿
  • ファイル
  • リンク
  • アンケート
  • 質問

Screen Shot 2016-02-23 at 09.40.45 

[商談オブジェクトのアクション連携メニュー]

*1 取引先責任者、ユーザ、ユーザプロファイル・オブジェクトは本バージョンでも未サポート

 

アクションメニューを表示するための方法は特に変わっておらず、下記のように対象データセットの拡張メタデータ(XMDファイル)にdimensionsセクションを追加します。

 

{
  "dimensions": [
    {
      "field": "Name",
      "recordIdField": "Id",
      "sfdcActionsEnabled": "true"
    }
  ],

 

 

 

派生項目の追加

これまで元データ(SalesforceオブジェクトやCSVデータ)にない項目をデータセットに追加したい場合は、事前のETL処理で項目を追加するかSAQLクエリーを使ってクエリーの実行時に項目を追加するといった工夫が必要でしたが、データフローでの変換処理に項目を追加するためのアクションが追加されました。下記のようにデータフロー定義にアクション(computeExpression)を追加することで、データセットに対して項目を追加できます。

 

"actionlog_101": {
    "action": "computeExpression",
    "parameters": {
      "source": "hcp_actionlog_100",
      "mergeWithSource": true,
      "computedFields": [
        {
          "name": "Weektype",
          "saqlExpression": "case when dayofweek==\"土\" then \"週末\" when dayofweek==\"日\" then \"週末\" else \"平日\" end",
          "label": "Week Type",
          "type": "Text"
        }
      ]
    }
  }

 

上記の例ではデータセットに項目“Weektype”を追加しており、曜日(dayofweek)が月〜金は「平日」、土日は「週末」になるように定義しています。computedFields属性に追加する項目名(name)と式(saqlExpression)を指定します。saqlExpressionにはSAQLの条件式を改行なしで指定して下さい(途中に改行があるとJSONエラーになります)。

Screen Shot 2016-02-15 at 19.37.38

[データセットに項目 Week Typeを追加した例]

 

比較テーブルによるグラフの作成

Wave Analyticsには以前から比較テーブルというグラフの形式があり、例えば下記のようにA列とB列の比較結果をC列に表示するといった事が可能でした。A列には2014年の売上合計、B列には2015年の売上合計、C列には2014年から2015年の増加率を表示するように指定しています。

Screen Shot 2016-02-16 at 22.02.22

[比較テーブルの例]

前回紹介したFlexダッシュボードデザイナからレンズを作成した場合、この比較テーブルのデータを使ってダッシュボード上にグラフを表示することができます(以前は表形式のままダッシュボード上に配置することしかできなかった)。レンズを編集した後に保管ボタンを押すと下記の画面が表示され、どの基準列を有効にするかを選択することができます。

Screen Shot 2016-02-16 at 21.30.18

[比較テーブルにおける基準の選択  〜 2014を選択から外した状態]

B列の2015年のデータとC列の増加率のみを有効にしてダッシュボード上にレンズを登録すると、下記のようなコンボ形式のグラフをダッシュボード上に表示できます。

Screen Shot 2016-02-16 at 21.42.36

[比較テーブルを元にしたコンボ・グラフ]

このようなデータの加工も以前のバージョンでは事前のETL処理で実施する必要がありました。

 

SAQLの拡張

SAQLにもいくつか関数が追加されているのですが、今回ウィンドウ関数が追加されたことに注目したいです。ウィンドウ関数とはグループごとに集計された各行の値を別の行の計算に使える機能です。この説明ではよく分からないと思いますので、具体的な例で説明します。

下記は事業カテゴリごとの①「売上個数」、②「売上金額」、③「全体の売上における売上金額の割合」を表す表であり、③の割合をウィンドウ関数を使って計算しています。単純に思えるかもしれませんが、以前のWaveでは基準の合計値や平均などは簡単に算出できましたが、各集計値を他の集計値と比較することはできませんでした(例えば、カテゴリ「小売り」の売上個数と「バイオ」の売上個数を比較することができなかった)。この例では SAQLで “集計値*100 / sum(集計値)”とすることで、各集計値の全体における割合を算出しています。

Screen Shot 2016-02-17 at 23.00.54

[ウィンドウ関数の例 〜「売上の割合」列]

ダッシュボードJSONで指定しているSAQLは下記のようになり、ハイライトした部分がウィンドウ関数になります。ここでは関数の詳細は説明しませんので、詳しく知りたい方はWaveのヘルプをご確認下さい。

 

Screen Shot 2016-02-17 at 23.17.03

[ダッシュボードJSONにおけるウィンドウ関数の指定例]

私が以前係わったプロジェクトではこの割合の部分が算出できず諦めたのですが、このウィンドウ関数の導入により今後はこうした集計を実現できるようになりました。

 

前後編の2回に渡ってSpring'16でのWave Analyticsの新機能を紹介しました。後編で紹介した機能は実際にWaveを使って開発を行った方でないと有用性がイマイチ分からなかったもしれませんが、ETLによるデータ加工の必要性を下げてWaveの環境だけでデータ処理を行うためにはとても意味のある機能追加だと思います。

 

著者について

Naoki Kitaarashi

アピリオのシニアコンサルとしてクラウドの世界に身を投じてはや5年あまり。プロジェクトでの立場に応じて、アーキテクト、リーダー、デベロッパーと様々なロールの仕事に携わっています。続々と新しいサービスと技術が登場するSalesforceの世界はエンジニアとして常に刺激を持ち続けられるエリアであり、2019年からはMuleSoftソリューションの起ち上げに関わっています。しばらくはAPI-ledなシステム連携を広めることに全力投球!!

Naoki Kitaarashi のコンテンツをもっと見る
戻る
Heroku Tips (1) Heroku Postgresを参照する
Heroku Tips (1) Heroku Postgresを参照する

Salesforce の Heroku Postgresを参照するいくつかの方法について紹介します。

次へ
Wave Analytics Spring’16の新機能紹介(1/2)
Wave Analytics Spring’16の新機能紹介(1/2)

こんにちはアピリオ北嵐です。ついにSpring'16がリリースされましたね。今回はWave Analyticsにも新しいデザイナなど多くの機能が追加されたリリースとなっています。本ブログでは、Waveの開発者が押さ...

アピリオまでお気軽にお問合せください

ご質問はこちら