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

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

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

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


person rgargente    schedule 26.11.2008    source источник


Ответы (8)


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

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

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

person Community    schedule 10.02.2009
comment
+1 Избавил меня от головной боли ... Удивлен, что это невозможно без обходного пути. - person Meff; 13.02.2009

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

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

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

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

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

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

person rgargente    schedule 26.11.2008

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

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

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

person Darren Gosbell    schedule 02.02.2009

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

person Community    schedule 02.02.2009

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

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

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

person Davos    schedule 09.12.2013

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

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

person user3246543    schedule 02.07.2015

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

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

SUBSTRING(master.dbo.fn_varbintohexstr(HashBytes('MD5', [column_name])), 3, 32)
person pso    schedule 07.09.2016