Кубы OLAP служб Analysis Services 2005:Могу ли я создать отдельную меру подсчета в столбце nvarchar?

StackOverflow https://stackoverflow.com/questions/320405

  •  11-07-2019
  •  | 
  •  

Вопрос

Я пытаюсь создать куб с одной мерой.Эта мера представляет собой отдельный счетчик столбца «имя».Куб отлично работает, если для меры установлен тип «счет».Однако, когда я устанавливаю отдельный счетчик, я получаю эту ошибку:

«Ошибки в механизме хранения OLAP:Порядок сортировки, указанный для отдельных записей количества, неверен"

Я читал в некоторых блогах, что вы можете иметь отдельные значения только для числового столбца.Я не вижу для этого веской причины и не могу найти эту информацию в официальной документации.Однако это может быть правдой.В любом случае, я действительно застрял в этом вопросе.Какие у меня есть варианты?

Это было полезно?

Решение

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

  1. Перейдите к представлению источника данных в обозревателе решений.
  2. Найдите таблицу, содержащую столбец GUID, который необходимо агрегировать.
  3. Щелкните правой кнопкой мыши заголовок выбранной таблицы и выберите «Создать именованный расчет».
  4. Дайте ему имя
  5. Введите следующее в поле Выражение: CAST (Имя столбца как varchar (36))

Это решение по этой ссылкеhttp://www.bi-dw.info/sql-server-tips/distinct_count-measure-on-uniqueidentifier.htm

Другие советы

Google и в частности Eggheadcafe пришли на помощь с решением:

  • Подключитесь к службам Analysis Services из SQL Server Management Studio.
  • Щелкните правой кнопкой мыши имя сервера служб Analysis Services (т. е. самую верхнюю ссылку служб Analysis Services).
  • Выберите недвижимость
  • Установите флажок «Показать дополнительные (все) свойства».
  • Найдите следующий параметр
  • OLAP\Процесс\CheckDistinctRecordSortOrder
  • Установите это значение на 0
  • Нажмите ОК
  • Откройте OLAP в Visual Studio или BIDS.
  • Обработайте куб.

Отвечу себе, может кому-то это будет полезно.

Короткий ответ: да.

Я создал несколько тестовых таблиц с той же структурой, но с несколькими тестовыми строками.Куб прекрасно работает с этими данными.

Итак, я предполагаю, что в исходных таблицах есть какие-то поврежденные данные или, может быть, какие-то редкие символы.

Вы правы, вы можете выполнить отдельный подсчет столбца nvarchar.

Это может быть связано со странными символами или с настройками сортировки.

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

Это может быть связано с настройками сортировки.Сервер Sql по умолчанию имеет SQL_Latin1_General_CP1_CI_AS, где в качестве SSAS используется сопоставление Windows Latin1_General.Если вы измените параметры сортировки в столбце, в котором вы выполняете отдельный подсчет, я думаю, это решит проблему.

У меня возникла проблема с попыткой четкого подсчета столбца INT ID.Потратив много времени на просмотр настроек «Неизвестный элемент» и настроек использования измерений, я нашел еще одно предположение о том, что измерениям Distinct Count не нравятся значения NULL.Добавление WHERE COLUMN IS NOT NULL к запросам разделов для этой отдельной группы показателей количества решило мою проблему.

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

Убедитесь, что столбец Differentcount не содержит значений NULL.Если это так, их можно исключить из группы мер с помощью запроса в определении секции (при условии, что мера подсчета уникальных объектов находится в отдельной группе мер)"

Дерби дал правильный ответ в моей ситуации.В моем случае я пытался обработать модель интеллектуального анализа данных в SSDT (VS 2012) и получил ошибку.

Ошибка началась после того, как я внес некоторые исправления в запрос, создавший таблицу, которую я использовал в качестве источника данных.Я предполагаю, что где-то были введены NULL-значения, которых у меня не было до того, как я внес исправления в свой запрос и, следовательно, в исходную таблицу (до этого модель интеллектуального анализа обрабатывалась нормально).Я не могу проголосовать за Дерби из-за моей репутации нуба.

Я столкнулся с той же проблемой и обнаружил, что в моих данных были специальные символы/символы, которые не позволяли обрабатывать куб.Скорее всего, куб не смог отсортировать данные со специальными символами.

Мне удалось решить проблему, преобразовав данные в строку хэш-байтов, используя следующую функцию:

SUBSTRING(master.dbo.fn_varbintohexstr(HashBytes('MD5', [column_name])), 3, 32)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top