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