Power BI:从 CDF 数据模型检索数据
连接 Cognite Data Fusion (CDF) 数据模型作为数据源,使用 Power BI 查询、转换和显示 CDF 数据。
管理员需要注册并同意贵组织使用 Microsoft Power Query for Excel,然后你才能使用组织 ID 登录并从 CDF 检索数据。
要访问数据模型中的数据,需要在项目或每个空间级别拥有这些功能:dataModelsAcl:read
、dataModelInstancesAcl:read
。请参阅
请参阅配置数据模型的访问权限。
要访问 CDF 核心元素的元数据,例如时间序列或文件,需要在项目或数据集级别拥有元素的访问权限。请参阅分配功能。
将 Power BI connector 连接到数据模型
-
开始之前:要连接数据模型与
Cognite Power BI connector,需要知道数据模型以及其将要用到的CDF项目的名称和版本。查找信息的方法:-
导航到 fusion.cognite.com,登录
CDF项目,然后导航到数据管理 > 探索 > 数据模型。 -
选择数据模型,然后选择连接 > Power BI。
-
在对话框中,复制并记下项目名称和 CDF 环境。
-
-
打开
Power BI Desktop,使用组织帐户登录。 -
在功能区中的主页选项卡上,选择获取数据,然后选择更多。然后,在获取数据对话框中,选择其他和 Cognite Data Fusion 连接器。
-
在以下字段中输入你记下的关于数据模型和
CDF项目的信息:项目名称和 CDF:环境。**可选:**要使用特定 Microsoft Entra ID(以前称为 Azure Active Directory)租户 ID 登录,请使用下面的格式在项目名称 URI 中附加
tenantid={tenantId}
参数:{projectName}/models/spaces/{space}/datamodels/{datamodel}/versions/{version}?tenantid={tenantId}
- 其中
{tenantId}
是你要使用的 Microsoft Entra ID 租户的 GUID,例如d1ce9074-3079-488a-9a2d-f0522babd7a9
。
要查找 Microsoft Entra ID 租户 ID,请联系管理员,或者按照本文章中的步骤操作。
- 其中
-
在身份验证对话框中,选择组织帐户,然后使用组织 ID 登录。
-
Power BIconnector 列出了适用于所选数据模型的所有类型。数据模型中的每个
Type
在Power BI显示为表格,类型的每个Instance
作为一行。 -
选择表格,然后选择转换数据。
小心表格中可能包含大量的条目。除非你要加载全部条目,否则切勿选择加载。
-
现在,你可以使用
Power Query Editor转换数据。为了限制数据集大小,你可以选择保留行 > 保留顶部行,并指定要保留的行数。
要将获得的值加载到
Power BI中,选择关闭并应用。
通过 Power BI 可展开相关项以平展表格。这可能会对性能产生巨大的负面影响,我们建议不要使用此功能。
space
或 externalId
中存在特殊字符 ! * ' ( ) ; : @ & = + $ ,
可能会阻止 Power BI 从 CDF 成功读取数据。
可以放心使用字母数字以及特殊字符 - _ . ~
。
筛选数据模型中的项
筛选对于在 Power BI 中创建适合工作的数据集至关重要。我们建议在 Power Query 中而非在 Power BI 报告/仪表板中应用筛选。这样可提高性能,并简化对可重复使用的数据集的处理。
Power BI Connector 可通过 Cognite OData 服务将筛选器推送到 CDF。CDF执行筛选,仅将匹配的行返回到 Power BI。另请参阅筛选 Power BI 中的 CDF 数据。
数据建模下推筛选器
Type | 下推 |
---|---|
模型属性 | 是,EndsWith 和 Contains 除外 |
时间序列元数据 | 否 |
数据和字符串点 | 仅 timestamp |
文件元数据 | 否 |
Power Query 在内存中执行 EndsWith
和 Contains
字符串筛选操作。
JSONObjects
在 Power BI 中显示为文本值。
处理时间序列和数据点
数据建模支持从数据模型获取 Timeseries
。为了获取特定时间序列的数据点,可以导航到 string-
或 dataPoints
。为了从时间范围获取数据点,通过时间戳的值筛选数据点。CDF 不支持按其值筛选时间序列。
时间序列可以包含高粒度的数据。为了提高性能并
降低数据负载,你可以使用 CDF dataPoint
Aggregate
功能,与获取单个时间序列的聚合相似。
Power BI 可自动将 Unix Epoch 时间戳值转换为 UTC DateTime 值。
要创建显示时间序列最后两天的数据的可视化结果,我们建议对 Time Series
使用 aggregate
功能。通过 Power Query,可以指定每次刷新数据集时更新的动态值。例如,DateTimeZone.UtcNow()
Power Query 功能始终返回
UTC 时间格式的当前日期和时间。通过与 Date.AddDays
之类的 Date.AddX
功能结合,可以为查询创建动态范围,以下推到 CDF 作为聚合函数调用,从而更快地刷新数据。
使用日期作为函数参数的筛选器时,应使用 PowerQuery DateTimeZone
类型。
了解更多:
更改已登录用户
当你登录后,Power BI 会存储你的数据源凭据。如果你想使用不同的用户访问数据模型,可以删除已存储的数据源登录凭据:
- 在
Power BI Desktop中,导航到文件 > 选项和设置 > 数据源设置。 - 编辑或删除数据源的登录凭据。