通过忽略维度键错误的 XMLA 脚本处理维度和多维数据集
Process dimension and cube via XMLA script ignoring Dimension Key errors
在 SSAS 中,当我们手动处理来自 Visual Studio 的维度时,有一个忽略维度键错误的选项。但是我没有在 XMLA 脚本中看到它的等效项,尽管进行了大量的搜索和谷歌搜索。如果可能,请提供帮助。
XMLA 脚本仅提及 dimenion/fact/database 您要使用选项进行处理。其余立方体的所有设置(例如:忽略重复键)都是从立方体本身继承的。因此,如果您在 SSAS 多维数据集中设置了这些属性,那么它会得到处理。
但是,您可以通过 XMLA 单独处理每个维度以避免其他关键相关问题,但这并不简单,您必须获取每个维度的 XMLA 脚本 Ex:
<Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<Parallel>
<Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300">
<Object>
<DatabaseID>Database_Name</DatabaseID>
<DimensionID>Dimension_Name</DimensionID>
</Object>
<Type>ProcessFull</Type>
<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
</Process>
</Parallel>
</Batch>
基本上,您可以避免 SSAS 多维数据集本身的维度键错误。例如,当 table.
中同时包含 NULL 和空白时,您将收到重复错误
更新
您可以通过转至 数据库 > 进程 > 更改设置来更改维度设置
然后单击维度键错误选项卡并设置所需的值
完成后单击“确定”并单击“脚本”以生成相关的 XMLA 脚本。
您会注意到,现在您的 XMLA 将具有 ErrorConfiguration 节点,其中包含您选择的值。
XMLA - 报告并停止
<Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<ErrorConfiguration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300">
<KeyErrorLimit>2</KeyErrorLimit>
<KeyErrorLimitAction>StopLogging</KeyErrorLimitAction>
<KeyNotFound>ReportAndStop</KeyNotFound>
<KeyDuplicate>ReportAndStop</KeyDuplicate>
<NullKeyConvertedToUnknown>ReportAndStop</NullKeyConvertedToUnknown>
<NullKeyNotAllowed>ReportAndStop</NullKeyNotAllowed>
</ErrorConfiguration>
<Parallel>
<Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300">
<Object>
<DatabaseID>Database_Name</DatabaseID>
</Object>
<Type>ProcessFull</Type>
<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
</Process>
</Parallel>
</Batch>
您也可以通过将所有默认值更改为其他值来生成相同的值,一旦您获得 XMLA,然后给它一个所需的值。
这里有两种简单的方法。
一个。来自 Visual Studio
乙。来自 SQL 服务器管理工作室
生成的 XMLA 脚本不会在 XMLA 脚本中显示 ErrorConfiguration 元素,但它会自动处理您配置的忽略错误。您可以在 SQL 服务器代理或服务中的任何位置使用这些 XMLA 脚本来自动处理 cubes/dimensions。
在 SSAS 中,当我们手动处理来自 Visual Studio 的维度时,有一个忽略维度键错误的选项。但是我没有在 XMLA 脚本中看到它的等效项,尽管进行了大量的搜索和谷歌搜索。如果可能,请提供帮助。
XMLA 脚本仅提及 dimenion/fact/database 您要使用选项进行处理。其余立方体的所有设置(例如:忽略重复键)都是从立方体本身继承的。因此,如果您在 SSAS 多维数据集中设置了这些属性,那么它会得到处理。 但是,您可以通过 XMLA 单独处理每个维度以避免其他关键相关问题,但这并不简单,您必须获取每个维度的 XMLA 脚本 Ex:
<Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<Parallel>
<Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300">
<Object>
<DatabaseID>Database_Name</DatabaseID>
<DimensionID>Dimension_Name</DimensionID>
</Object>
<Type>ProcessFull</Type>
<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
</Process>
</Parallel>
</Batch>
基本上,您可以避免 SSAS 多维数据集本身的维度键错误。例如,当 table.
中同时包含 NULL 和空白时,您将收到重复错误更新
您可以通过转至 数据库 > 进程 > 更改设置来更改维度设置
然后单击维度键错误选项卡并设置所需的值
完成后单击“确定”并单击“脚本”以生成相关的 XMLA 脚本。
您会注意到,现在您的 XMLA 将具有 ErrorConfiguration 节点,其中包含您选择的值。
XMLA - 报告并停止
<Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<ErrorConfiguration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300">
<KeyErrorLimit>2</KeyErrorLimit>
<KeyErrorLimitAction>StopLogging</KeyErrorLimitAction>
<KeyNotFound>ReportAndStop</KeyNotFound>
<KeyDuplicate>ReportAndStop</KeyDuplicate>
<NullKeyConvertedToUnknown>ReportAndStop</NullKeyConvertedToUnknown>
<NullKeyNotAllowed>ReportAndStop</NullKeyNotAllowed>
</ErrorConfiguration>
<Parallel>
<Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300">
<Object>
<DatabaseID>Database_Name</DatabaseID>
</Object>
<Type>ProcessFull</Type>
<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
</Process>
</Parallel>
</Batch>
您也可以通过将所有默认值更改为其他值来生成相同的值,一旦您获得 XMLA,然后给它一个所需的值。
这里有两种简单的方法。
一个。来自 Visual Studio
乙。来自 SQL 服务器管理工作室
生成的 XMLA 脚本不会在 XMLA 脚本中显示 ErrorConfiguration 元素,但它会自动处理您配置的忽略错误。您可以在 SQL 服务器代理或服务中的任何位置使用这些 XMLA 脚本来自动处理 cubes/dimensions。