GoodData プラットフォームのフィルター
データのサブセットのみを分析する場合もあります。 これを実現するには、フィルターを使用します。 GoodData ワークスペースでは、次のメカニズムを使用して、データが表示されないようにフィルタリングが可能です:
フィルタータイプ | 説明 |
---|---|
データ許可フィルター | データ権限フィルターは、ワークスペースからクエリされたすべてのデータに適用される属性ベースのフィルターです。 これらのフィルターを使用すると、ワークスペース開発者は特定のユーザーのコンテンツをフィルタリングして、機密データや無関係なデータが指定したユーザーで表示されないようにすることができます。 データ権限フィルターは上書きできません。 影響を受けるユーザーがポータルから実行したクエリには常に適用されます。 ご注意: データ許可フィルターは管理者レベルの環境設定とみなされます。 詳細については、データ権限の基本を参照してください。 |
ダッシュボード フィルター | ダッシュボードフィルターを使用すると、ダッシュボード内のすべてのレポートに表示するデータをフィルタリングできます。 これは、ダッシュボードに埋め込まれたセレクターから選択された属性、日付、または定義済みグループの値に基づいて行われます。 たとえば、ユーザはダッシュボードフィルターで日付または日付範囲を選択でき、すべてのレポートに表示されるデータが更新されて、選択した日付に適用される値だけが表示されます。 |
レポート/インサイトフィルター | ダッシュボードフィルターと同様に、レポートフィルターはレポートに表示される値を変更します。 ただし、レポートフィルターはレポートビルダーによって指定され、ワークスペース内の 閲覧者または閲覧者(埋め込みのみ)のユーザーロールを持つユーザーは変更できません。 |
メトリックフィルター | メトリック定義内では、WHERE 句を使用して計算データをフィルタリングできます。これには、選択したデータを計算に使用できる条件が含まれています。 |
データ分析でフィルターを適用する方法については、フィルター式を
フィルター評価
ダッシュボードでは、上記の 1 つまたは複数のフィルターを適用できます。 これらのフィルターの評価方法は、次のルールに基づいています。
- データ許可フィルターは常に適用されます。 オーバーライドまたは無視することはできません。
- ダッシュボードフィルターは、指定した属性のレポートフィルターを変更します。
- 2 つの異なる属性にダッシュボードフィルターとレポートフィルターがある場合、レポートに表示するには、データが両方のフィルター条件に一致する必要があります。 レポートの MAQL クエリでは、論理 AND がフィルター間に適用されます。
- たとえば、State 属性が California に設定されるようにダッシュボードフィルターを選択するとします。 ダッシュボードのレポートの 1 つに、Department = Distribution に設定されたレポートフィルターがあります。 レポートでは、SELECT SUM(Sales) などの基本メトリックが両方の親フィルターによってフィルタリングされます。 その結果、States = California および Department = Distribution に適用される場合のみ、この集計のファクトテーブルからデータが抽出されます。
- 同じ属性にダッシュボードフィルターとレポートフィルターがある場合、ダッシュボードフィルターがレポートフィルターをオーバーライドします。
- レポート定義で State 属性を California に設定するフィルターがあるとします。 ただし、ダッシュボードでは、ユーザーはダッシュボードフィルターで独自の State を選択できます。 State = Nevada を選択した場合、この選択はレポートメトリックにのみ適用されます。
- 2 つの異なる属性にダッシュボードフィルターとレポートフィルターがある場合、レポートに表示するには、データが両方のフィルター条件に一致する必要があります。 レポートの MAQL クエリでは、論理 AND がフィルター間に適用されます。
- レポートフィルターは、メトリックフィルターに加えて適用されます。
- レポートフィルターが Group = X で、メトリック定義が SELECT SUM(Sales) WHERE Priority = Urgent であるとします。 計算されたメトリックの有効なフィルターは、 Group = X AND Priority = Urgent になります。
フィルター検証のために 2018 年 6 月に導入された変更の後
メトリックエディターは、フィルター内の関係をチェックする際に、属性をそれに対応する属性値と比較します。異なる属性の属性値とは比較しません。 この変更の前に作成されたメトリックはそのままでも機能しますが、メトリックを編集するには、エラーを修正する必要があります。 日付属性は、従来どおり比較できます。
例
正:
... WHERE Priority = High(Priority)
誤:
... WHERE State = High(Priority)
制限
一部のフィルターは他のフィルターには適用できません。 例:
レポートフィルターが Group = X に設定され、メトリックフィルターが Group = Y に設定されている場合、レポートのメトリックに生成される値は NULL です。 両方のフィルターがデータに適用され、属性の 2 つの値に関連付けられたデータを持つことはできません。
2 つのフィルターが同じ階層内の競合する属性値に設定されている場合、NULL データを生成することがあります。 たとえば、ダッシュボードフィルターがユーザーによって State = California に設定されていて、レポートフィルターが City = New York City に固定されている場合、レポートにはデータは含まれません。
ファクトテーブルとフィルタリングする属性との間に関係が定義されていないため、一部のフィルターはメトリックに適用できません。 たとえば、マーケティングアクティビティは異なるファクトテーブルに格納されている異なるファクトを使用して追跡されるため、売上メトリック (SELECT SUM(Sales)) を属性フィルター Marketing Campaign = TV でフィルタリングすることはできません。
データモデルの設計方法によって、定義されたレポートフィルターがメトリックに対して有効でない場合、レポートフィルターはレポート内のメトリックの計算中に自動的にスキップされます。
Over…To 句
OVER…TO を使用した高度なフィルターについては、高度なデータのアクセス権限のユースケースを参照してください。
フィルターのオーバーライド
メトリックレベルでは、キーワードを挿入して、ダッシュボード、メトリック、レポートフィルターをオーバーライドすることができます。 たとえば、メトリック定義にキーワード WITHOUT PARENT FILTER を含めると、親オブジェクト(メトリック、レポート、ダッシュボード)のフィルターが適用されないようにすることができます。 これらのフィルターのオーバーライドについては、親フィルターを上書きを参照してください。