Denodo

备注

以下连接器文章由 Denodo 提供。Denodo 是此连接器的所有者以及 Microsoft Power Query 连接器认证计划的成员。 如果对本文内容存有疑问或建议对本文进行更改,请访问 Denodo 网站并利用此处的支持渠道。

总结

项目 说明
发布状态 正式版
产品 Power BI(语义模型)
Power BI(数据流)
Fabric(数据流 Gen2)
支持的身份验证类型 基本
Windows

备注

由于部署计划和特定于主机的功能,某些功能可能只存在于一个产品中。

先决条件

若要使用此连接器,必须已安装 Denodo 平台,配置并启动其服务。 如果使用 ODBC DSN 进行连接,则必须在 ODBC 数据源管理器中正确配置连接。

支持的功能

  • 导入
  • DirectQuery(Power BI 语义模型)

从 Power Query Desktop 连接到 ODBC 数据源

请执行以下步骤来建立连接:

  1. 若要连接数据,请在“主”功能区中选择“获取数据”,然后在“数据库”部分选择“Denodo”

    Power Query Desktop 中的 Denodo 连接器。

  2. 可通过两种方法连接到所选数据源:

    • 通过 DSN(ODBC 数据源名称)
    • 使用连接字符串

    在“Denodo 连接器”对话框的“DSN 或连接字符串”部分中,根据首选的连接类型提供“数据源名称 (DSN)”或“连接字符串”

    Denodo 连接器对话框。

    创建与 Denodo 兼容的连接字符串时,考虑必须省略“驱动程序”字段,因为连接器本身在连接时会以透明方式设置此字段。

    连接字符串必须包含三个必需参数:SERVERPORTDATABASE

    SERVER=<Server name>;PORT=<Port number>;DATABASE=<Database name>
    

    此外,还可以包含可选参数:SSLmode

    SERVER=<Server name>;PORT=<Port number>;DATABASE=<Database name>;SSLmode=<SSL mode>
    

    必须省略身份验证参数,因为身份验证在后续步骤配置。

    备注

    写入连接字符串时,必须考虑以下方面:

    • 连接字符串必须保持正确的参数顺序:SERVER、PORT、DATABASE 和 SSLMode。
    • 这些参数的名称必须始终以相同的方式写入。 例如,如果选择以大写形式写入,则必须始终以大写形式写入;如果决定以首字母大写形式写入(以大写形式写入单词的第一个字母,其余字母小写),则必须始终以这种方式写入。

    否则,Power BI 可能无法识别报表中属于同一 Denodo 数据源的不同 Denodo 数据集,从而将分别为每个数据集索要单独的身份验证凭据。

  3. 第二部分“启用调试模式”是一个可选字段,可用于向日志文件添加跟踪信息。 使用“选项”菜单中的“诊断”选项卡在应用程序中启用跟踪时,Power BI Desktop 会创建这些文件。 请注意,“启用调试模式”的默认值为 false,在这种情况下,Denodo Power BI 自定义连接器的日志文件中不会有任何跟踪数据。

  4. 第三部分“本机查询”是一个可选字段,可在其中输入查询。 如果使用此查询字段,生成的数据集将是查询的结果,而不是一个表或一组表。

    可以编写查询,仅查询数据源与之关联的一个数据库。

    SELECT title, name FROM film JOIN language ON film.language_id = language.language_id WHERE film.language_id = 1
    

    如果要编写查询多个数据库的查询,则必须在查询中指定拥有每个表的数据库。

    SELECT i_item_sk, country FROM sakila.country, ewd.item
    
  5. “Denodo 连接器”的最后一部分是“数据连接模式”,可在导入模式或 DirectQuery 模式之间进行选择。

  6. 完成后,选择“确定”。

  7. 在显示用于显示 Denodo Virtual DataPort 中可用数据预览的导航器窗口之前,系统会要求你进行身份验证。 Denodo Power BI 自定义连接器支持两种身份验证类型:Windows 和 Basic。

    • Windows:选择使用 Windows 身份验证时,Power BI Desktop 使用 Kerberos 身份验证连接到 Virtual DataPort。

      Power BI Desktop 中的 Denodo Windows 身份验证。

      在这种情况下:

      • 必须在 Virtual DataPort 服务器中启用 Kerberos 身份验证。

      • 数据源连接到的 Denodo Virtual DataPort 数据库必须使用设置为 KerberosODBC/ADO.net 身份验证类型选项进行配置。

      • Power BI Desktop 必须在 Windows 域中运行,因为 ODBC 驱动程序将从操作系统的票证缓存请求 Kerberos 票证。

      • 确保 DSN 配置的“高级选项”页包含将 Kerberos 用作身份验证方法所需的所有配置。

        Denodo DSN 配置中的“高级选项”页。

    • 基本:此身份验证类型允许你使用 Virtual DataPort 服务器凭据将 Power BI Desktop 连接到 Virtual DataPort 数据。

      Power BI Desktop 中的 Denodo 基本身份验证。

  8. 完成后,选择“连接”

  9. “导航器”中,从所需数据库中选择所需数据,然后选择“加载”,如果要修改传入数据,请选择“转换数据”

    Denodo 导航器。

使用本地数据网关从 Power BI 服务连接到 ODBC 数据源

请执行以下步骤来建立连接:

  1. 配置本地数据网关(企业网关)充当桥梁,在本地数据(在 Power BI Desktop 应用程序中,但不在云中的数据)与 Power BI 服务之间提供快速安全的数据传输。

  2. 登录并注册网关。 在本地数据网关应用中,选择“状态”选项卡以验证网关是否处于联机状态并可供使用。

    “状态”选项卡打开的本地数据网关。

  3. 在 Power BI 服务中使用网关设置页,为 Denodo Power BI 自定义连接器创建数据源。

    添加 Denodo 数据源。

    若要创建数据源,必须指定连接到所选数据源的方法:

    • 通过 DSN
    • 使用连接字符串

    还必须指定身份验证模式。 可用的身份验证方法包括:

    • Windows:选择使用 Windows 身份验证时,Power BI 服务使用 Kerberos 身份验证连接到 Virtual DataPort。 您需要:

      • 在“数据源设置”中,输入用户名和密码以创建 Kerberos 票证。

      • 必须在 Virtual DataPort 服务器中启用 Kerberos 身份验证。

      • 数据源连接到的 Denodo Virtual DataPort 数据库必须使用设置为 KerberosODBC/ADO.net 身份验证类型选项进行配置。

      • 确保 DSN 配置的“高级选项”页包含将 Kerberos 用作身份验证方法所需的所有配置。

        Denodo DSN 配置中的“高级选项”页。

    • 基本:此身份验证类型允许在 Power BI 服务中创建数据源,以使用 Virtual DataPort 服务器凭据连接到 Virtual DataPort 数据。

  4. 如果使用 Windows 身份验证,请在数据源的“高级设置”下启用单一登录 (SSO) 身份验证架构,以便使用 Power BI 中访问报表的用户的相同凭据来访问 Denodo 中所需的数据。

    使用 Kerberos 的 Denodo SSO。

    有两个选项可用于启用 SSO:通过 Kerberos 使用 SSO 进行 DirectQuery 查询通过 Kerberos 使用 SSO 进行 DirectQuery 和 Import 查询。 如果使用基于 DirectQuery 查询的报表,这两个选项都使用登录到 Power BI 服务的用户的 SSO 凭据。 使用基于Import 查询的报表时会有所不同。 在这种情况下,前一个选项使用在数据源页(“用户名”“密码”字段)中输入的凭据,后者则使用数据集所有者的凭据。

    请务必注意,必须考虑特定的先决条件和注意事项,才能使用基于 Kerberos 的 SSO。 其中一些基本要求包括:

    • 必须为运行 Microsoft Power BI Gateway 的 Windows 用户启用 Kerberos 约束委派,并且应根据 Microsoft 为此提供的说明执行本地 Active Directory 和 Microsoft Entra ID 环境的配置。

      默认情况下,Microsoft Power BI 网关会在执行 SSO 身份验证操作时发送用户主体名称 (UPN)。 因此,需要查看在 Denodo Kerberos 身份验证中用作登录标识符的属性,如果与 userPrincipalName 不同,请根据此值调整网关设置。

    • 名为 Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config 存储在 \Program Files\On-premises data gateway 的 Microsoft Power BI Gateway 配置文件有两个属性,分别称为 ADUserNameLookupPropertyADUserNameReplacementProperty,允许网关在运行时执行本地 Microsoft Entra ID 查找。 ADUserNameLookupProperty 必须指定必须将 Microsoft Entra ID 提供的用户主体名称映射到的本地 AD 的属性。 因此,在这种情况下,ADUserNameLookupProperty 应为 userPrincipalName。 然后,找到用户后,ADUserNameReplacementProperty 值指示应用于对模拟用户进行身份验证的属性(将在 Denodo 中用作登录标识符的属性)。

      还应考虑此配置文件中网关级别的更改,因此会影响通过 Microsoft Power BI 网关完成 SSO 身份验证的任何源。

  5. 为 Denodo 连接器创建数据源后,可以刷新 Power BI 报表。 若要发布有关 powerbi.com 的报表,需要:

    • 在 Power BI Desktop 中打开报表。
    • 选择“文件”>“发布”>“发布到 Power BI”。
    • 将报表保存到计算机上。
    • 选择要发布的工作区。

高级配置

使用 ConnectionTimeout 参数。

如果要控制在放弃尝试与服务器建立连接之前需要等待的时间,可以使用 ConnectionTimeout 参数。

此参数只能通过“高级编辑器”使用。 为此,必须在记录选项中添加 ConnectionTimeout 参数,并关联一个 Duration 类型的值。

有关 Duration 类型的详情,请参阅此处

使用 ConnectionTimeout 参数。

故障排除

当 Denodo 视图中的字段与其他视图的关系超过 42 个时加载数据。

如果作为数据源导入 Power BI 的 Denodo 视图与其他视图的关系超过 42 个,则访问数据转换窗口时,Power BI 可能会显示以下错误:

Preview.Error: The type of the current preview value is too complex to display.

此错误是由于 Microsoft Power Query 平台中的限制造成的。 若要解决此问题,请在数据转换窗口中选择失败的数据源(查询),并使用>“视图”“高级编辑器”访问高级编辑器。 然后,用 M 语言编辑数据源表达式,将以下属性添加到 options 函数调用的 Denodo.Contents 参数:

CreateNavigationProperties=false

因此,调用将类似于:

  Source = Denodo.Contents(<dsn>, null, [CreateNavigationProperties=false])

此属性将指示 Power BI 不要尝试并根据为此数据源中访问的 Denodo 视图注册的关系生成导航属性。 因此,如果需要在 Power BI 数据模型中实际存在其中一些关系, 则需要在以后手动注册这些关系