Denodo

注释

以下的连接器文章由 Denodo 公司提供,Denodo 既是此连接器的所有者,也是 Microsoft Power Query 连接器认证计划的成员。 如果您对本文的内容有疑问,或者希望对本文进行更改,请访问 Denodo 网站并使用该网站提供的支持渠道。

概要

条目 DESCRIPTION
发布状态 一般可用性
产品 Power BI (语义模型)
Power BI (数据流)
Fabric(Dataflow 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>
    

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

    注释

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

    • 连接字符串必须保留其参数的正确顺序:服务器、端口、数据库和 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 身份验证连接到虚拟 DataPort。

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

      在这种情况下:

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

      • 数据源所连接的 Denodo 虚拟 DataPort 数据库必须配置成 ODBC/ADO.net 身份验证类型为 Kerberos

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

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

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

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

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

      注释

      较旧版本的 Denodo 连接器需要转义某些密码字符。 从版本 1.0.8 起,不再需要此版本。

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

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

    Denodo 导航器。

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

若要建立连接,请执行以下步骤:

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

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

    本地数据网关,状态选项卡已打开。

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

    添加 Denodo 数据源。

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

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

    注释

    在决定是否通过连接字符串或 DSN 进行连接时,建议使用后者。 这是因为 DSN 配置提供了更多配置选项,在使用连接字符串时可能无法直接使用。

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

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

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

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

      • 数据源所连接的 Denodo 虚拟 DataPort 数据库必须配置成 ODBC/ADO.net 身份验证类型为 Kerberos

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

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

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

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

    使用 Kerberos 的 Denodo SSO。

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

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

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

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

    • 配置文件Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config是一个名为“Microsoft Power BI Gateway”的文件,存储在\Program Files\On-premises data gateway,其中包含两个属性,ADUserNameLookupPropertyADUserNameReplacementProperty,这些属性允许网关在运行时执行本地 Microsoft Entra ID 查找。 ADUserNameLookupProperty 必须指定它对应本地 AD 的哪个属性,以便映射来自 Microsoft Entra ID 的用户主体名称。 因此,在此方案中, 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 参数。

使用 QueryTimeout 参数。

如果要控制在放弃尝试执行查询之前等待多长时间,可以使用参数 QueryTimeout

此参数只能从高级编辑器中使用。 为此,必须在记录选项中添加QueryTimeout参数,并为其关联一个number类型的值。 此数值以毫秒为单位表示,例如 10000 等于 10 秒。

使用 QueryTimeout 参数。

使用 UserAgent 参数。

如果要指定客户端应用程序的名称,可以使用参数 UserAgent

此参数只能从高级编辑器中使用。 为此,必须在记录选项中加入 UserAgent 参数,并将其关联到 text 类型的值。

使用 UserAgent 参数。

使用压缩参数。

建议在客户端应用程序和 Denodo 服务器通过 WAN 连接时激活此设置。 在这些情况下,当客户端应用程序读取中等或大量数据量时,可能会有显著的性能改进。 为此,可以使用参数 Compression

此参数只能从高级编辑器中使用。 为此,必须在记录选项中添加Compression参数,关联一个类型为number(0 或 1)的值。

使用压缩参数。

故障排除

当 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 数据模型中实际存在其中一些关系, 则需要在以后手动注册它们