使用SSAS+Power BI如何正确配置ODBC
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用SSAS+Power BI如何正确配置ODBC相关的知识,希望对你有一定的参考价值。
参考技术AFailed to save modifications to the server. Error returned: \'OLE DB 或 ODBC 错误 : [DataSource.Error] ODBC: ERROR [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序。\'.
该错误的原因是,在配置系统DSN时,需要将64位和32未分别配置,也就是都要配置, 并且64位的名称和32位的名称必须一样 。
参考资料: SSAS Tabular using HiveODBC connection
实时 SSAS 表格连接的 Power BI 网关问题
【中文标题】实时 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如何正确配置ODBC的主要内容,如果未能解决你的问题,请参考以下文章
MongoDB ODBC Driver for Data Integration with Power BI
ssas 部署问题 BI 2014 版和 SQL 2012 版
将文本文件中的多个查询粘贴到 Power BI Desktop
Power BI Online管理数据源 - Analysis Services