创建数据源(SSAS 多维)
适用于: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
在SQL Server Analysis Services多维模型中,数据源对象表示要从中处理 (或导入) 数据的数据源的连接。 一个多维模型必须包含至少一个数据源对象,但您可以添加更多对象以便合并来自若干数据仓库的数据。 使用本主题中的说明可为您的模型创建数据源对象。 有关设置此对象的属性的详细信息,请参阅 (SSAS 多维) 设置数据源属性 。
本主题包含下列部分:
选择数据访问接口
可以使用托管的 Microsoft .NET Framework或本机 OLE DB 提供程序进行连接。 SQL Server 数据源的建议的数据访问接口是 SQL Server Native Client,因为它通常提供更好的性能。
对于 Oracle 和其他第三方数据源,请检查第三方是否提供本机 OLE DB 访问接口,然后首先尝试该访问接口。 如果您遇到错误,请尝试在连接管理器中列出的其他 .NET 访问接口或本机 OLE DB 访问接口之一。 请确保使用的任何数据提供程序都安装在用于开发和运行SQL Server Analysis Services解决方案的所有计算机上。
设置凭据和模拟选项
数据源连接有时可以使用 Windows 身份验证或数据库管理系统提供的身份验证服务,例如在连接到 SQL Azure 数据库时使用 SQL Server 身份验证。 您指定的帐户必须能够登录到远程数据库服务器并对外部数据库具有读取权限。
Windows 身份验证
使用 Windows 身份验证的连接在数据源设计器的 “模拟信息” 选项卡上指定。 使用此选项卡可选择模拟选项,该选项指定在连接到外部数据源时运行SQL Server Analysis Services所使用的帐户。 并非在所有情况下都可以使用所有选项。 有关这些选项以及何时使用它们的详细信息,请参阅 (SSAS - 多维) 设置模拟选项 。
数据库身份验证
作为对 Windows 身份验证的替代方法,您可以指定使用数据库管理系统提供的身份验证服务的连接。 在某些情况下,需要使用数据库身份验证。 要求使用数据库身份验证的情况包括使用 SQL Server 身份验证连接到 Windows Azure SQL Database,或访问在不同的操作系统上或不受信任的域中运行的关系数据源。
对于使用数据库身份验证的数据源,在连接字符串上指定数据库登录名的用户名和密码。 在SQL Server Analysis Services模型中设置数据源连接时,在 连接管理器 中输入用户名和密码时,凭据将添加到连接字符串。 请记住,应指定对数据具有读取权限的用户标识。
在检索数据时,建立连接的客户端库将形成在连接字符串中包括凭据的连接请求。 “模拟信息”选项卡中的 Windows 身份验证凭据选项不用于该连接,但可用于其他操作,例如访问本地计算机上的资源。 有关详细信息,请参阅 (SSAS - 多维) 设置模拟选项 。
在您的模型中保存数据源对象后,对连接字符串和密码进行加密。 出于安全目的,当您随后在工具、脚本或代码中查看密码时,密码的所有可见痕迹都将从连接字符串中删除。
注意
默认情况下,SQL Server Data Tools不会使用 连接字符串保存密码。 如果未保存密码,SQL Server Analysis Services会在需要时提示输入密码。 如果选择保存密码,则密码以加密格式存储在数据连接字符串中。 SQL Server Analysis Services使用包含数据源的数据库的数据库加密密钥加密数据源的密码信息。 使用加密的连接信息时,必须使用SQL Server 配置管理器更改SQL Server Analysis Services服务帐户或密码,否则无法恢复加密的信息。 有关详细信息,请参阅 SQL Server Configuration Manager。
为数据挖掘对象定义模拟信息
数据挖掘查询可以在 SQL Server Analysis Services 服务帐户的上下文中执行,但也可能在提交查询的用户的上下文中或在指定用户的上下文中执行。 执行查询所在的上下文可能会影响查询结果。 对于数据挖掘 OPENQUERY 类型操作,你可能希望数据挖掘查询在当前用户的上下文中执行或在指定用户(无论此用户是否执行此查询)的上下文中执行,而不是在服务帐户的上下文中执行。 这使得查询使用受限安全凭据执行。 如果希望SQL Server Analysis Services模拟当前用户或模拟指定用户,请选择“使用特定用户名和密码”或“使用当前用户的凭据”选项。
使用数据源向导创建数据源
在 SQL Server Data Tools 中,打开SQL Server Analysis Services项目或连接到要在其中定义数据源的 SQL Server Analysis Services 数据库。
在“解决方案资源管理器”中,右键单击“数据源”文件夹,然后单击“新建数据源”以便启动“数据源向导”。
在 “选择如何定义连接” 页中,选择 “基于现有连接或新连接创建数据源” ,然后单击 “新建” 以便打开 “连接管理器”。
在连接管理器中创建新连接。 在连接管理器中,选择一个访问接口,然后指定由该访问接口用来连接到基础数据的连接字符串属性。 所需的确切信息取决于选定的访问接口,但通常此类信息包括某个服务器或服务实例、登录到该服务器或服务实例所用的信息、数据库或文件名以及访问接口的其他特定设置。 对于此过程的其余部分,我们将假定SQL Server数据库连接。
选择要用于连接的 Microsoft .NET Framework 或本机 OLE DB 访问接口。
新连接的默认提供程序是 Native OLE DB\SQL Server Native Client 访问接口。 此提供程序用于使用 OLE DB 连接到SQL Server数据库引擎实例。 要连接到 SQL Server 关系数据库,使用 Native OLE DB\SQL Server Native Client 11.0 通常要比使用备用访问接口要快。
您可以选择一个不同的访问接口来访问其他数据源。 有关 SQL Server Analysis Services 支持的提供程序和关系数据库的列表,请参阅支持的数据源 (SSAS - 多维) 。
输入选定访问接口连接到基础数据源所需的信息。 如果选中“本机 OLE DB\SQL Server Native Client”访问接口,请输入以下信息:
“服务器名称” 是数据库引擎实例的网络名称。 它可以指定为 IP 地址、计算机的 NETBIOS 名称或完全限定域名。 如果将服务器安装为命名实例,则必须将实例名称 (例如 computername<>\<instancename>) 。
“登录到服务器” 指定将对连接进行身份验证的方式。 “使用 Windows 身份验证” 使用 Windows 身份验证。 “使用 SQL Server 身份验证” 为支持混合模式身份验证的 Windows Azure SQL Database 或 SQL Server 实例指定数据库用户登录名。
重要
连接管理器对于使用 SQL Server 身份验证的连接包括一个 “保存我的密码” 复选框。 尽管显示此复选框,但并不总是使用它。
在 Analysis Services 不使用此复选框的情况下,此时将包括刷新或处理在活动 Analysis Services 数据库中使用的 SQL Server 关系数据。 无论您是清除还是选中 “保存我的密码”,Analysis Services 始终将加密和保存密码。 密码加密后同时存储在 .abf 和数据文件中。 之所以存在此行为,是因为 Analysis Services 不支持在服务器上存储基于会话的密码。
此行为仅适用于满足以下条件的数据库:a) 在 Analysis Services 服务器实例上持久存在;b) 使用 SQL Server 身份验证刷新或处理关系数据。 它不适用于在 SQL Server Data Tools 中设置的仅在会话期间使用的数据源连接。 尽管无法删除已经存储的密码,但您可以使用不同的凭据或 Windows 身份验证来覆盖当前随数据库存储的用户信息。
“选择或输入数据库名称” 或 “附加一个数据库文件” 用于指定数据库。
在此对话框的左侧,单击 “全部” 可查看此连接的其他设置,其中包括此访问接口的所有默认设置。
根据环境需要更改设置并单击 “确定”。
将在数据源向导的 “选择如何定义连接” 页的 “数据连接” 窗格中显示新连接。
单击“下一步”。
在 “模拟信息”中,指定在连接到外部数据源时 Analysis Services 将使用的 Windows 凭据或用户标识。 如果您正在使用数据库身份验证,则出于连接目的,这些设置将被忽略。
用于选择模拟选项的准则因您使用数据源的方式而异。 对于处理任务,SQL Server Analysis Services服务必须在连接到数据源时在其服务帐户或指定用户帐户的安全上下文中运行。
“使用特定 Windows 用户名和密码” 将指定一组唯一的最小权限凭据。
“使用服务帐户” 将使用服务标识处理数据。
您指定的帐户必须对数据源具有读取权限。
单击“下一步”。 在 “完成向导”中,输入数据源名称或使用默认名称。 默认名称是在连接中指定的数据库的名称。 “预览” 窗格将显示此新数据源的连接字符串。
单击“完成”。 此时,解决方案资源管理器的 “数据源” 文件夹中将出现新数据源。
使用现有连接创建数据源
处理SQL Server Analysis Services项目时,数据源可以基于解决方案中的现有数据源,也可以基于SQL Server Analysis Services项目。 数据源向导提供了几个用于创建数据源对象的选项,包括在同一个项目中使用现有连接。
基于解决方案中的现有数据源创建数据源之后,您可以定义与现有数据源同步的数据源。 生成包含该新数据源的项目时,将使用基础数据源中的数据源设置。
基于SQL Server Analysis Services项目创建数据源可以引用当前项目中解决方案中的另一个SQL Server Analysis Services项目。 新的数据源使用 MSOLAP 访问接口,并且该数据源的 Data Source 属性和 Initial Catalog 属性从选定项目的 TargetServer 属性和 TargetDatabase 属性获取。 此功能适用于使用多个SQL Server Analysis Services项目来管理远程分区的解决方案,因为源和目标SQL Server Analysis Services数据库需要相互数据源来支持远程分区存储和处理。
在引用数据源对象时,只能在被引用对象或项目中编辑此对象。 不能在包含该引用的数据源对象中编辑连接信息。 在被引用对象或项目中对连接信息的更改会显示在生成后的新数据源中。 在生成项目或在数据源设计器中清除引用时,显示在项目的数据源 (.ds) 文件中的连接字符串信息将被同步。
查看或编辑连接属性
连接字符串基于您在数据源设计器或新建数据源向导中选择的属性构成。 可以在 SQL Server Data Tools 中查看连接字符串和其他属性。
编辑连接字符串
在 SQL Server Data Tools 中,双击 解决方案资源管理器 中的数据源对象。
单击 “编辑”,然后在左侧的导航窗格中单击 “所有” 。
属性网格将出现,其中显示您正在使用的数据访问接口的可用属性。 有关这些属性的详细信息,请参阅访问接口的产品文档。 对于 SQL Server 本机客户端,请参阅 Using Connection String Keywords with SQL Server Native Client。
如果解决方案中具有多个数据源,并且您希望在同一位置维护连接字符串,则可以将当前数据源配置为引用其他数据源对象。
数据源引用是与同一解决方案中另一个SQL Server Analysis Services项目或数据源的关联。 引用提供了一种在解决方案的对象之间同步数据源的方式。 每次生成项目时,都会同步连接字符串信息。 若要更改引用另一对象的数据源的连接字符串,则必须更改被引用对象的连接字符串。
您可以通过清除此复选框来删除该引用。 此操作将结束对象间的同步并允许您更改数据源中的连接字符串。
将多个数据源添加到模型
您可以创建多个数据源对象,以便支持与其他数据源的连接。 每个数据源都必须具有可以用来创建关系的列。
注意
如果定义了多个数据源,并且在单个查询中从多个源查询数据(例如对于雪花型维度),则必须定义支持使用 OpenRowset的远程查询的数据源。 通常,此数据源将为 Microsoft SQL Server 数据源。
使用多个数据源的要求包括:
将一个数据源指定主数据源。 主数据源是用于创建数据源视图的数据源。
主数据源必须支持 OpenRowset 函数。 有关 SQL Server 中该函数的详细信息,请参阅 OpenRowSet。
使用以下方法可合并来自多个数据源的数据:
在模型中创建数据源。
创建数据源视图,使用 SQL Server 关系数据库作为数据源。 这是您的主数据源。
在数据源视图设计器中,使用刚创建的数据源视图,在工作区的任何地方右键单击,然后选择“添加/删除表”。
选择第二个数据源,然后选择您要添加的表。
查找并选择您所添加的表。 右键单击该表,然后选择“新建关系”。 选择包含匹配数据的源列和目标列。