跳至主要内容

Power BI:从 CDF 数据模型检索数据

连接 Cognite Data Fusion (CDF) 数据模型作为数据源,使用 Power BI 查询、转换和显示 CDF 数据。

信息

管理员需要注册并同意贵组织使用 Microsoft Power Query for Excel,然后你才能使用组织 ID 登录并从 CDF 检索数据。

要访问数据模型中的数据,需要在项目或每个空间级别拥有这些功能:dataModelsAcl:readdataModelInstancesAcl:read。请参阅

请参阅配置数据模型的访问权限

要访问 CDF 核心元素的元数据,例如时间序列或文件,需要在项目或数据集级别拥有元素的访问权限。请参阅分配功能

Power BI connector 连接到数据模型

  1. 开始之前:要连接数据模型与 Cognite Power BI connector,需要知道数据模型以及其将要用到的 CDF 项目的名称和版本。查找信息的方法:

    1. 导航到 fusion.cognite.com,登录 CDF 项目,然后导航到探索 > 对你的数据进行建模

    2. 选择数据模型,然后选择 Power BI 按钮。

    3. 在对话框中,复制并记下项目名称CDF 环境

      获取 Power BI connector 的设置
  2. 打开 Power BI Desktop,使用组织帐户登录

  3. 在功能区中的主页选项卡上,选择获取数据,然后选择更多。然后,在获取数据对话框中,选择其他Cognite Data Fusion 连接器。

    获取数据
  4. 在以下字段中输入你记下的关于数据模型和 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,请联系管理员,或者按照本文章中的步骤操作。

  5. 身份验证对话框中,选择组织帐户,然后使用组织 ID 登录

    身份验证
  6. Power BI connector 列出了适用于所选数据模型的所有类型。

    数据模型中的每个 TypePower BI 显示为表格,类型的每个 Instance 作为一行。

  7. 选择表格,然后选择转换数据

    小心

    表格中可能包含大量的条目。除非你要加载全部条目,否则切勿选择加载

    Navigator
  8. 现在,你可以使用 Power Query Editor 转换数据。

    为了限制数据集大小,你可以选择保留行 > 保留顶部行,并指定要保留的行数。

    Navigator

    要将获得的值加载到 Power BI 中,选择关闭并应用

信息

通过 Power BI 可展开相关项以平展表格。这可能会对性能产生巨大的负面影响,我们建议不要使用此功能。

筛选数据模型中的项

筛选对于在 Power BI 中创建适合工作的数据集至关重要。我们建议在 Power Query 中而非在 Power BI 报告/仪表板中应用筛选。这样可提高性能,并简化对可重复使用的数据集的处理。

Power BI Connector 可通过 Cognite OData 服务将筛选器推送到 CDFCDF执行筛选,仅将匹配的行返回到 Power BI。另请参阅筛选 Power BI 中的 CDF 数据

数据建模下推筛选器

Type下推
模型属性是,EndsWithContains 除外
时间序列元数据
数据和字符串点timestamp
文件元数据

Power Query 在内存中执行 EndsWithContains 字符串筛选操作。

JSONObjectsPower 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 会存储你的数据源凭据。如果你想使用不同的用户访问数据模型,可以删除已存储的数据源登录凭据:

  1. Power BI Desktop 中,导航到文件 > 选项和设置 > 数据源设置
  2. 编辑或删除数据源的登录凭据。