GoodData プラットフォームのフィルター

データのサブセットのみを分析する場合もあります。 これを実現するには、フィルターを使用します。 GoodData プラットフォームでは、分析の 3 つの段階のいずれでもフィルターを適用できます:

  • メトリックを変更する場合
  • インサイトを構築する場合
  • ダッシュボードを表示する場合

メトリックレベルフィルターは、特定の計算に入力するデータを制限します。インサイトレベルフィルターは、そのインサイトのすべてのメトリックと属性で使用できるデータを制限します。ダッシュボードレベルフィルターは、そのダッシュボードのすべてのインサイトで使用できるデータを制限します。

メトリックレベルフィルターとインサイトレベルフィルターを作成および編集できるのは特定のユーザーロールだけですが、すべてのロールでダッシュボードレベルフィルターの選択を変更できます。 これにより、特定のユースケースのデータを幅広いオプションでフィルタリングすることができます。

データ分析でフィルターを適用する方法については、フィルター式

メトリックをフィルタリングする

フィルターを使用してメトリックを作成または修正する場合は 、データ分析に使用する方法を定義します。 この段階でフィルターを適用することで、特定の範囲のデータを計算に使用しないようにすることができます。

フィルターおよびメトリックの作成の詳細については、MAQL - 分析用クエリ言語を参照してください。

次の例では、フィルターをオーダー数メトリックに追加して、納品された注文のみを表示します:

  1. 管理をクリックして、メトリックをクリックします。 

     新しいメトリックを作成することも、既存のメトリックを編集することもできます。

  2. メトリックの編集を開始するには、メトリック名をクリックし、次の画面が表示されたら編集をクリックします。 

     MAQL メトリックエディターが開きます。 ここでメトリックの定義を変更します。

  3. 定義を編集し、フィルター条件を追加します。

    SELECT COUNT(Order ID) WHERE Order Status=Delivered
    

    このような条件は、常に WHERE キーワードで始まります(WHERE句を使用してフィルタリングするを参照してください)。 

  4. 構文を保存します。  これで、インサイトで使用できるようになりました。

インサイトでフィルターを使用する

フィルターを適用できるもう 1 つのレベルは Analytical Designer です。Analytical Designer では、分析情報にフィルターを適用できます。 インサイトにフィルターを適用することで、特定の範囲のデータを分析に使用しないようにすることができます。

次の例では、製品カテゴリーごとの注文数にフィルターを追加し、納品された注文のみをカウントします。

ここでは 2 つのオプションがあります:

  • 既存のメトリックを前のセクションで作成したものと同様に使用
  • インサイトレベルフィルターを使用する

インサイトレベルフィルターを使用するには:

  1. 属性のリストから属性をフィルターセクションにドラッグアンドドロップする。 
  2. フィルターに含める値を選択します。 

     グラフが自動的に再計算されます。

インサイトを保存すると、フィルターおよび選択した値が一緒に保存されます。

詳細については、Analytical Designer のフィルターを参照してください。

ダッシュボードでフィルターを使用する

オプションとして、ダッシュボードフィルターを使用することもできます。 ダッシュボードにフィルターを適用すると、特定の範囲のデータをダッシュボードで非表示にすることができます。

ダッシュボードでは、次の 2 種類のフィルターを使用できます。

ダッシュボードフィルターを使用する

納品された注文にのみフィルターを使用するには、メトリックレベルまたはインサイトレベルフィルターの代わりに属性フィルターを使用します。

手順:

  1. ダッシュボードの編集モードに切り替えます。
  2. 属性フィルターコンポーネントを、デフォルトの日付範囲フィルターコンポーネントの横にドラッグアンドドロップします。 
      
  3. 注文ステータス属性を、属性フィルターコンポーネントのドロップダウンメニューから選択します。 
  4. 属性を選択した後、ユーザーがダッシュボードを表示するときのデフォルト値を選択できます。 
  5. [適用] をクリックします。

 

ダッシュボードフィルターの利点

すべてのユーザー(ビューアを含む)は、ダッシュボードのフィルター値を変更できます。 その結果、例えばどのユーザーでも、配達済み から 返品またはすべての値を選択するように変更できます。

全ダッシュボードレベルのフィルターのもう 1 つの機能は、フィルターを適用するインサイトを選択できることです。

デフォルトでは、ダッシュボードに配置したすべてのインサイトにすべてのフィルターが適用されます。 特定のフィルターが特定のインサイトに適用されないようにするには、インサイトをクリックして、無視するフィルターのチェックを外します。

上記の例では、日付のチェックを外します。

適切なフィルタータイプの選択

常に例外がありますが、ベストプラクティスは次のとおりです。

  • 複数のインサイトで同じフィルタリングされたメトリックを使用する予定がある場合、メトリックレベルフィルターを使用します。 この方法では、 1 つのインサイトごとにフィルターを何度も定義するのではなく、フィルターを 1 回だけ定義します。  保守が容易であることに加えて、すべてのユーザーの定義も標準化されます。
  • 他の場所で使用する可能性が低い非常に具体的なシナリオがある場合、またはプロトタイプを作成するだけの場合は、インサイトレベルフィルターを使用します。
  • ダッシュボードにインサイトを配置し、ダッシュボードの使用者が動的にフィルター値を変更できるようにする場合は、ダッシュボードフィルターを使用します。

これらすべてのフィルターはどのように相互作用しますか?

定義されているレベルに関係なく、インサイトに適用されるすべてのフィルターは AND 演算子によって接続されます。 つまり、フィルターの組み合わせが適用され、すべての異なるフィルター条件を満たすデータの行のみが計算に利用されます。

たとえば、メトリックが注文ステータス = 納品済みでフィルターされ、ダッシュボードフィルターが注文ステータス = キャンセル済みの場合、インサイトはこのケースでは単一の注文ステータス値に関連する各注文としてはデータを返しません。

よくある落とし穴

フィルターを追加しても、数値は変更されない場合があります。

これは通常、LDM(論理データモデル)のメトリック / インサイトで使用しているデータポイントに接続されていないものをフィルター処理しようとしていることを意味します。

GoodData プラットフォーム上の LDM Modeler およびデータモデリングの詳細については、GoodData のデータモデリングを参照してください。