Pergunta

É um projeto essencial Star-Schema para um data warehouse? Ou você pode fazer armazenamento de dados com outro padrão de design?

Foi útil?

Solução

Usando esquemas estrela para um sistema de armazenamento de dados você recebe vários benefícios e, na maioria dos casos é apropriar-se para usá-los para a camada superior. Você também pode ter uma loja de dados operacionais (ODS) - uma estrutura normalizada que mantém 'estado atual' e facilita as operações tais como a conformação de dados. No entanto, existem situações razoáveis ??onde isso não é desejável. Eu tive a oportunidade de construir sistemas com e sem camadas ODS, e tinha razões específicas para a escolha da arquitetura em cada caso.

Sem entrar em subtlties da arquitetura de data warehouse ou iniciar uma guerra Kimball vs. Inmon chama os principais benefícios de um esquema em estrela são:

  • A maioria dos sistemas de gerenciamento de banco de dados tem instalações no otimizador de consultas fazer 'Star Transformations' que utilizar estruturas href="http://en.wikipedia.org/wiki/Bitmap_index" ou Index Intersection para rápido predicado resolução. Isto significa que a seleção de um esquema em estrela pode ser feito sem bater a tabela de fatos (que normalmente é muito maior do que os índices) até que a seleção seja resolvido.

  • Partitioning um esquema em estrela é relativamente simples como só a tabela de fatos precisa ser particionado (a menos que você tem algumas biblicamente grandes dimensões). eliminação de partição significa que o otimizador de consulta pode ignorar patitions que não poderia participar nos resultados da consulta, o que poupa em I / o.

  • dimensões de mudança lenta são muito mais fáceis de implementar em um esquema em estrela de um floco de neve .

  • O esquema é mais fácil de entender e tende a envolver menos une do que um floco de neve ou esquema ER. Sua equipe de reportagem vai te amo por isso

  • Estrelas esquemas são muito mais fáceis de usar e (mais importante) fazer um bom desempenho com ferramentas de consulta ad-hoc, como Business Objects ou Report Builder . Como um desenvolvedor você tem muito pouco controle sobre o SQL gerado por essas ferramentas para que você precisa dar o otimizador de consulta de toda a ajuda possível. Estrelas esquemas dar o otimizador de consulta relativamente pouca oportunidade de errar.

Normalmente a sua camada de relatórios usaria esquemas estrela a menos que você tenha um motivo específico para não. Se você tem vários sistemas de origem você pode querer implementar um Operacional Data Store com um esquema normalizado ou floco de neve para acumular os dados. Este é mais fácil porque um ODS normalmente não faz história. Histórico do Estado é monitorado em esquemas estrela, onde este é muito mais fácil de fazer do que com estruturas normalizados. A Operational Data Store normalizada ou Snowflaked reflete estado 'atual' e não têm uma visão histórica acima de qualquer que é inerente ao dados.

processos de carga ODS estão preocupados com os dados esfregando e em conformidade, o que é mais fácil fazer com uma estrutura normalizada. Depois de ter dados limpos em um ODS, dimensão e de fatos cargas podem rastrear o histórico (mudanças ao longo do tempo), com mecanismos genéricos ou relativamente simples relativamente simples; este é muito mais fácil de fazer com um esquema em estrela, Muitas ferramentas de ETL (por exemplo) fornecer built-in instalações para lentamente changing dimensões e implementar um mecanismo genérico é relativamente simples.

Mergulhar o sistema desta maneira providies uma separação de responsabilidades -. Negócios e dados de limpeza lógica é tratado nas ODS e as cargas de esquema estrela lidar com o estado histórico

Outras dicas

Há um debate em curso na literatura datawarehousing sobre , onde no datawarehouse-arquitetura do projeto Star-Schema deve ser aplicada.

Em defensores curto Kimball muito bem para usar apenas o design Star-Schema no datawarehouse, enquanto Inmon primeiro quer construir um Enterprise Datawarehouse utilizando normalizada 3NF projetar e depois usar o design Star-Schema nos datamarts.

Além aqui para você também poderia dizer que Snowflake design do esquema é uma outra abordagem.

Um quarto projeto poderia ser a abordagem Data Vault Modeling .

Star esquemas são usados ??para permitir o acesso de alta velocidade para grandes volumes de dados. O alto desempenho está habilitado, reduzindo a quantidade de junções necessário para satsify qualquer consulta que pode ser feito contra a área de assunto. Isso é feito por permitindo a redundância de dados em tabelas de dimensão.

Você tem que lembrar que o esquema em estrela é um padrão para a camada superior para o armazém. Todos os modelos também envolver encenação esquemas na parte inferior da pilha de armazém, e alguns também incluem uma persistente transformado fundiu área onde todos os sistemas de origem são mescladas em um esquema 3NF modelado encenação. As várias áreas sentar-se acima desta.

Alternativas para estrelar esquemas no nível superior incluem uma variação, que é um esquema floco de neve. Um novo método que pode suportar alguma investigação bem é Data Vault Modeling proposto por Dan Linstedt.

A coisa sobre esquemas estrela é que eles são um modelo natural para os tipos de coisas que a maioria das pessoas quer fazer com um data warehouse. Por exemplo, é fácil de produzir relatórios com diferentes níveis de granularidade (mês ou dia ou do ano, por exemplo). Também é eficiente para inserir dados de negócios típicos em um esquema em estrela, novamente um comum e característica importante de um armazém de dados.

Você certamente pode usar qualquer tipo de banco de dados que quiser, mas se você não sabe o seu domínio de negócio muito bem, é provável que seus relatórios não será executado de forma tão eficiente quanto podiam se você tivesse usado um esquema em estrela.

Star esquemas são um ajuste natural para a última camada de um data warehouse. Como você chegar lá é outra questão. Tanto quanto eu sei, há dois grandes campos, os de Bill Inmon e Ralph Kimball. Você pode querer olhar para as teorias desses dois caras se / quando você decidir ir com uma estrela.

Além disso, algumas ferramentas de relatórios realmente como a configuração do esquema em estrela. Se você está trancado em uma ferramenta de relatório específico, que pode conduzir o que os olhares relatórios mart como em seu armazém.

esquema Star é um modelo lógico de dados para bancos de dados relacionais que se ajusta aos dados regulares armazenagem necessidades; se o ambiente relacional é dada, uma estrela ou um esquema floco de neve será um bom padrão de design, hard-wired em lotes de metodologias de projeto de DW.

No entanto, existem outros motores que não banco de dados relacional também, e eles podem ser usados ??para armazenamento de dados eficiente. mecanismos de armazenamento multidimensional pode ser muito rápido para tarefas OLAP (TM1 por exemplo.); não podemos aplicar design de esquema em estrela neste caso. Outros exemplos que requerem modelos lógicos especiais incluem bases de dados XML ou bases de dados orientado por colunas (por ex. O experimental C-loja ) ).

É possível fazer sem. No entanto, você vai tornar a vida difícil para si mesmo - a sua organização vai querer usar ferramentas padrão que vivem no topo da DWS, e essas ferramentas vai esperar um esquema em estrela - muito esforço será gasto montagem de uma peça quadrada em uma rodada buraco.

Um monte de otimizações de nível de banco de dados assumir que você tem um esquema em estrela; você vai gastar um monte de tempo para otimizar e reestruturação para obter o DB para fazer "a coisa certa", com o seu layout não-muito-estrela.

Certifique-se de que os prós superam os contras ..

(soa como eu estive lá antes?)

D

Há três problemas que precisamos resolver.

1) Como obter os dados do sistema de origem operacional sem colocar pressão indevida sobre eles juntando mesas dentro e entre eles, limpeza de dados como extraímos, criando derivações etc.

2) Como mesclar dados de fontes diferentes - alguns legado, alguns arquivos baseado, de diferentes departamentos em uma integral, preciso, eficiente armazenado todo que os modelos de negócio, e não reflete as estruturas dos sistemas de origem. Lembre-se, a mudança de sistemas / são substituídos de forma relativamente rápida, mas o modelo básico do negócio muda lentamente.

3) Como estruturar os dados para atender específica de análise e requisitos de notificação para determinadas pessoas / departamentos no negócio como rapidez e precisão possível.

A solução para estes três problemas muito diferentes requerem diferentes camadas de arquitetura para resolvê-los

Layer Staging Nós replicar as estruturas das fontes, mas só mudou dados das fontes são carregados cada noite. uma vez que os dados são obtidos a partir da camada de armazenamento temporário para a camada seguinte, os dados são descartados. As consultas são consultas de mesa única com um filtro data_time simples. Muito pouco efeito sobre a fonte.

Empresa Camada Este é um terceiro banco de dados de forma normal orientada para negócios. Os dados são extraídos (e depois caiu) a partir da camada de armazenamento temporário para a camada de empresa, onde é limpa, integrada e normalizada.

Apresentação (Star Schema) Camada Aqui, nós modelar dimensionalmente para atender necessidades específicas. Dados é deliberadamente de-normalize para reduzir o número de junções. Hierarquias que podem ocupar várias mesas na empresa Camada são recolhidos em um único tabelas de dimensões, e várias tabelas transacionais podem ser mescladas em tabelas de fatos individuais.

Você sempre enfrentar estes três problemas. Se você optar por acabar com a camada empresa, você ainda tem que resolver o segundo problema, mas você tem que fazê-lo na camada de esquema em estrela, e na minha opinião, este é o lugar errado para fazê-lo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top