Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SSAS-如何在不丢失数据的情况下执行部分多维数据集处理_Sql Server_Ssis_Ssas_Cube_Msbi - Fatal编程技术网

Sql server SSAS-如何在不丢失数据的情况下执行部分多维数据集处理

Sql server SSAS-如何在不丢失数据的情况下执行部分多维数据集处理,sql-server,ssis,ssas,cube,msbi,Sql Server,Ssis,Ssas,Cube,Msbi,我有一个多维数据集,其中度量值组被划分为两个分区,用于不同的时间范围,如下所示: 最近两年数据(PRT数据年) 超过2年的旧数据(PRT_数据_REST) 通过处理第一个分区(使用任意处理选项),我如何确保只处理/刷新最近两年的数据?这意味着只有最近2年的数据将被更新,其余数据将保持不变 示例:假设数据库中的实际数据在所有年份都得到了更新。到目前为止,多维数据集还没有反映出这些变化,因为它还没有处理这些变化。现在我们运行多维数据集处理作业,该作业将仅更新或获取多维数据集中最近两年的更新数据。

我有一个多维数据集,其中度量值组被划分为两个分区,用于不同的时间范围,如下所示:

  • 最近两年数据(PRT数据年)

  • 超过2年的旧数据(PRT_数据_REST)

  • 通过处理第一个分区(使用任意处理选项),我如何确保只处理/刷新最近两年的数据?这意味着只有最近2年的数据将被更新,其余数据将保持不变

    示例:假设数据库中的实际数据在所有年份都得到了更新。到目前为止,多维数据集还没有反映出这些变化,因为它还没有处理这些变化。现在我们运行多维数据集处理作业,该作业将仅更新或获取多维数据集中最近两年的更新数据。其余的数据将保持完整。超过2年的多维数据集数据不会有任何更改

    请您帮助解决此问题

    欢迎任何建议/提示/技巧


    关于

    我建议您更改滑动窗口分区。例如,昨天处理“最近2年”分区时,它包含2018年1月18日至2020年1月17日。(或者我不确定是否为全年边界,但重点是相同的。)如果重新处理该分区,那么将丢失2018年1月18日的数据,并且这也必须重新处理旧分区


    改为切换到5个分区:2016、2017、2018、2019和2020。然后,您应该能够只重新处理2020分区,而不必重新处理以前的分区。基本上,您可以实现增量处理。当您准备停止报告2016年数据时,请删除该分区并创建2021分区

    首先,确保所有分区存储方法都定义为MOLAP(不是ROLAP或HOLAP),然后只处理一个分区,其他分区将不受影响但请确保您没有处理与其他分区相关的维度(如果需要重新处理,请尝试使用ProcessAdd方法)。

    您好,哈迪,非常感谢您的回复,但是我也必须处理维度,因为ssas db中有8个多维数据集,并且这些多维数据集之间共享许多维度。@ScriptSoft尽可能尝试进行增量处理(阅读关于ProcessAdd的内容),谢谢您的建议,但是多维数据集的基表可以使用任何类型的sql(插入/更新/删除)这应该在处理后反映在多维数据集中,因此它不会以这种方式工作。@ScriptSoft我不认为您可以这样做,因为如果您每次都需要处理维度(ProcessFull或ProcessUpdate),那么所有相关的分区都应该被处理。这么说,您的意思是这在SSA中根本无法实现吗?即使根据您的经验,也没有任何解决方法?谢谢Greg的回复。。由于我也必须处理维度,您不认为处理2个分区(2019和2020)会从其他分区删除其余数据吗?@ScriptSoft我认为这是多维的。否。ProcessUpdate oh维度,然后2019和2020分区上的ProcessData,然后多维数据集上的ProcessIndexes将使您无需重新处理前几年的数据。但是时间完全重新处理与增量重新处理相比,因为完全重新处理(数据库上的ProcessFull)可能更快。感谢@Greg,此时时间不是一个约束,而是管理需求。我将尝试并测试您建议的方法。我可以在我的原始分区(PRT_数据年)和以前的分区(PRT_数据年)上尝试同样的方法吗?你好,格雷格,很抱歉,恢复时间太长了。我已经按照你建议的方式进行了测试。1.ProcessUpdate(维度)、ProcessData(分区)、ProcessIndex(多维数据集)2。从1个Dim、1个分区和1个相关多维数据集启动此方法。并随着它的生长而扩展。每次它都会产生预期的结果。最后,通过所有dim、分区和多维数据集,它成功了,我得到了预期的结果。3.正如所建议的,自测试开始以来,我还将所有对象包括在一个处理任务中。非常感谢你的建议。这对我帮助很大。@ScriptSoft如果您需要每天处理更新维度,那么请确保您也可以这样处理多维数据集和度量值组上的ProcessIndexes。