若要管理主要由报告使用的数据仓库,必须对数据仓库作业执行维护任务。 例如,可以查看其状态、暂停和恢复、设置计划、启用和禁用计划以及排查数据仓库作业问题。 可以使用 Windows PowerShell cmdlet 执行所有这些维护任务。 此外,还可以通过 Service Manager 控制台执行其中一些任务。
在部署期间,如 Service Manager 部署指南中的“注册 Service Manager 管理组群”中所述,注册了 Service Manager 管理组群。 由于该操作,管理包部署已启动,MPSyncJob 启动。 在 MPSyncJob 完成之前,不应启动或恢复任何数据仓库作业,如 Service Manager 控制台中的“数据仓库作业”窗格中所示。
有七个数据仓库作业在各种时间运行以维护数据仓库,如下表所示。
数据仓库作业 | 说明 |
---|---|
MPSyncJob | 此作业将同步 Service Manager 源中的所有管理包。 这些管理包定义数据仓库的内容。 注册 Service Manager 管理组后,此作业将立即开始运行,在初始运行时需要几个小时才能完成。 |
DWMaintenance | 此作业执行数据仓库维护,例如索引编制和更新统计信息。 此作业将在 MPSyncJob 完成后自动运行。 |
实体(或整理) | 数据清理功能通常涉及在数据仓库中执行某些基于可配置时间段删除数据的操作。 注意:对于此版本的 Service Manager,将作为工作流来处理整理函数。 此作业的设置不可配置。 |
提取 | 此作业从 Service Manager 数据库中检索数据。 此作业在 Service Manager 数据库中查询自其上次运行以来产生的增量数据,并将此新数据写入到数据仓库内的 DWStagingAndConfig 数据库中。 Service Manager 中有两个提取作业:一个用于 Service Manager 管理组,另一个用于数据仓库管理组。 |
转换 | 此作业从临时区域中提取原始数据,并执行将该原始数据转换成用于报表的最终格式所需的任何清除、重格式化以及聚合操作。 此转换的数据被写入到 DWRepository 数据库中。 |
加载 | 此作业从 DWRepository 数据库中查询数据并将该数据插入到 DWDatamart 数据库中。 DWDatamart 是用于满足所有最终用户报表需求的数据库。 |
作业计划和频率
作业的计划定义作业的启动时间。 频率是指作业启动后运行频率。 无论计划和频率如何,除非启用了该作业的计划,否则作业不会运行。 除了实体(整理)作业外,每个作业都有默认的计划开始时间,即午夜。 下表列出了计划的开始时间、频率和默认计划设置。
数据仓库作业 | 计划开始时间 | 频率 | 默认情况下是否启用? |
---|---|---|---|
MPSyncJob | 午夜 | 每小时 | 是 |
DWMaintenance | 午夜 | 每小时 | 是 |
提取 | 午夜 | 每 5 分钟 | 是 |
转换 | 午夜 | 每 30 分钟 | 是 |
加载 | 午夜 | 每小时 | 是 |
在此版本的 Service Manager 中,将作为工作流来处理整理函数。 此作业的设置不可配置。
PowerShell cmdlet
Service Manager Windows PowerShell 模块包含在此方案中用于管理托管数据仓库的服务器上的数据仓库函数的 cmdlet。 你必须以管理员身份运行所有 Windows PowerShell cmdlet。 若要查看 Windows PowerShell 帮助,请键入 get-help 命令,后跟要获取帮助的 cmdlet 的名称。 例如,键入 get-help Set-SCDWJobSchedule
。
使用以下 PowerShell 命令:
PowerShell cmdlet | 说明 |
---|---|
Get-SCDWJobSchedule | 显示数据仓库作业的计划。 |
Get-SCDWJob | 显示所有“Service Manager”数据仓库重复作业的状态。 |
Get-SCDWMgmtGroup | 显示向数据仓库注册的管理组的详细信息。 |
Remove-SCDWMgmtGroup | 从数据仓库中删除管理组。 |
Set-SCDWJobSchedule | 设置数据仓库作业的计划。 |
Enable-SCDWJobSchedule | 启用数据仓库作业计划。 |
Disable-SCDWJobSchedule | 禁用数据仓库作业计划。 默认情况下禁用了作业计划。 |
数据仓库作业入门
向 Service Manager 数据仓库注册时,MPSyncJob 将开始运行。 此作业初次完成可能需要几个小时。 完成此作业后,可以看到“数据仓库作业”窗格中列出的两个提取作业。 其中一个提取作业列为Extract_数据仓库管理组名称,另一个提取作业列为Extract_Service Manager 管理组名称。 当这两个提取作业出现时,你知道 MPSyncJob 的初始运行已完成,现在可以继续执行后续维护任务。
数据仓库模块部署
当 Service Manager 管理服务器注册到数据仓库管理服务器时,Service Manager 中的数据仓库模块部署将启动。 下列部分描述模块的组成部分、功能和计划。
管理包同步是数据仓库用以发现源系统中存在哪些类和关系的过程。 此过程也称为 MPSync。 对于定义类或关系的每个管理包,数据仓库都会创建提取作业模块以从对应的数据源中检索该类或关系的数据。 这种管理包及其关联的作业会在系统之间进行同步。
只有密封的管理包及其对应的数据才会被同步到数据仓库中。 如果更改管理包,则必须增加版本号,并且不能引入任何可能导致错误的更改;否则,管理包将无法导入。 例如,不能删除类、删除属性或删除关系。 同样,不能以不支持的方式更改数据类型。 例如,不能修改字符串属性以成为数值属性。
默认情况下,MPSync 业务流程作业运行时间间隔为 30 分钟。
多个源可能引用同一管理包。 源系统中的版本必须与数据仓库中的版本相同或比其高,否则注册将失败。
可以从数据仓库中删除管理包。 不过,请记住下列几点:
删除管理包不会像在 Service Manager 数据库中那样从数据仓库中删除数据;相反,将删除用户向其授予访问权限的数据库视图。
如果在删除相应的管理包后重新导入管理包,则会再次公开历史数据。
注意
只有密封的管理包从 Service Manager 同步到数据仓库。 这种情况的一种例外就是列表项,也称为枚举。 无论它们位于密封还是未密封的管理包中,组或队列都会被同步到数据仓库。
从 Service Manager 导入的管理包是同时针对 Service Manager 和数据仓库特定的。 Service Manager 管理包可识别 Service Manager 数据库的结构,数据仓库管理包驱动数据仓库数据库的结构和进程。
Service Manager 数据仓库保留期
默认情况下,事实数据表的数据要在数据仓库中存储 3 年,而维度和子维度表的数据则无限期存储。 然而,如果想将数据保留更长时间或者将其更主动地整理出来,可以修改其保持期。
事实数据表保持期设置
数据仓库中有两种类型的保留设置:
- 全局:默认情况下,数据库中所有事实数据表的全局保留期设置为三年,随后创建的所有事实数据表都用作其默认保留设置。
- 个别事实数据:除非逐个修改,否则所有个别事实数据表的粒状保持期均采用 3 年作为全局设置。
全局:存储在 Service Manager 数据仓库中的数据的默认全局保留期为三年,因此所有事实数据表都使用三年作为默认保留设置。 任何后续创建的事实数据表在创建时均采用此设置作为其自己的保持期设置。
单个事实数据表:单个事实数据表在创建时继承全局保留值,也可以将其自定义为不同于默认全局设置的值。 可以配置在安装期间创建的默认个别事实数据表,根据需要分别设置其保持期的值。
使用“Get-SCDWRetentionPeriod” PowerShell cmdlet 可获取特定数据仓库数据库内特定事实数据表的保持期,也可获取数据库内事实数据表的默认保持期。 有关可用参数和示例用法的详细说明,请参阅 Get-SCDWRetentionPeriod。
重新导入以前删除的管理包
在开发和测试包含访问数据仓库信息报表的管理包过程中,你可能需要删除管理包,稍后再将它们重新导入。 但是,在从数据仓库卸载管理包后,如果新管理包包含一个维度、事实或多维数据集名称,其架构不同于原始架构,则你必须手动从 DWRepository 和 DWDataMart 数据库删除相应的维度或事实表,并且还需删除在 SQL Server Analysis Services (SSAS) 数据库中被引用的任何多维数据集。
此外,如果现有的数据多维数据集引用某个维度或事实数据,则你必须还删除包含该数据多维数据集的管理包和数据多维数据集自身,才能卸载新的管理包。 由于 Service Manager 不会从 DataSourceView 中删除维度或事实数据表,并且不会从 SSAS 数据库中删除维度,因此必须手动删除数据多维数据集引用的信息。 在这种情况下,你应在重新注册或重新安装更新的管理包之前,通过 SQL Server Management Studio 来删除你使用来自 DWASDatabase 的管理包创建的任何自定义的数据多维数据集。
通常而言,你应避免在不同架构中存在相同的维度、事实数据以及多维数据集名称。 Service Manager 不支持此条件。
启用或禁用数据仓库作业计划
使用以下过程根据需要为 ETL 作业启用计划;可以使用此过程为任何数据仓库作业启用计划。 默认情况下,提取、转换和加载(ETL)作业的计划已启用。 在此版本的 Service Manager 中,只能使用 Windows PowerShell 启用计划。
若要使用 Windows PowerShell cmdlet 为数据仓库作业启用计划,请执行以下步骤:
- 在承载数据仓库管理服务器的计算机上,选择“开始”,指向“所有程序”,选择Microsoft System Center,选择 Service Manager 2016,然后选择 Service Manager Shell。
- 在承载数据仓库管理服务器的计算机上,选择“开始”,指向“所有程序”,选择Microsoft System Center,选择“Service Manager”,然后选择“Service Manager Shell”。
在 Windows PowerShell 提示符下,输入以下命令,然后在每个命令后按 Enter:
Enable-SCDWJobSchedule -JobName Extract_<data warehouse management group name>
Enable-SCDWJobSchedule -JobName Extract_<Service Manager management group name>
Enable-SCDWJobSchedule -JobName Transform.Common
Enable-SCDWJobSchedule -JobName Load.Common
进入 退出,然后按 Enter。
可以使用以下过程来禁用提取、转换和加载 (ETL) 作业的计划;但是,可以使用此过程来禁用任何数据仓库作业的计划。 在此版本的 Service Manager 中,只能使用 Windows PowerShell cmdlet 禁用计划。
停止和开始数据仓库作业
可以在 Service Manager 中停止和启动正在运行的数据仓库作业。 例如,可能需要停止所有正在运行的数据仓库作业,以确保数据仓库管理服务器的安全更新不会干扰任何可能运行的作业。 更新并重启服务器后,可以恢复所有数据仓库作业。 可以使用 Service Manager 控制台或使用 Windows PowerShell cmdlet 停止和启动作业。 在此示例中,仅运行提取、转换和加载 (ETL) 作业。
注意
有关使用 Service Manager Windows PowerShell cmdlet 的信息,请参阅 配置和使用适用于 Windows PowerShell 的 Service Manager Cmdlet。
使用 Service Manager 控制台停止和启动数据仓库作业
若要使用 Service Manager 控制台停止和启动数据仓库作业,请执行以下步骤:
- 在 Service Manager 控制台中,选择 数据仓库。
- 展开数据仓库,然后选择“数据仓库作业”。
- 在“数据仓库作业”窗格中,选择正在运行的作业,然后在“任务”列表中选择“挂起”。
- 对每个数据仓库作业重复上一步。
- 若要恢复每个作业,请选择在“数据仓库作业”窗格中停止的作业,然后在“任务”列表中选择“恢复”。
若要使用 Windows PowerShell cmdlet 停止所有数据仓库作业,请执行以下步骤:
- 在承载数据仓库管理服务器的计算机上,选择“开始”,指向“所有程序”,选择Microsoft System Center,选择 Service Manager 2016,然后选择 Service Manager Shell。
- 在承载数据仓库管理服务器的计算机上,选择“开始”,指向“所有程序”,选择Microsoft System Center,选择“Service Manager”,然后选择“Service Manager Shell”。
在 Windows PowerShell 提示符下,输入以下命令,然后在每个命令后按 Enter:
Stop-SCDWJob-JobName Extract_<data warehouse management group name>
Stop-SCDWJob -JobName Extract_<Service Manager management group name>
Stop-SCDWJob -JobName Transform.Common
Stop-SCDWJob -JobName Load.Common
键入 退出,然后按 Enter。
在 Service Manager 中计划数据仓库作业
可以使用以下过程在 Service Manager 中计划数据仓库作业。
在一种情境中,可以使用此过程,该情境是数据仓库作业的计划已经在 Service Manager 中定义。 你想要更改数据仓库作业的计划,以定义 Service Manager 数据库和数据仓库的标准维护时段。 使用 Set-SCDWJobSchedule cmdlet 计划数据仓库作业。 Set-SCDWJobSchedule -ScheduleType Weekly
cmdlet 和参数组合允许作业仅在指定的日期运行。 例如,以下命令定义每日或每周计划:
Set-SCDWJobSchedule -JobName Transform.Common -ScheduleType Daily -DailyFrequency 01:00:00 -DailyStart 06:00
Set-SCDWJobSchedule -JobName Transform.Common -ScheduleType Weekly -WeeklyFrequency Tuesday, Thursday -WeeklyStart 06:00
注意
若要运行 Windows PowerShell cmdlet,必须将执行策略设置为 RemoteSigned。
在以下过程中,你可以将转换作业的计划配置为从上午 2:00 开始每 45 分钟运行一次。 但是,可以修改命令以设置自己的计划。
若要配置数据仓库作业的计划,请执行以下步骤:
- 在承载数据仓库管理服务器的计算机上,选择“开始”,指向“所有程序”,选择Microsoft System Center,选择 Service Manager 2016,然后选择 Service Manager Shell。
- 在承载数据仓库管理服务器的计算机上,选择“开始”,指向“所有程序”,选择Microsoft System Center,选择“Service Manager”,然后选择“Service Manager Shell”。
在 Windows PowerShell 提示符下,键入以下命令,然后按 Enter。
Set-SCDWJobSchedule -JobName Transform.Common -ScheduleType Daily -DailyFrequency 00:45:00 -DailyStart 02:00
处理数据仓库中的所有维度
可以使用 Windows PowerShell cmdlet 在一个操作中处理数据仓库中的所有维度,而不是单独处理每个维度。 在托管 SQL Server Analysis Services(SSAS)的服务器上,使用以下 Windows PowerShell 脚本。 确保指定完全限定的服务器名称。 可以单独输入每个命令,也可以将它们全部保存为 Windows PowerShell 脚本 (.ps1) 文件,然后运行脚本。
在使用 Service Manager cmdlet 之前,需要配置 Service Manager Shell。 有关配置 Service Manager Shell 的信息,请参阅 配置和使用适用于 Windows PowerShell 的 System Center Service Manager Cmdlet。
使用 cmdlet 处理所有维度
在 Service Manager Shell 中的提示处复制并粘贴以下代码片段:
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices") > $NULL
$Server = New-Object Microsoft.AnalysisServices.Server $Server.Connect("<FullyQualifiedServerName>") $Databases = $Server.Databases $DWASDB = $Databases["DWASDataBase"] $Dimensions = New-Object Microsoft.AnalysisServices.Dimension $Dimensions = $DWASDB.Dimensions
foreach ($Dimension in $Dimensions){$Dimension.Process("ProcessFull")}
查看数据仓库作业历史记录
数据仓库作业的历史记录是在 Service Manager 中运行时收集的。 可以查看此历史记录以确定作业的运行时间或确定作业上次成功运行的时间。 显示数据仓库作业历史记录时,可以使用 NumberOfBatches 参数显示指定的条目数。 使用以下过程查看数据仓库作业历史记录中的最后五个条目。
查看数据仓库作业历史记录中的最后五个条目
若要查看数据仓库作业历史记录中的最后五个条目,请执行以下步骤:
- 在承载数据仓库管理服务器的计算机上,选择“开始”,指向“所有程序”,选择Microsoft System Center,选择 Service Manager 2016,然后选择 Service Manager Shell。
- 在承载数据仓库管理服务器的计算机上,选择“开始”,指向“所有程序”,选择Microsoft System Center,选择“Service Manager”,然后选择“Service Manager Shell”。
输入以下命令,然后按 Enter。
Get-SCDWJob -NumberOfBatches 5
进入 退出,然后按 Enter。
查看数据仓库作业的状态
可以使用以下过程查看 Service Manager 中数据仓库作业的状态,以确定作业是正在运行、停止还是失败。
若要使用 Service Manager 控制台查看数据仓库作业的状态,请执行以下步骤:
- 在 Service Manager 控制台中,选择 数据仓库。
- 在“数据仓库”窗格中,展开数据仓库,然后选择“数据仓库作业”。
- 在 “数据仓库作业 ”窗格中,查看作业列表以查看其状态。
对 Service Manager 中的数据仓库作业进行故障排除
在 Service Manager 中,可能会遇到与数据仓库作业相关的问题。 数据仓库注册向导完成后,报表功能在 Service Manager 控制台中可用之后,可以开始运行报表。 例如,如果运行的事件管理报告不显示更新的数据,则可以使用 Windows PowerShell cmdlet 来解决问题。
你可以使用第一个过程,通过 Windows PowerShell cmdlet 确定作业是否失败,并评估该作业生成的任何错误消息。
第二个过程可用于更改默认转换作业超时期限。 如果看到数据仓库转换作业未成功完成,则这可能是由于超过作业的默认 3 小时超时期限所致。 之所以发生这种情况,是因为数据仓库中转换了大量数据。 要确认这确实正在发生,你可以在数据仓库中查看事件查看器,对于模块,你可以会在此查看器中看到类似以下内容的消息:超时已过期。操作完成前已超时,或者服务器没有响应。 例如,你可能会看到与 TransformEntityRelatesToEntityFact 模块相关的上述消息。 若要解决此问题,可以将超时期限设置为大于默认值 10800 秒。
若要使用 Windows PowerShell cmdlet 对数据仓库作业进行故障排除,请执行以下步骤:
在承载数据仓库管理服务器的计算机上,启动“Windows PowerShell” 。
输入以下命令,然后按 Enter。
Get-SCDWJob
查看输出,找到状态 为“失败 ”的任何作业。
输入以下命令,然后按 Enter。 在命令中,将失败的数据仓库作业指定为 JobName 参数的值。
Get-SCDWJobModule -JobName Transform.Common
在输出中,找到“失败”状态,然后审阅“错误消息” 列,以获取数据仓库作业失败的原因的详细信息。
准备好重试失败的作业后,在 Service Manager 控制台中选择 “数据仓库”。
展开数据仓库,然后选择“数据仓库作业”。
在“数据仓库作业”窗格中,选择列表中的失败作业,然后在“任务”列表中选择“恢复”。
后续步骤
- 若要从一个或多个数据源检索数据,请参阅将源系统注册到数据仓库。