实时 SSAS 表格连接的 Power BI 网关问题

Posted

技术标签:

【中文标题】实时 SSAS 表格连接的 Power BI 网关问题【英文标题】:Power BI gateway issue with live SSAS Tabular connection 【发布时间】:2017-03-11 10:25:00 【问题描述】:

我们无法使用网关从 Powerbi.com 实时 SSAS 表格连接进行连接。以下是一些背景细节:

SQL Server 11.0.6020 网关是今天最新下载的 (10/28/206) powerbi@customer.com 已从本地 AD 同步到 Azure AD powerbi@customer.com 帐号用于登录powerbi.com 并连接数据模型。它的 SSAS 管理员以及数据模型的管理员权限。网关也使用该帐户设置。

网关看起来不错。我们收到消息“在线:你很高兴。”

数据源看起来不错:“连接成功”

但是当我进入 Powerbi.com:“获取数据”->“SQL Server SSAS”->“连接”并选择数据源时,我得到了错误:

Something went wrong:

Technical details:
Activity ID: b839be39-e0ec-ed9e-9708-89b1afa14191
Request ID: 45f45676-68cc-7006-9018-8def3d9dbdc1
Date: 2016-10-28 06:09:41Z (UTC)
Error text: Ilmeni seuraava järjestelmävirhe:
Cluster URI: https://wabi-europe-north-b-redirect.analysis.windows.net

错误是芬兰语,但它的意思是“我们收到以下系统错误”

在网关日志中,我们可以看到以下错误:

DM.EnterpriseGateway Information: 0 : 2016-10-28T06:09:41.3503946Z DM.EnterpriseGateway    0cdc41c9-8683-45d9-bdbc-ba11b294dfd0        45f45676-68cc-7006-9018-8def3d9dbdc1 MGPP     b839be39-e0ec-ed9e-9708-89b1afa14191         E5E3865A [DM.GatewayCore] Deserialized OpenConnectionRequest, executing
DM.EnterpriseGateway Information: 0 : 2016-10-28T06:09:41.3503946Z DM.EnterpriseGateway    1bb454c2-e6a2-4026-a920-c53a59a78981        45f45676-68cc-7006-9018-8def3d9dbdc1 MGCC     b839be39-e0ec-ed9e-9708-89b1afa14191         F5100A95 [DM.GatewayCore] Db pool opening raw database connection to [MSOLAP.5: <pi>MSOLAP.5rovider=MSOLAP.5;data source=sqlserver;initial catalog=Database;timeout=180;effectiveusername=powerbi@customer.com;sspropinitappname=PowerBI:[Windows] Encrypted Credential information omitted</pi>]
DM.EnterpriseGateway Error: 0 : 2016-10-28T06:09:41.4128883Z DM.EnterpriseGateway 1bb454c2-e6a2-4026-a920-c53a59a78981         45f45676-68cc-7006-9018-8def3d9dbdc1 MGCC     b839be39-e0ec-ed9e-9708-89b1afa14191     BAA79098 [DM.Pipeline.Diagnostics] Exception object created [IsBenign=True]: Microsoft.PowerBI.DataMovement.Pipeline.Diagnostics.AdomdDataAccessErrorResponseException: AdomdException encountered while accessing the target data source.; ErrorShortName: AdomdDataAccessErrorResponseException[ErrorCode=-1056899072,HResult=-2146233088]/Wrapped(AdomdErrorResponseException)[ErrorCode=-1056899072,HResult=-2146233088]
DM.EnterpriseGateway Error: 0 : 2016-10-28T06:09:41.4128883Z DM.EnterpriseGateway 1bb454c2-e6a2-4026-a920-c53a59a78981         45f45676-68cc-7006-9018-8def3d9dbdc1 MGCC     b839be39-e0ec-ed9e-9708-89b1afa14191     2E87F8B5 [DM.Pipeline.Common.TracingTelemetryService] Event: FireActivityCompletedWithFailureEvent (duration=69, err=AdomdDataAccessErrorResponseException, rootcauseErrorEventId=0)
DM.EnterpriseGateway Error: 0 : 2016-10-28T06:09:41.4128883Z DM.EnterpriseGateway fb150b2a-d618-4b7b-9abf-1da42d6c549c         45f45676-68cc-7006-9018-8def3d9dbdc1 MGGC     b839be39-e0ec-ed9e-9708-89b1afa14191     96BF2BFF [DM.Pipeline.Common.TracingTelemetryService] Event: FireActivityCompletedWithFailureEvent (duration=72, err=AdomdDataAccessErrorResponseException, rootcauseErrorEventId=0)
DM.EnterpriseGateway Error: 0 : 2016-10-28T06:09:41.4128883Z DM.EnterpriseGateway e19083b1-8457-474d-9e60-dc2fb065197f         45f45676-68cc-7006-9018-8def3d9dbdc1 MGOC     b839be39-e0ec-ed9e-9708-89b1afa14191     96BF2BFF [DM.Pipeline.Common.TracingTelemetryService] Event: FireActivityCompletedWithFailureEvent (duration=72, err=AdomdDataAccessErrorResponseException, rootcauseErrorEventId=0)
DM.EnterpriseGateway Error: 0 : 2016-10-28T06:09:41.4128883Z DM.EnterpriseGateway 0cdc41c9-8683-45d9-bdbc-ba11b294dfd0         45f45676-68cc-7006-9018-8def3d9dbdc1 MGPP     b839be39-e0ec-ed9e-9708-89b1afa14191     655A6564 [DM.Pipeline.Common.TracingTelemetryService] Event: FireActivityCompletedWithFailureEvent (duration=73, err=AdomdDataAccessErrorResponseException, rootcauseErrorEventId=0)
DM.EnterpriseGateway Error: 0 : 2016-10-28T06:09:41.4128883Z DM.EnterpriseGateway ac8ba607-b76f-494b-8f11-2e69ff096d5d         45f45676-68cc-7006-9018-8def3d9dbdc1 MDSR     b839be39-e0ec-ed9e-9708-89b1afa14191     4CD88F16 [DM.GatewayCore] Error processing request: [0]Microsoft.PowerBI.DataMovement.Pipeline.Diagnostics.AdomdDataAccessErrorResponseException: AdomdException encountered while accessing the target data source.

此错误继续:

GatewayPipelineErrorCode=DM_GWPipeline_Gateway_DataSourceAccessError
ErrorCode=-1056899072 --->
[1]Microsoft.PowerBI.DataMovement.Pipeline.Diagnostics.GatewayPipelineWrapperException: Substituted: AdomdErrorResponseException:<pi>Microsoft.AnalysisServices.AdomdClient.AdomdErrorResponseException: Ilmeni seuraava järjestelmävirhe:
   at Microsoft.AnalysisServices.AdomdClient.AdomdConnection.XmlaClientProvider.Connect(Boolean toIXMLA)
   at Microsoft.AnalysisServices.AdomdClient.AdomdConnection.ConnectToXMLA(Boolean createSession, Boolean isHTTP)
   at Microsoft.AnalysisServices.AdomdClient.AdomdConnection.Open()
   at Microsoft.PowerBI.DataMovement.Pipeline.GatewayDataAccess.AdomdConnectionProvider.OpenConnectionAsync()</pi>

最后:

GatewayPipelineErrorCode=DM_GWPipeline_UnknownError
InnerType=AdomdErrorResponseException
InnerMessage=<pi>Ilmeni seuraava järjestelmävirhe: </pi>
InnerToString=<pi>Microsoft.AnalysisServices.AdomdClient.AdomdErrorResponseException: Ilmeni seuraava järjestelmävirhe:
   at Microsoft.AnalysisServices.AdomdClient.AdomdConnection.XmlaClientProvider.Connect(Boolean toIXMLA)
   at Microsoft.AnalysisServices.AdomdClient.AdomdConnection.ConnectToXMLA(Boolean createSession, Boolean isHTTP)
   at Microsoft.AnalysisServices.AdomdClient.AdomdConnection.Open()
   at Microsoft.PowerBI.DataMovement.Pipeline.GatewayDataAccess.AdomdConnectionProvider.OpenConnectionAsync()</pi>
InnerCallStack=   at Microsoft.AnalysisServices.AdomdClient.AdomdConnection.XmlaClientProvider.Connect(Boolean toIXMLA)
   at Microsoft.AnalysisServices.AdomdClient.AdomdConnection.ConnectToXMLA(Boolean createSession, Boolean isHTTP)
   at Microsoft.AnalysisServices.AdomdClient.AdomdConnection.Open()
   at Microsoft.PowerBI.DataMovement.Pipeline.GatewayDataAccess.AdomdConnectionProvider.OpenConnectionAsync()
  ([1]Microsoft.PowerBI.DataMovement.Pipeline.Diagnostics.GatewayPipelineWrapperException.StackTrace
   at Microsoft.AnalysisServices.AdomdClient.AdomdConnection.XmlaClientProvider.Connect(Boolean toIXMLA)
   at Microsoft.AnalysisServices.AdomdClient.AdomdConnection.ConnectToXMLA(Boolean createSession, Boolean isHTTP)
   at Microsoft.AnalysisServices.AdomdClient.AdomdConnection.Open()
   at Microsoft.PowerBI.DataMovement.Pipeline.GatewayDataAccess.AdomdConnectionProvider.OpenConnectionAsync()
   --- End of inner exception stack trace ---
  ([0]Microsoft.PowerBI.DataMovement.Pipeline.Diagnostics.AdomdDataAccessErrorResponseException.StackTrace
   at Microsoft.PowerBI.DataMovement.Pipeline.GatewayDataAccess.AdomdConnectionProvider.OpenConnectionAsync()
   at Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.ConnectionStrings.AdoNetDbFullConnectionString.<OpenConnectionAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.AdoNetDbConnectionPool.<>c__DisplayClass1.<<CreateObjectInstance>b__0>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.PowerBI.DataMovement.Pipeline.Common.Diagnostics.PipelineTelemetryService.<ExecuteInActivity>d__a`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.AdoNetDbConnectionPool.<CreateObjectInstance>d__a.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.PowerBI.DataMovement.Pipeline.Common.Pool.BasePool`3.<CreatePoolObject>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.PowerBI.DataMovement.Pipeline.Common.Pool.StatelessPool`2.<Get>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.GatewayProcessor.<>c__DisplayClass5e.<<GetDatabaseConnection>b__5d>d__60.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.PowerBI.DataMovement.Pipeline.Common.Diagnostics.PipelineTelemetryService.<ExecuteInActivity>d__a`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.GatewayProcessor.<GetDatabaseConnection>d__66.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.GatewayProcessor.<>c__DisplayClass2.<<EnsureConnection>b__1>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.PowerBI.DataMovement.Pipeline.Common.Diagnostics.PipelineTelemetryService.<ExecuteInActivity>d__a`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.GatewayProcessor.<EnsureConnection>d__8.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.GatewayProcessorDispatcher.<DispatchImpl>d__e.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.GatewayProcessorDispatcher.<Dispatch>d__b.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.Serialization.GatewayDeserializer.<DeserializeImpl>d__e.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.Serialization.GatewayDeserializer.<>c__DisplayClass4.<<Deserialize>b__2>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.PowerBI.DataMovement.Pipeline.Common.Diagnostics.PipelineTelemetryService.<ExecuteInActivity>d__a`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.Serialization.GatewayDeserializer.<Deserialize>d__9.MoveNext()

明文错误消息只有英文“发生以下系统错误”。日志文件中的 BTW 时间看起来像 powerbi.com 时区时间而不是本地服务器时间。

有什么想法我们接下来应该尝试什么吗?我们已经尝试过几次重新安装网关。

Jens:当前 SSAS 使用默认 NT Service\MSSQLServerOLAPService 运行

Greg:当使用 powerbi@customer.com whoami /upn 登录到服务器时,我会得到正确的结果,但是当我使用 runas 命令通过 powerbi@customer.com 启动命令提示符时,它会给我 powerbi@customer.local地址。

powerbi@customer.com 是整个 SSAS 实例的管理员。 (以及该特定数据模型中的管理员)

您是指标准的“连接到分析服务”对话框吗?当我将 Effectiveusername=powerbi@customer.com 添加到附加连接参数时,它总是会出现系统错误。

【问题讨论】:

您的 SSAS 服务是否与所述域的域用户一起运行?只要它在本地用户下运行,我也遇到了一些麻烦。 在您的笔记本电脑上打开命令提示符并运行whoami /upn 并分享它所说的内容。 (请随意混淆。)它是否与您登录 Power BI 时使用的电子邮件完全匹配?是否匹配 owerbi@customer.com? 打开 SSMS 并尝试连接 MDX 窗口。在连接对话框中单击 Additional Properties 并粘贴 effectiveusername=powerbi@customer.com 并报告发生的情况 网关数据源凭据用户 powerbi@customer.com 是否是 SSAS 管理员,意思是整个 SSAS 实例的管理员? 谢谢!我会在问题结束时更新该信息。 【参考方案1】:

这是关于有效用户名 = 不起作用。我们需要为 SSAS 服务帐号授予读取 AD 的权限。

兄弟, 亨利

【讨论】:

以上是关于实时 SSAS 表格连接的 Power BI 网关问题的主要内容,如果未能解决你的问题,请参考以下文章

将文本文件中的多个查询粘贴到 Power BI Desktop

使用SSAS+Power BI如何正确配置ODBC

通过 Power Bi 中的企业网关查询 MDX 查询

Power BI Online管理数据源 - Analysis Services

尝试配置 Power BI 数据时出错 Gatwewy

奥威Power-BI服装行业BI数据可视化分析--动销商品分析