AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 182851
Accepted
mheptinstall
mheptinstall
Asked: 2017-08-08 02:51:04 +0800 CST2017-08-08 02:51:04 +0800 CST 2017-08-08 02:51:04 +0800 CST

Booleano como medida na tabela de fatos ou valor de dimensão/atributo

  • 772

Minha tabela de fatos consiste em reclamações com dimensões típicas de quem, o quê e quando. Temos uma meta de que a reclamação deve ser respondida dentro de um determinado período de tempo.

Não tenho certeza sobre a melhor forma de modelar se a reclamação teve uma resposta dentro desse período de tempo.

Posso armazenar o valor de destino e o resultado na tabela de fatos como números inteiros com o resultado como medida. Ou eu poderia usar uma dimensão que tem valores de sim/não em vez de representar isso como uma medida, eu poderia usar uma medida calculada no meu cubo. Ou eu poderia usar uma combinação de ambos.

Existem prós, contras e pegadinhas modelando os fatos das formas descritas acima?

Prevejo que esta tabela de fatos será usada para obter o número total de reclamações, o número de reclamações respondidas a tempo, a porcentagem respondida a tempo e também identificar reclamações individuais que não foram respondidas a tempo.

data-warehouse dimensional-modeling
  • 1 1 respostas
  • 2562 Views

1 respostas

  • Voted
  1. Best Answer
    JeromeFr
    2017-08-09T01:07:48+08:002017-08-09T01:07:48+08:00

    Aqui está uma maneira flexível de armazená-lo que deve suportar mudanças nos requisitos no futuro.

    • Armazene o destino em uma dimensão como dim_complaint_type. Dessa forma, se no futuro você tiver diferentes tipos de reclamações – por exemplo, Faturamento, Técnico, ... – cada uma delas pode ser categorizada e ter alvos diferentes. Ao aplicar o tipo 2 de dimensões de alteração lenta no atributo de destino, você também pode alterar sua meta de um ano para outro sem alterar o resultado de reclamações anteriores. Você também pode fazer análises hipotéticas alterando o destino em uma dimensão e ver quanto mais/menos estão no prazo.
    • Armazene o tempo de resposta na tabela de fatos, como elapsed_time (inteiro) ou como registration_date e closure_date conforme sugerido nos comentários. Minha preferência vai para registration_date e closure_date com uma coluna calculada elapsed_time que é registration_date - closing_date.

    Para o resultado, eu não o armazenaria como um sinalizador (sim/não), mas como um número. Se você ligar para a coluna on_timee colocar 1 para cada reclamação que atende à meta, poderá facilmente SOMAR nessa coluna para ter o total de reclamações on_time em um período.

    Eu vejo três maneiras de obter o resultado:

    • Não armazená-lo, mas calculá-lo em tempo real em seus relatórios, tendo a mesma fórmula em todos os lugares para verificar se fact_complaint.elapsed_timeé menor ou igual dim_complaint_type.targetou não. Pode ser perigoso se pessoas diferentes usarem fórmulas diferentes. Se você tem uma ferramenta com uma camada de metadados (por exemplo, OBIEE, SAP BO, ...), você pode definir essa medida de resultado de uma vez por todas.
    • Crie uma visualização que una fact_complaint e dim_complaint_type e inclua essa medida de resultado na lista de seleção. Seria definido de uma vez por todas. Mas você precisa ter cuidado com essa abordagem, pois alguma ferramenta de relatório pode não agir da mesma maneira com uma tabela ou visualização. O otimizador de banco de dados também pode não ser capaz de fazer toda a sua mágica da mesma maneira.
    • Na verdade, armazene-o em sua tabela de fatos (ou seja, calcule-o em tempo de ETL). Esta é provavelmente a melhor abordagem em termos de desempenho. Mas é necessário atualizar essa coluna se você alterar o destino de algumas reclamações anteriores.
    • 4

relate perguntas

  • Preciso enumerar as colunas usadas em uma visualização materializada ao criar o log MV?

  • Combinando vendas no varejo e cubos OLAP de pagamento

  • Soluções Open Source Business Intelligence/DWH [fechadas]

  • Criação de Data Warehouse

  • Quais são algumas maneiras de implementar um relacionamento muitos-para-muitos em um data warehouse?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve