Configurei uma conexão de fonte de dados para o banco de dados Adventure Works DW usando as credenciais do serviço.
Estou criando uma dimensão usando a DimDate
tabela. Para simplificar as coisas, estou usando apenas as colunas Calendar Quarter
, Calendar Year
, Day Number of Month
, English Month Name
e .Date Key
Cada um desses atributos foi definido como AttributeHierarchyVisible = False
.
Arrastei o Calendar Year
into Hierarchies
seguido por Calendar Quarter
, English Month Name
, Day Number of Month
.
Eu defino o atributo Relationships para:
Tecla de data -> Número do dia do mês -> Nome do mês em inglês-> Trimestre do calendário -> Ano civil
Todos os relacionamentos são definidos como rigid
.
Quando tento implantar essa configuração, recebo os seguintes erros:
Erro 2 Erro interno: a operação foi encerrada sem sucesso. 0 0
Erro 3 Servidor: A operação atual foi cancelada porque outra operação na transação falhou. 0 0
Também recebo este aviso:
Aviso 1 Erros no mecanismo de armazenamento OLAP: Uma chave de atributo duplicada foi encontrada durante o processamento: Tabela: 'dbo_DimDate', Coluna: 'CalendarQuarter', Valor: '2'. O atributo é 'Calendário Trimestre'. 0 0
Não consigo descobrir o que está acontecendo ou por que isso está dando erro. O livro que estou usando me deu as etapas listadas acima e o Google falhou comigo até agora (uma coisa muito assustadora).
Qualquer ajuda que vocês possam me dar para me ajudar a descobrir o que estou fazendo de errado seria muito apreciada.
Sinto que você está tratando os sintomas e não a causa suprimindo os erros.
Se esses dados se parecerem com:
então o Analysis Services vai realmente ficar com a corcunda, pois
Q2
terá umaQ2
alimentação de 2000 e 2001, etc.Você deve garantir que a hierarquia consista em chaves exclusivas, por exemplo:
Você pode usar campos diferentes para a
Name
propriedade de cada atributo, mas use as chaves para as chaves. Ah, e se você classificar por chave no mês, isso impedirá a classificação clássica de meses em ordem alfabética.Isso vai causar problemas com sua dimensão. Mais importante, seu cubo dará respostas incorretas.
Ignorar erros de processamento nunca é uma boa ideia. Este é um problema muito simples de corrigir. Você só precisa definir seus atributos-chave corretamente. Por padrão, o SSAS usará a mesma coluna para nome e chave.
Normalmente, o único atributo que deve ser configurado dessa forma é a chave verdadeira (há exceções). A coluna que é exclusiva em todos os registros. Pela sua postagem, acho que é isso
DateKey
.O restante de seus atributos deve usar chaves compostas.
Para ver os problemas com seu cubo, defina
AttributeHierarchyVisible = True
e brinque com os dados. O SSAS está confuso sobre o que você está tentando fazer.ol penney lhe forneceu a resposta correta . Isso também pode ajudar: Uma chave de atributo duplicada foi encontrada durante o processamento… por Hilmar Buchta.
Muitas vezes encontrei erros relatados do SSAS indicando um valor de chave duplicado na dimensão. Quando revisei os dados de origem, as duplicatas não foram encontradas. Embora eu não possa esclarecer por que esse erro está aparecendo na dimensão, posso oferecer uma solução que ignora o erro e permite que o cubo conclua a implantação e o processamento.
Se você abrir o objeto de dimensão e examinar as propriedades, verá uma seção para ErrorConfiguration. Se você alterar isso para "personalizado", poderá informar ao SSAS o que fazer quando encontrar erros no processamento do objeto. Se você deseja registrar o erro e permitir que o processamento continue, use "ReportAndContinue" como o valor para propriedades como KeyDuplicate, KeyNotFound, NullKeyConvertedToUnknown, NullKeyNotAllowed - o que for apropriado para seu design. Eu defino o KeyErrorLimit como 1 e defino o KeyErrorLimitAction como StopLogging para que seus arquivos de log não fiquem sobrecarregados com os mesmos erros ou erros semelhantes.
Como eu disse, isso não RESOLVE o problema, mas permite que o cubo continue processando e, às vezes, descobri que é o suficiente.
Em caso de chaves duplicadas e para fazer o que Ol Penny propôs:
Na aba de atributos, selecionando a coluna do trimestre do calendário e pressionando f4 obtemos sua janela de propriedades. Lá, vá para a propriedade keyColumns e adicione o ano do calendário junto com o trimestre do calendário. Quando fazemos isso, obtemos um erro no atributo do trimestre do calendário, pois fornecemos mais de uma coluna em keyColumns. Agora vá para a propriedade NameColumn e mude de nenhum para trimestre do calendário. Assim o erro será resolvido.