Analysis Services 2005 OLAP Cubes: Can I criar uma medida de contagem distinta sobre uma coluna nvarchar?

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

  •  11-07-2019
  •  | 
  •  

Pergunta

Eu estou tentando criar um cubo com uma única medida. Esta medida é uma contagem distinta de uma coluna "nome". O cubo funciona perfeitamente, se a medida é definida como tipo "contagem". No entanto, quando eu definir contagem distinta eu recebo este erro:

"erros no mecanismo de armazenamento OLAP: A ordem de classificação especificada para registros de contagem distintas está incorreto"

Eu li em alguns blogs que você só pode ter uma contagem distinta em uma coluna numérica. Eu não posso ver uma boa razão para isso, e eu não posso encontrar essa informação na documentação oficial. No entanto, isso pode ser verdade. De qualquer forma, eu realmente estou preso com esta questão. Quais são as minhas opções?

Foi útil?

Solução

minha resposta pode ser tarde demais para você, mas espero que isso pode ajudar outros que têm o mesmo problema.

  1. Vá para a exibição da fonte de dados no Solution Explorer
  2. Encontre uma tabela que contém a coluna GUID que precisa ser agregada
  3. Clique com o botão direito do mouse sobre o cabeçalho da tabela selecionada e selecione 'Criar cálculo nomeado'
  4. Dê um nome
  5. Digite o seguinte no campo Expressão: CAST (ColumnName como varchar (36))

Esta solução é a partir deste link http://www.bi-dw.info /sql-server-tips/distinct_count-measure-on-uniqueidentifier.htm

Outras dicas

Google e em particular Eggheadcafe veio para o resgate com uma solução:

  • Conectar para Analysis Services do SQL Server Management Studio
  • clique direito sobre o nome Analysis Services Server (ou seja, o mais alto de ligação Analysis Services)
  • Escolha propriedades
  • Verifique Mostrar Avançado (All) Propriedades
  • Encontre a seguinte configuração
  • Processos OLAP \ \ CheckDistinctRecordSortOrder
  • Definir este valor para 0
  • Clique em OK
  • Abra o seu OLAP no Visual Studio ou lances.
  • processar o cubo.

Vou me responder, talvez isso seja útil para alguém.

A resposta curta é sim.

Eu criei algumas tabelas de teste com a mesma estrutura, mas apenas algumas linhas de teste. O cubo funciona perfeitamente com esses dados.

Então, acho que existem alguns dados corrompidos nas tabelas originais, ou talvez alguns chars raras.

Você está certo, você pode fazer uma contagem distinta em uma coluna nvarchar.

Ele poderia ser algo a ver com caracteres estranhos ou com sua configuração de agrupamento.

Você poderia tentar processar subconjuntos menores do grupo de medidas para tentar isolar uma linha problema.

Pode ser devido às configurações de agrupamento. sql server tem por SQL_Latin1_General_CP1_CI_AS padrão onde, como o SSAS usa Windows Agrupamento Latin1_General. Se você alterar o agrupamento na coluna na qual você está fazendo a distinta contagem eu acho que vai resolver o problema

Eu tive esse problema tentando fazer uma contagem distinta em uma coluna INT ID. Depois de passar as idades olhando para configurações Desconhecido Estados e configurações de uso de dimensão, encontrei outra sugestão de que as medidas de contagem distintas não gostam valores NULL. Adicionando ONDE coluna não é NULL para as consultas de partição para este grupo medida de contagem distinta resolveu o meu problema.

Esta foi a sugestão: "Erros no mecanismo de armazenamento OLAP:. A ordem de classificação especificada para registros de contagem distintas está incorreta

Verifique se a coluna DistinctCount não contém valores nulos. Se isso acontecer, estes podem ser omitidos do grupo de medidas através de uma consulta na definição de partição (assumindo que a medida de contagem distinta é em seu próprio grupo de medidas) "

Derby deu a resposta correta na minha situação. No meu caso, eu estava tentando processar um modelo de mineração no SSDT (VS 2012) e eu estava recebendo o erro.

O erro começou depois que eu fiz algumas correções a uma consulta que gerou uma tabela eu usei como minha fonte de dados. Meu palpite é que ele introduziu algumas NULLS em algum lugar que eu não tinha antes de fazer as correções à minha consulta, e, portanto, a tabela de origem (o modelo de mineração processado muito bem antes disso). Eu sou incapaz de votar até Derby devido a minha reputação de noob.

Eu estava enfrentando o mesmo problema e eu achei que havia caracteres especiais / símbolos em meus dados que impedidos de processar o cubo. Muito provavelmente, o cubo não foi capaz de classificar os dados com caracteres especiais.

Eu era capaz de resolver o problema convertendo os dados em seqüência hashbyte usando seguinte função:

SUBSTRING(master.dbo.fn_varbintohexstr(HashBytes('MD5', [column_name])), 3, 32)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top