Respostas:
Pense em um processo ou evento que você deseja analisar.
Digamos que você estava criando o Lougle Analytics e deseja analisar as visitas (em vez de solicitações de página única) ao seu site. Visitar um site é um processo.
Uma tabela de fatos representa um processo ou evento que você deseja analisar; nesse caso, é uma lista de visitas ao site. Você pode ter quantas tabelas de fatos desejar, uma por processo ou evento.
Que coisas podem ser úteis para você na análise de visitas ao site?
Tecnicamente, você pode colocar tudo isso em uma tabela - como faria no Excel, mas isso ficaria muito grande rapidamente, então faremos UM nível de normalização. O design dimensional costuma ser apenas "colocar tudo o que você precisa para uma análise em uma grande tabela" e depois normalizar um nível.
Portanto, sua tabela de fatos ficará assim:
web_browser_key bigint
ip_address_key bigint
start_date_key int
referring_page_key bigint
landing_page_key bigint
exit_page_key bigint
duration_seconds int
number_of_pages_visited int
Ele possui vários valores de chave que se referem a valores em outras tabelas † e duas não chaves. As não chaves são valores numéricos e são chamadas de Medidas . Você pode calcular a média da marca do navegador da web? Não, então é uma dimensão. Você pode calcular a média da duração da visita? Sim, é uma medida.
As outras tabelas são chamadas de tabelas de dimensões , e a ip_address
tabela de dimensões pode ficar assim:
ip_address_key bigserial primary key, /* use meaningless surrogate keys */
ip_address inet unique,
country text,
division text,
locality text,
latitude numeric(8,6),
longitude numeric(9,6)
Observe que isso não está normalizado: o país pode ser derivado da cidade (localidade). No entanto, em um data warehouse, nos preocupamos em facilitar a análise primeiro. Ao facilitar a análise, quero dizer evitar junções profundas.
Observe que alguns dos dados na tabela de dimensões são hierárquicos : país> divisão> localidade. Seu servidor OLAP (espero) entende hierarquias para dar suporte a operações de drill down.
Um cubo lógico é apenas a coleção de dimensões e medidas com as quais você está trabalhando. Ao contrário do cubo de Rubik, ele pode ter mais de 3 dimensões. Pense em uma dimensão como uma coluna no seu conjunto de dados.
OLAP é um conjunto de operações que você pode executar em um conjunto de dados, como rotação, corte, corte e perfuração. Pense nas Tabelas Dinâmicas do Excel. Um servidor OLAP facilita as operações OLAP.
† geralmente sem chaves estrangeiras
Na imagem abaixo, é um exemplo de um esquema estrela básico. As dimensões são as Dim_Tables.
Esses geralmente são os valores pelos quais você deseja analisar os dados. Então, você deseja analisar as vendas de um determinado produto, em um país específico, em um período específico.
Na tabela fact_sales, você tem apenas uma medida que é Units_Sold.
Medidas (no nível mais simples) são apenas as coisas que você deseja agregar ao analisar com base em critérios nas dimensões.
Se houver algo mais específico que você gostaria de saber, entre em contato.
city
em seus esquemas; portanto, quando você dizcountry could be derived from city
que não sou positivo, o que você quer dizer.