2015-09-22 1 views
0

В SSAS существует возможность игнорировать ошибки ключа измерения, когда мы вручную обрабатываем измерение из Visual Studio. Но я не видел эквивалента этого в XMLA-скрипте, несмотря на множество раздуваний и поисковых запросов. Если это возможно, любезно помогите.Измерение процесса и куб по сценарию XMLA игнорирование ошибок ключа измерения

ответ

1

Скрипт XMLA просто упоминает о параметрах dimenion/fact/database, которые вы хотите обработать с помощью опций. Остальные настройки куба (ex: ignore duplicate keys) наследуются от самого куба. Итак, если вы установили эти свойства в кубе 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. Например, вы получите дублируемую ошибку, если в таблице есть значение NULL и пустое.

Обновления

Вы можете изменить настройки размера, перейдя в Database> Процесс> Изменить настройки enter image description here

Затем нажмите на ключ размерности вкладке ошибки и установить требуемые значения

enter image description here

Как только вы закончите, нажмите «ОК» и щелкните по сценарию для создания соответствующего сценария XMLA. enter image description here

Вы заметите, что теперь ваш XMLA будет ErrorConfiguration узел со значениями, которые вы выбрали.

XMLA - ReportAndStop

<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 затем придать ему нужное значение.

+0

Hi Anuj, я ценю ваш ценный вход. Я знаю, как получить XMLA-скрипт для измерения и куба, и я также знаю, как обрабатывать несколько измерений и куб в одном скрипте. Не могли бы вы написать здесь не прямые шаги, которые включали бы ошибки игнорирования. Благодарю. –

+0

@MerinNakarmi Я обновил свой ответ. –

+0

Я выполнил все шаги, перечисленные вами. Однако развернутый размер и куб не сгенерировали элемент ErrorConfiguration в скрипте XMLA. Согласно этой статье, похоже, мы можем явно добавить элемент ErrorConfiguration в XMLA. https://msdn.microsoft.com/en-us/library/ms186610(v=sql.110).aspx. Я попробую это. –

0

Два простых подхода здесь.

A. Из Visual Studio

enter image description here

B. Из SQL Management Server Studio enter image description here

Сформированный XMLA Script не показывает ErrorConfiguration элемент в XMLA Script, однако это делает автоматически позаботьтесь об игнорируемых ошибках. Вы можете использовать этот XMLA Script в любом месте в агенте или службах SQL Server для автоматической обработки кубов/измерений.