在 Power BI 中筛选 CDF 数据
在 Power BI 中添加筛选器,以在毫秒级时间内筛选大型数据集,而无需耗时几分钟甚至几小时。
Cognite Data Fusion (CDF) 项目可能包含数百万行的数据,因此将它们全部下载到 Power BI 中效率很低或不可行。
筛选对于在 Power BI 中创建适合工作的数据集至关重要。Cognite Power BI Connector 可通过 Cognite OData Service将筛选器推送到 CDF。CDF执行筛选,仅将匹配的行返回到 Power BI。
在 Power Query Editor 中添加筛选器
-
选择你要向其添加筛选器的列标题上的下拉列表按钮。
-
选择文本筛选器以及你要使用的筛选器类型,例如开头为。
-
在筛选行对话框中,指定条件以筛选该列中的行。
-
选择高级以同时定义多个筛选器,或者单独定义并添加每个筛选器。
提示始终首先指定筛选大多数行的条件。
-
Cognite Power BI Connector将查询发送到CDF进行筛选,Power Query显示从CDF返回的结果。Power Query预览结果集,通常为 1000 行。最终筛选在你选择关闭并应用时发生。
CDF 资源类型支持的筛选
Cognite Power BI Connector 可通过 Cognite OData Service折叠筛选器或将其推送到 CDF。筛选可能发生在:
-
CDF- 最有效的筛选。CDF进行筛选,在CDF与Power BI之间不会传输任何非必要的数据。 -
OData Service-OData服务可执行本地筛选以支持CDF未提供的功能,例如,contains
和endswith
之类的函数。首先,使用CDF筛选尽可能减少数据集。 -
Power Query-Power Query需要检索要执行筛选的所有数据。对于大型表格,这可能包含大量的数据。首先可能减少数据集。
下表概括了 CDF 中的每种资源类型支持哪些筛选、哪些筛选器将被下推到 CDF,以及哪些筛选将由 OData Service在本地完成。
定义
-
下推 - 下推到
OData服务和CDF的筛选器功能。 -
本地 - 在将结果返回到
Power BI之前由OData服务完成的本地筛选。 -
筛选函数 -
Contains
、StartsWith
和EndsWith
。 -
对比 -
<
、<=
、>
、>=
和=
。 -
搜索 - 执行
pushdown,但是使用搜索 API 并要求附加的本地筛选。信息搜索返回有限数量的行,你可能未在
CDF收到所有匹配的数据。
Assets(资产)
属性 | 下推 | 本地 |
---|---|---|
Id | = | = |
ExternalId | =、StartsWith | =、筛选函数 |
Name | =、搜索 | =、筛选函数 |
Description | 搜索 | =、筛选函数 |
ParentId | = | = |
ParentExternalId | = | = |
DataSetId | = | = |
Source | = | = |
MetaData | = | |
RootId | = | = |
CreatedTime | 对比 | 对比 |
LastUpdatedTime | 对比 | 对比 |
Time series(时间序列)
属性 | 下推 | 本地 |
---|---|---|
Id | = | = |
ExternalId | =、StartsWith | =、筛选函数 |
Name | =、搜索 | =、筛选函数 |
Description | 搜索 | =、筛选函数 |
IsString | = | = |
MetaData | = | |
Unit | = | = |
IsStep | = | = |
AssetId | = | = |
SecurityCategories | ||
DataSetId | = | = |
CreatedTime | 对比 | 对比 |
LastUpdatedTime | 对比 | 对比 |
Data point
属性 | 下推 | 本地 |
---|---|---|
Id | = | = |
TimeStamp | 对比 | 对比 |
Events(事件)
属性 | 下推 | 本地 |
---|---|---|
Id | = | = |
ExternalId | =、StartsWith | 筛选函数 |
Description | 搜索 | =、筛选函数 |
Source | = | = |
Type | = | = |
SubType | = | = |
MetaData | = | |
DataSetId | = | = |
StartTime | 对比 | 对比 |
EndTime | 对比 | 对比 |
CreatedTime | 对比 | 对比 |
LastUpdatedTime | 对比 | 对比 |
AssetIds | Contains | Contains |
Files(文件)
属性 | 下推 | 本地 |
---|---|---|
Id | = | = |
ExternalId | =、StartsWith | =、筛选函数 |
Name | =、搜索 | =、筛选函数 |
Source | = | = |
MimeType | = | = |
MetaData | ||
DataSetId | = | = |
SourceCreatedTime | 对比 | 对比 |
SourceModifiedTime | 对比 | 对比 |
CreatedTime | 对比 | 对比 |
LastUpdatedTime | 对比 | 对比 |
UploadedTime | 对比 | 对比 |
Uploaded | = | = |
AssetIds | Contains | Contains |
Sequences(序列)
属性 | 下推 | 本地 |
---|---|---|
Id | = | = |
ExternalId | =、StartsWith | =、StartsWith |
Name | =、搜索 | =、筛选函数 |
Description | =、搜索 | =、筛选函数 |
MetaData | ||
AssetId | = | = |
DataSetId | = | = |
CreatedTime | 对比 | 对比 |
LastUpdatedTime | 对比 | 对比 |
Columns |
CDF RAW 数据库
属性 | 下推 | 本地 |
---|---|---|
Name | = | = |
CDF RAW 表格
属性 | 下推 | 本地 |
---|---|---|
Name | = | = |
CDF RAW 行
属性 | 下推 | 本地 |
---|---|---|
Key | = | =、筛选函数 |
LastUpdatedTime | 对比 | 对比 |
使用自定义查询筛选数据
你可以使用 Cognite Power BI connector 创建自定义查询以筛选属性。例如,按资产 Metadata
属性进行筛选:
-
在
Power BI中,从Power BI主窗口选择获取数据,并选择 Cognite Data Fusion 连接器。 -
在项目名称字段中,键入项目名称、资源和以下格式的筛选器:
<project-name>/<resource-type>/?$filter=<Filter>
-
选择确定,然后选择转换数据以打开查询预览。
示例
筛选遵循 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'&tenantID=48d5043c-cf70-4c49-881c-c638f5796997
以下是对 Metadata/RES_ID
和 Name
进行筛选的 AND
筛选器:
publicdata/Assets/?$filter=MetaData/RES_ID eq '525283' and Name eq '23-TE-96116-04'&tenantID=48d5043c-cf70-4c49-881c-c638f5796997
在上面的示例中,tenantID=48d5043c-cf70-4c49-881c-c638f5796997
是为 publicdata 项目配置的 Microsoft Entra ID 租户。
要对筛选进行调试,一种有用的方法是使用可用来查看哪些筛选器被下推到 OData 服务的工具,例如 Fiddler。