本主题提供有关使用 SQL Server Data Tools (SSDT) 创作模型时处理(刷新)模型数据的信息。 本主题不提供有关在已部署到 Analysis Services 服务器实例的模型中处理数据的信息。 有关在已部署模型中处理数据的详细信息,请参阅 Analysis Services 中的脚本管理任务。
本主题中的部分:
数据处理的工作原理
处理数据时,模型设计器中的数据将替换为新数据。 不能仅导入新数据行或仅更改数据。 模型设计器不会跟踪之前添加的行。
数据处理以事务的形式进行。 这意味着,开始更新数据后,整个更新必须失败或成功;你永远不会有部分正确的数据。
从 SQL Server Data Tools 启动的手动数据进程由 Analysis Services 的本地内存中实例处理。 因此,数据进程作可能会影响计算机上的其他任务的性能。 但是,如果使用脚本计划部署模型中的自动数据过程,Analysis Services 实例将管理导入过程及其计时。
数据处理的影响
数据过程通常触发数据的重新计算。 处理数据意味着从外部源获取最新数据;重新计算意味着更新使用已更改数据的所有公式的结果。 流程操作通常会触发重新计算。
因此,在更改数据源或处理从数据源获取的数据之前,应始终注意潜在影响,并考虑以下潜在后果:
由于数据源中的更改,模型数据的某些部分可能会中断。 如果并非所有列都可以从数据源检索(例如,如果这些列已被删除或更改),则进程将失败,并且必须更新源数据和模型数据之间的映射。 有关详细信息,请参阅“编辑现有数据源连接”(SSAS 表格)。
处理后,某些列可能会标记为包含错误。 之所以发生这种情况,是因为列中的 DAX 公式使用在处理时变得不可用的数据、列的数据类型已更改或添加到外部数据中的无效值。 若要解决此问题,可以编辑公式,或者如果列基于不再可用的数据,则可以删除该列。
需要重新计算使用更新数据的公式。 根据模型的大小,这可能需要一些时间。
如果模型包含多个数据源,则可能需要处理整个模型(全部处理),即使只有一个外部数据源已更改。 例如,如果创建依赖于计算列的度量值,并且这些计算列使用来自其他计算列的值,模型设计器首先分析依赖项,然后按顺序处理整个相关对象链。 根据依赖项的复杂性,这可能需要很长时间。
更改筛选器时,必须重新计算整个模型。
确定数据源
如果不确定模型中的数据来自何处,可以使用 SQL Server Data Tools 中的工具获取详细信息,包括源文件名称和路径。
查找现有数据的源
在模型设计器中,选择包含要了解源的数据的表。
单击“ 表 ”菜单,然后单击“ 表属性”。
在 “编辑表属性 ”对话框中,记下 “连接名称”列出的值。
在 SQL Server Data Tools 的 “模型 ”菜单上,单击“ 现有连接”。
在“ 现有连接 ”对话框中,选择数据源,其中包含在步骤 3 中找到的名称,然后单击“ 编辑”。
在 “编辑连接 ”对话框中,查看连接信息,例如数据库名称、文件路径或报表路径。
确定上次刷新数据时间
可以使用表属性来确定上次刷新数据时间。
查找上次处理表的日期和时间
在模型设计器中,选择包含要了解刷新日期的数据的表。
单击“ 表 ”菜单,然后单击“ 表属性”。
在 “编辑表属性 ”对话框中, “上次刷新 ”显示表刷新的最后一个日期。
对可刷新数据源的限制
某些限制适用于可从 Analysis Services 实例上部署的模型自动处理的数据源。 请务必仅选择满足以下条件的数据源:
数据源必须在数据处理发生时可用,并且在指定的位置可用。 如果原始数据源位于创作模型的用户的本地磁盘驱动器上,则必须从数据处理作中排除该数据源,或者找到将该数据源发布到可通过网络连接访问的位置的方法。 如果将数据源移动到网络位置,请确保在模型设计器中打开模型并重复数据检索步骤。 这是重新建立存储在数据源连接属性中的连接信息所必需的。
必须使用嵌入在数据源连接的凭据访问数据源。 连接到外部数据源时,在数据源连接中创建嵌入凭据。
对于指定的所有数据源,数据处理必须成功。 否则,将丢弃已处理的数据,使你拥有模型的最后一个保存版本。 排除不确定的任何数据源。
数据进程不得使模型中的其他数据失效。 处理数据子集时,请务必了解在将较新的数据与非同一时间段的静态数据聚合后模型是否仍然有效。 作为模型设计器,需要了解数据依赖项,并确保数据过程适合模型本身。
在使用表导入向导将原始数据导入模型时,您指定的嵌入连接字符串、URL 或 UNC 路径用于访问外部数据源。 存储在数据源连接中的原始连接信息将用于后续的数据刷新操作。 出于数据进程目的,不会创建和管理单独的连接信息;仅使用现有连接信息。
对数据源更改的限制
对数据源所做的更改存在一些限制:
列的数据类型只能更改为兼容的数据类型。 例如,如果列中的数据包含十进制数,则无法将数据类型更改为整数。 但是,可以将数字数据更改为文本。 有关数据类型的详细信息,请参阅支持的数据类型(SSAS 表格)。
不能在不同的表中多选列并更改列的属性。 一次只能处理一个表或视图。