Ошибка обработки куба SSAS о привязке столбца

Это сообщение об ошибке, которое я получаю после обработки куба SSIS

Errors in the back-end database access module. The size specified for a binding was too small, resulting in one or more column values being truncated.

Однако это не дает мне никаких указаний на то, что привязка столбца слишком мала.

Как это отладить?


person Raj More    schedule 25.02.2013    source источник


Ответы (10)


  1. Откройте базу данных SSAS с помощью SQL Server Data Tools.
  2. Откройте представление источника данных базы данных SSAS.
  3. Щелкните правой кнопкой мыши пустое место и нажмите Refresh
  4. Откроется окно, в котором будут показаны все изменения базовой модели данных.

Документация

person Jeroen Bolle    schedule 26.02.2013
comment
Я понял, что моя проблема была не в столбце из базы данных, а в жестко закодированном значении. Я использовал CAST, и это сработало. - person Raj More; 28.02.2013
comment
См. мой ответ ниже - возможно, вам также потребуется обновить соответствующие привязки в измерениях. - person Brian Vander Plaats; 28.06.2016

Это сообщение об ошибке сводило меня с ума в течение нескольких часов. Я уже нашел, какой столбец увеличил свою длину, и обновил таблицу данных в источнике, которая теперь показывала правильную длину. Но ошибка постоянно выскакивала. Оказывается, это поле использовалось в ссылке «факт-измерение» на вкладке «Использование измерения» куба. И когда вы обновляете источник, привязка, созданная для этой ссылки, не обновляется. Исправление состоит в том, чтобы удалить (изменить тип отношения на «Нет отношения») и заново создать эту ссылку.

Upd: поскольку этот ответ все еще актуален, я решил добавить скриншот, показывающий область, в которой вы можете столкнуться с этой проблемой. Если по какой-либо причине вы используете строку для связи измерения с фактом, на нее может повлиять увеличенный размер. А решение описано выше. Это дополняет проблему со столбцами «Ключ», «Имя» и «Значение» в атрибуте измерения. Экран использования параметров

person Esc    schedule 19.08.2014
comment
См. мой ответ ниже. Вы правы, привязка не обновляется, но вам не нужно заново создавать ссылки. - person Brian Vander Plaats; 28.06.2016
comment
Брайан, ваш ответ не касается проблемы с использованием измерений, а только с атрибутами. Это два отдельных вопроса. - person Esc; 30.06.2016
comment
ОК, я вижу, что на самом деле это разные проблемы - я проверил использование своего измерения и всех пользовательских целочисленных ключей, поэтому я еще не сталкивался с этой проблемой. Тем не менее, вы должны иметь возможность редактировать файл *.cube напрямую — найдите ‹DataSize› для связанного атрибута и измените его, чтобы он соответствовал значению в DSV. - person Brian Vander Plaats; 30.06.2016

ESC правильный. Установите помощник BIDS из CodePlex. Щелкните правой кнопкой мыши папку «Измерения» и запустите проверку несоответствия данных.

Проверка несоответствия типов данных

Это исправило мою проблему.

person RollTide    schedule 19.09.2014
comment
Codeplex закрывается, теперь он доступен по адресу bideveloperextensions.github.io. - person RonaldB; 17.01.2018

Альтернативное исправление № 1 — SQL Server 2008 R2 (не пробовал в 2012 году, но думаю, что это сработает).

  1. Обновите / обновите свой DSV. Отметьте все измененные столбцы, чтобы вы могли просмотреть их.
  2. Откройте каждое измерение, в котором используются измененные столбцы. Найдите связанный атрибут и разверните свойства KeyColumns, NameColumn и ValueColumn.
  3. Просмотрите свойства DataSize для каждого из них и, если они не совпадают со значением из DSV, внесите соответствующие изменения. Лист свойств

Альтернативное исправление № 2

  1. Откройте затронутый файл *.dim и найдите имя/привязку вашего столбца.
  2. Измените элемент Размер данных: <DataSize>100</DataSize>

Как отметил Esc, обновления размера столбца могут повлиять на использование измерения в самом кубе. Вы можете либо сделать, как предлагает Esc, либо напрямую отредактировать файл *.cube — найти обновленный атрибут и соответствующий элемент размера данных: <DataSize>100</DataSize>

Я пробовал оба исправления при изменении размера столбца, и они оба работают.

person Brian Vander Plaats    schedule 28.06.2016
comment
Не только ключевые столбцы. Если столбец с увеличенным размером используется для столбца имени или столбца значения, вам также придется обновить его размер. - person Esc; 30.06.2016
comment
Обновил мой ответ. По-видимому, ни одно из моих измерений не использует ничего, кроме свойства KeyColumns. - person Brian Vander Plaats; 30.06.2016

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

person AceAlfred    schedule 28.10.2013

В моем конкретном случае проблема заключалась в том, что мой запрос читал из Oracle, а жестко запрограммированный столбец имел завершающий пробел (моя ошибка).

Я удалил завершающий пробел и, на всякий случай, присвоил жестко заданному значению значение CAST ('MasterSystem' as VarChar2(100)) as SOURCE.

Это решило мою конкретную проблему.

person Raj More    schedule 27.02.2013

Я столкнулся с этой проблемой. Вопрос решился удалением начальных и конечных пробелов и функций rtrim и ltrim.

person Alex    schedule 04.02.2015

Я столкнулся с той же проблемой, обновление источника данных не сработало. У меня было материализованное ссылочное измерение для раздела фактов, которое выдавало мне ошибку. В моей среде DEV я снял флажок Materialize и обработал раздел без ошибки.
Как ни странно, теперь я могу включить Materialization для той же связи, и она все равно будет обрабатываться без проблем.

person Treubber    schedule 05.02.2015

Простая вещь, которую нужно попробовать в первую очередь - у меня это случалось несколько раз за эти годы.

  1. Перейдите к представлению источника данных и обновите его (может показаться, что ничего не происходит, но это хорошая практика)
  2. Изменить размер. Удалите атрибут проблемы, а затем снова перетащите его из списка представления источника данных.
  3. Полная повторная обработка.

Как уже упоминалось, причиной могут быть и данные с конечными пробелами. Проверьте их: SELECT col FROM tbl WHERE col LIKE '% '

person user3420568    schedule 12.03.2015

Столкнувшись с той же проблемой, ответ от Esc также может быть решением. Причина гораздо более «скрыта», и более очевидные решения «Обновить» и «Проверка несоответствия типа данных» в моем случае не приносят никакой пользы.

Я не нашел правильного способа «отладки» этой проблемы.

person Fabio Bruna    schedule 20.08.2014