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 / 137971
Accepted
Luan Huynh
Luan Huynh
Asked: 2016-05-10 02:14:13 +0800 CST2016-05-10 02:14:13 +0800 CST 2016-05-10 02:14:13 +0800 CST

Quantas dimensões de data para um fato

  • 772

Sobre como projetar o esquema em estrela: tenho três colunas de data em uma tabela de fatos fact_table (insert_date, trade_date, close_date ...). E não sei quantas dimensões de data devem ser criadas?

insira a descrição da imagem aqui

Caso 1: Dim A . Isso significa: uma linha @fact_table tem três FKs para A.

Caso 2: Dim A (para insert_date), Dim B (trade_date), Dim C (close_date). Isso significa: uma linha @fact_table tem um FK para A, um FK para B e um FK para C .

Pergunta : Quantas dimensões de data devem ser criadas?

data-warehouse
  • 2 2 respostas
  • 12384 Views

2 respostas

  • Voted
  1. Best Answer
    Yassine LD
    2016-05-10T03:43:34+08:002016-05-10T03:43:34+08:00

    Uma dimensão representa uma categoria de informação: por exemplo, data, produto... no seu caso, você tem três atributos na tabela de fatos referentes ao mesmo eixo de análise que é 'DATA', portanto, se você estiver usando um esquema em estrela, apenas uma dimensão de data é necessário, esta é uma implementação de representação de função de dimensão .
    Existem implementações de RPG em duas dimensões:

    • O tipo de alias de tabela usa a dimensão mais de uma vez em uma instrução SQL atribuindo um alias para cada uso.

    • O tipo de visualização do banco de dados , você cria tantas visualizações quanto o número de funções que você precisa na dimensão do fato.

    Você precisa de apenas uma dimensão de data, por exemplo: o 'tipo' de dimensão de data será mencionado na tabela de fatos como acima. insira a descrição da imagem aqui

    Atualizada :

    Modelando Dimensões de Data e Hora
    Deve haver apenas uma dimensão de Data e uma dimensão de Tempo em todos os fatos e tabelas de dimensão. Nem todos os campos de data e hora precisavam ser mapeados para dimensões de data e hora. Mapeie um campo de data e hora para uma dimensão Data ou Hora somente quando precisar dos atributos extras da dimensão.
    Normalmente, a granularidade mais baixa da dimensão Date é Day, e a granularidade mais baixa da dimensão Time é Second. Muitos warehouses não precisam de uma dimensão Time, mas uma dimensão Date é usada em praticamente todos os sistemas de data warehouse.
    Em geral, crie dimensões separadas para Data e Hora.
    Se for necessário extrair blocos de tempo contíguos que cruzam os limites do dia (por exemplo11/24/2000 10 p.m. to 11/25/2000 6 a.m.), será mais fácil se a hora e o dia estiverem na mesma dimensão. Caso contrário, dimensões separadas para Datee Timesão mais fáceis de gerenciar e consultar.
    É mais fácil analisar eventos diários cíclicos e recorrentes se Data e Hora forem dimensões separadas.
    Exemplo: Número de reuniões ativas às 9h desta semana. Essa é uma consulta fácil se Data e Hora estiverem separados; é muito mais complexo se Data e Hora forem combinados em uma única dimensão. A seguir estão os problemas de ter dimensões de data e hora juntas em uma dimensão de data/hora:

    Problema 1:

    • A combinação de Data e Hora em uma única dimensão cria uma dimensão extremamente grande, principalmente se você usar Segundos como a granulação. O problema não é tão grande se você usar Hour como o grão da tabela combinada.
    • Cardinalidade das dimensões de data e hora (separadas) para 10 anos de dados Dimensão de data: 10 * 365 = 3650 Dimensão de tempo (granularidade:
      segundos): 24 * 60 * 60 = 86400
    • Cardinalidade das dimensões de data e hora (combinadas) para 10 anos de dados Dimensões DateTime (granularidade por hora): 10 * 365 * 24 = 87600
      Dimensões DateTime (granularidade Segundos): 10 * 365 * 24 * 60 * 60 =
      315.360.000

    Quanto mais registros na dimensão DateTime, mais lento será o desempenho da consulta.

    Problema nº 2
    Ter as dimensões de data e hora na mesma dimensão pode causar problemas de interpretação para tabelas de fatos com granularidade de um dia. Seria fácil inserir inadvertidamente dois registros na tabela de fatos para o mesmo dia, devido à granularidade extra na tabela de dimensões.

    Saiba mais: fonte

    • 10
  2. Luan Huynh
    2016-05-10T08:07:19+08:002016-05-10T08:07:19+08:00

    Eu encontrei a resposta.

    Este conceito é chamado de Dimensões de Interpretação de Papéis

    Uma única dimensão física pode ser referenciada várias vezes em uma tabela de fatos , com cada referência vinculada a uma função logicamente distinta para a dimensão. Por exemplo, uma tabela de fatos pode ter várias datas, cada uma delas representada por uma chave estrangeira para a dimensão de data. É essencial que cada chave estrangeira se refira a uma exibição separada da dimensão de data para que as referências sejam independentes. Essas exibições de dimensão separadas (com nomes de colunas de atributos exclusivos) são chamadas de funções.

    Da resposta de mmarie em stack-overflow .

    Exemplo

    insira a descrição da imagem aqui

    • 1

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