メイン コンテンツにスキップする

Power BI で CDF データをフィルタリングする

Power BI にフィルターを追加することで、大規模なデータセットを数分や数時間ではなくミリ秒でフィルタリングできます。

Cognite Data FusionCDF)プロジェクトには数百万行のデータが含まれることがあり、それらをすべて Power BI にダウンロードするのは効率的でなく、そもそも不可能です。

Power BI で実用的なデータセットを作成するには、フィルタリングが不可欠です。Cognite Power BI Connector は、Cognite OData Service を介して CDF にフィルターをプッシュします。CDF はフィルタリングを実行し、一致する行だけを Power BI に返します。

Power Query Editor でフィルターを追加する

  1. Power BICDF に接続します。

  2. フィルターを追加する列ヘッダーのドロップダウンボタンを選択します。

  3. テキスト フィルターと目的のフィルター タイプを選択します(たとえば、次の値で始まる)。

  4. 行のフィルター ダイアログ ボックスで、列内の行をフィルタリングする条件を指定します。

    Power BI フィルターを追加する
  5. 多くのフィルターを同時に定義する場合は詳細を選択します。または、個別に定義して追加します。

    ヒント

    必ず、最も多くの行をフィルタリングする条件を最初に指定します。

  6. Cognite Power BI Connector は、フィルタリングのためにクエリを CDF に送信し、Power QueryCDF から返された結果を表示します。

    Power Query は通常、1000 行の結果セットをプレビューします。最終的なフィルタリングは、閉じて適用するを選択したときに実行されます。

CDF リソースタイプのフィルタリングに対応

Cognite Power BI Connector は、Cognite OData Service を介して CDF にフィルターをプッシュしたり、または折りたたんだりできます。フィルタリングを実行できる場所は次のとおりです。

  • CDF - 最も効果的なフィルタリングです。フィルタリングは CDF が行い、CDFPower BI の間で不要なデータは転送されません。

  • OData Service - OData Service は、containsendswith のような CDF が提供していない関数をサポートするために、ローカル フィルタリングを行うことができます。まず、CDF フィルタリングを使用してデータ セットをできるだけ減らします。

  • Power Query - Power Query は、フィルタリングを行うためにすべてのデータを取得する必要があります。大きなテーブルの場合は、かなりの量のデータが含まれる可能性があります。まず、データセットをできるだけ減らします。

以下のテーブルは、CDF の各リソース タイプでどのようなフィルタリングがサポートされているか、どのフィルタリングが CDF にプッシュダウンされるか、どのフィルタリングが OData Service によってローカルに行われるかを示しています。

定義

  • プッシュダウン - OData Service と CDF にプッシュダウンされるフィルター機能。

  • ローカル - Power BI に結果を返す前に、OData Service によってローカル フィルタリングが実行されます。

  • FilterFunctions - ContainsStartsWith、および EndsWith

  • Comparison - <<=>>=、および =

  • 検索 - pushdown を行いますが、検索 API を使用し、追加のローカル フィルタリングが必要です。

    情報

    検索で返される行の数には限りがあり、一致するすべてのデータを CDF で受け取れるとは限りません。

Assets(アセット)

プロパティプッシュダウンローカル
Id==
ExternalId=, StartsWith=, FilterFunctions
Name=, Search=, FilterFunctions
DescriptionSearch=, FilterFunctions
ParentId==
ParentExternalId==
DataSetId==
Source==
MetaData=
RootId==
CreatedTimeComparisonComparison
LastUpdatedTimeComparisonComparison

Time series(時系列)

プロパティプッシュダウンローカル
Id==
ExternalId=, StartsWith=, FilterFunctions
Name=, Search=, FilterFunctions
DescriptionSearch=, FilterFunctions
IsString==
MetaData=
Unit==
IsStep==
AssetId==
SecurityCategories
DataSetId==
CreatedTimeComparisonComparison
LastUpdatedTimeComparisonComparison

Data point

プロパティプッシュダウンローカル
Id==
TimeStampComparisonComparison

Events(イベント)

プロパティプッシュダウンローカル
Id==
ExternalId=, StartsWithFilterFunctions
DescriptionSearch=, FilterFunctions
Source==
Type==
SubType==
MetaData=
DataSetId==
StartTimeComparisonComparison
EndTimeComparisonComparison
CreatedTimeComparisonComparison
LastUpdatedTimeComparisonComparison
AssetIdsContainsContains

Files(ファイル)

プロパティプッシュダウンローカル
Id==
ExternalId=, StartsWith=, FilterFunctions
Name=, Search=, FilterFunctions
Source==
MimeType==
MetaData
DataSetId==
SourceCreatedTimeComparisonComparison
SourceModifiedTimeComparisonComparison
CreatedTimeComparisonComparison
LastUpdatedTimeComparisonComparison
UploadedTimeComparisonComparison
Uploaded==
AssetIdsContainsContains

Sequences(シーケンス)

プロパティプッシュダウンローカル
Id==
ExternalId=, StartsWith=, StartsWith
Name=, Search=, FilterFunctions
Description=, Search=, FilterFunctions
MetaData
AssetId==
DataSetId==
CreatedTimeComparisonComparison
LastUpdatedTimeComparisonComparison
Columns

CDF RAW データベース

プロパティプッシュダウンローカル
Name==

CDF RAW テーブル

プロパティプッシュダウンローカル
Name==

CDF RAW

プロパティプッシュダウンローカル
Key==, FilterFunction
LastUpdatedTimeComparisonComparison

カスタム クエリを使用してデータをフィルタリングする

Cognite Power BI connector を使用して、プロパティをフィルタリングするカスタム クエリを作成できます。たとえば、アセットの Metadata プロパティをフィルタリングする場合:

  1. Power BI で、Power BI のメイン ウィンドウの Get Data を選択し、Cognite Data Fusion コネクタを選択します。

  2. プロジェクト名フィールドに、プロジェクト名、リソース、フィルターをこの形式で入力します。

    <project-name>/<resource-type>/?$filter=<Filter>

  3. OK を選択し、データを変換するを選択して、クエリのプレビューを開きます。

フィルタリングは OData の仕様に従っており、フィルターおよび / または語句を連結することで、複数属性のフィルターを作成することができます。たとえば、等号フィルターは AttributeName eq 'AttributeValue' という書式を使います。

Name eq '23-TE-96116-04'

メタデータフィルタリング

メタデータの場合、フィルタリングはメタデータオブジェクトの内部にネストされたプロパティに対して実行されます。メタデータ プロパティにフィルターをかけるには、たとえば "MetaData/NestedAttributeName eq 'NestedAttributeValue'" のような形式でフィルターを作成する必要があります。

MetaData/RES_ID eq '525283'

これは publicdata プロジェクトへのカスタムクエリの例で、Metadata/RES_ID でフィルタリングしています。

publicdata/Assets/?$filter=MetaData/RES_ID eq '525283'&amp;tenantID=48d5043c-cf70-4c49-881c-c638f5796997

これは Metadata/RES_IDName に対する AND フィルターです。

publicdata/Assets/?$filter=MetaData/RES_ID eq '525283' and Name eq '23-TE-96116-04'&amp;tenantID=48d5043c-cf70-4c49-881c-c638f5796997

上記の例では、tenantID=48d5043c-cf70-4c49-881c-c638f5796997 が、publicdata プロジェクトに設定された Microsoft Entra ID テナントです。

デバッグ

フィルタリングをデバッグするには、どのフィルターが OData サービスにプッシュされたかを確認できるツール(Fiddler など)を使うと便利です。