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 / 15140
Accepted
HelloWorld1
HelloWorld1
Asked: 2012-03-17 00:35:48 +0800 CST2012-03-17 00:35:48 +0800 CST 2012-03-17 00:35:48 +0800 CST

Usando N-Tier em Business Intelligence

  • 772

Eu li que você também pode aplicar N-Tier para Businesss Intelligence com base nestes critérios: *Apresentação
*Lógica funcional
*Dados

Qual é a sua experiência quando você está usando o N-Tier?

// Fullmetalboy

sql-server data-warehouse
  • 1 1 respostas
  • 474 Views

1 respostas

  • Voted
  1. Best Answer
    ConcernedOfTunbridgeWells
    2012-03-19T02:35:10+08:002012-03-19T02:35:10+08:00

    N-Tier pode ser um termo hipócrita

    Acho que o termo 'N-tier' é hipócrita quando usado no contexto de um sistema de business intelligence. Em sistemas transacionais, 'N-Tier' descreve um sistema distribuído com um servidor de aplicativos, ESB ou alguma outra camada intermediária em rede. Os sistemas de armazenamento de dados não funcionam de maneira análoga a isso, portanto, o termo provavelmente gera confusão.

    Separando dados e lógica funcional

    Você pode construir um sistema em termos de dados o mais bruto possível e, em seguida, colocar uma camada de transformação nele, que é então consumida por uma camada de relatórios. A camada de transformação pode assumir a forma de:

    • Uma série de exibições de banco de dados.

    • Uma camada de metadados da ferramenta de relatório (por exemplo, um modelo de relatório ou um universo de objetos de negócios). Uma categoria de ferramentas conhecida como 'Enterprise Information Integration' estende a noção da camada de metadados para algo como uma ferramenta ETL na memória, permitindo que a camada lógica funcional ou de relatórios implemente transformações complexas. No entanto, essa abordagem é difícil de implementar e não é amplamente usada, a menos que algo impeça a implementação de uma arquitetura ETL mais convencional.

    • Um conjunto de data marts com seu próprio ETL.

    Isso forneceria as camadas 'Dados', 'Lógica Funcional' e 'Apresentação' conforme seu exemplo. Alguns sistemas de data warehouse são implementados um pouco assim, embora (pelo menos IMHO) seja uma espécie de antipadrão. Alguns problemas com o push downstream da lógica de negócios do seu ETL incluem:

    • Dependendo dos recursos de seu meio lógico funcional, os possíveis recursos transformadores podem ser limitados, resultando em abstrações com vazamentos que limitam o valor de qualquer recurso de relatório ad hoc colocado acima deles. As ferramentas ad hoc precisam de dados limpos que se comportem de forma consistente, e os dados realmente precisam estar em um formato compatível com a ferramenta.

      Se os dados não forem consistentes, limpos e no formato correto, você estará efetivamente limitado a relatórios SQL personalizados dos dados ou à construção de data marts suplementares para oferecer suporte a instalações ad hoc. Contar com data marts tende a proliferar um grande volume de processos ETL terciários ad-hoc com funcionalidade sobreposta, mas sutilmente inconsistente. Isso tende a gerar problemas de reconciliação e qualidade de dados e falha em fornecer uma 'fonte única da verdade'.

      Geralmente, essa situação gera uma grande carga de trabalho de manutenção e diminui a confiança da comunidade de usuários.

    • Um esquema de banco de dados que não é otimizado para geração de relatórios pode ter um desempenho insatisfatório.

    • 'Dados brutos' implica que os dados são mantidos em uma forma bastante isomórfica à fonte, que é mutuamente exclusiva com qualquer noção de dados conformados.

    • 'Dados brutos' também estão normalmente disponíveis nas áreas de teste e arquivamento, se necessário para auditoria. Você terá uma classe de usuários avançados que 'querem apenas os dados', e essas pessoas podem ter muita influência política. Permitir que isso continue ao lado de um projeto de data warehouse falha no objetivo de 'fonte única da verdade'.

      Se o warehouse tiver um mecanismo de dados adequado (por exemplo, um armazenamento de dados operacionais), ele deverá fornecer a fonte única. Lidar com definições conflitantes e comunidades de usuários que insistem em seus próprios sistemas simplificados é um tópico completo em si.

    No entanto, isso é mais comum do que se poderia esperar. Acho que o principal motivo pelo qual encontramos projetos de data warehouse implementados dessa maneira é que as ferramentas ETL são bastante complicadas de se trabalhar se seus requisitos de lógica de transformação forem complexos. As ferramentas ETL muitas vezes têm o efeito de simplificar a arquitetura e forçar a lógica na camada de relatórios, o que degrada significativamente a eficácia da iniciativa de data warehouse. O volume de trabalho e a presença de um banco de dados central dão a ilusão de um data warehouse, ao mesmo tempo em que oferecem poucos benefícios.

    Outra visão de N camadas de um data warehouse

    Pode-se interpretar 'Dados', 'Lógica Funcional' e 'Apresentação' como um ETL e processo de relatório em um sistema de data warehouse mais bem organizado. Nesse caso, 'Dados' podem ser interpretados como a camada de preparação, 'Lógica Funcional' implementada no ETL, apresentando um armazenamento de dados dimensional e/ou conjunto de data marts e 'Relatórios' implementados por meio de relatórios e consultas ad-hoc suíte.

    Considerado prejudicial

    Por esse motivo, acho que o conceito de 'N-tier' é inútil e até um pouco falso. Parece muito com algo que uma empresa de middleware ou consultoria pode descrever em um white paper - uma noção teórica falha e até um tanto enganosa que soa bem no papel.

    • 1

relate perguntas

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

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

  • Como determinar se um Índice é necessário ou necessário

Sidebar

Stats

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

    Como ver a lista de bancos de dados no Oracle?

    • 8 respostas
  • Marko Smith

    Quão grande deve ser o mysql innodb_buffer_pool_size?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    restaurar a tabela do arquivo .frm e .ibd?

    • 10 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

    Como selecionar a primeira linha de cada grupo?

    • 6 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
    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
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +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
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +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