Uma coleção completa de convenções de nomenclatura para data warehouses!

01 Camada de Dados

1. Camada de operação de dados: ODS (Operational Data Store)

A camada ODS é a camada mais próxima dos dados na fonte de dados. Para considerar a possível rastreabilidade dos dados subsequentes, não é recomendável fazer muito trabalho de limpeza de dados para esta camada, basta acessar os dados originais intactos. Quanto ao redução de ruído de dados, desduplicação, processamento de outliers e outros processos, isso pode ser feito na seguinte camada DWD.

Em segundo lugar, a camada de data warehouse: DW (Data Warehouse)

A camada de data warehouse é a camada de design central quando estamos fazendo o data warehouse. Aqui, os dados obtidos da camada ODS são usados ​​para estabelecer vários modelos de dados de acordo com os temas. A camada DW é subdividida em camada DWD (Data Warehouse Detail), camada DWM (Data WareHouse Middle) e DWS (Data WareHouse Service).

1. Camada de detalhes de dados: DWD (Data Warehouse Detail)

Essa camada geralmente mantém a mesma granularidade de dados que a camada ODS e fornece certa garantia de qualidade de dados.

O que a camada DWD precisa fazer é limpar, integrar, normalizar dados, dados sujos, dados inúteis, especificações inconsistentes, definições de estado inconsistentes e dados com nomes irregulares serão todos processados.

Ao mesmo tempo, para melhorar a usabilidade da camada de detalhes de dados, esta camada usará alguns métodos de degeneração de dimensão para degenerar a dimensão na tabela de fatos e reduzir a associação entre a tabela de fatos e a tabela de dimensões. Além disso, parte da agregação de dados será feita nesta camada, e os dados do mesmo assunto serão reunidos em uma tabela para melhorar a disponibilidade de dados.

2. Camada intermediária de dados: DWM (Data WareHouse Middle)

Essa camada executará operações de agregação leves nos dados com base nos dados da camada DWD, gerará uma série de tabelas intermediárias, melhorará a capacidade de reutilização de indicadores públicos e reduzirá o processamento repetido. Intuitivamente falando, é agregar dimensões centrais comuns e calcular indicadores estatísticos correspondentes.

No cálculo real, se os indicadores estatísticos de tabelas amplas forem calculados diretamente de DWD ou ODS, haverá problemas de cálculo excessivo e dimensões insuficientes. Portanto, a prática geral é calcular várias tabelas intermediárias pequenas na camada DWM e então emendado em uma mesa ampla DWS. Como o limite entre largo e estreito não é fácil de definir, a camada DWM também pode ser removida, deixando apenas a camada DWS, e todos os dados podem ser colocados no DWS.

3. Camada de serviço de dados: DWS (Data Ware House Service)

A camada DWS é uma camada de resumo público, que realizará um resumo leve. A granularidade é um pouco mais grosseira do que os dados detalhados. Com base nos dados básicos da camada DWD, ela é integrada e resumida para analisar os dados de serviço de um determinado assunto domínio, que geralmente é uma tabela ampla. A camada DWS deve cobrir 80% dos cenários de aplicação. Também conhecido como data mart ou tabela ampla.

De acordo com a divisão de negócios, como tráfego de domínio de assunto, pedidos, usuários, etc., tabelas amplas com mais campos são geradas para fornecer consultas de negócios subsequentes, análise OLAP, distribuição de dados etc. De um modo geral, haverá relativamente poucas tabelas de dados nessa camada e uma tabela cobrirá mais conteúdo de negócios.Por ter muitos campos, geralmente é chamada de tabela ampla.

3. Camada de aplicação de dados: APP (Aplicação)

Aqui, os dados fornecidos principalmente para produtos de dados e análise de dados geralmente são armazenados em ES, PostgreSql, Redis e outros sistemas para sistemas online, e também podem ser armazenados em Hive ou Druid para análise de dados e mineração de dados. Por exemplo, os dados do relatório sobre os quais costumamos falar geralmente são colocados aqui.

4. Dimensão

Finalmente, uma camada de superfície de dimensão é adicionada.A camada de superfície de dimensão inclui principalmente duas partes de dados: Dados de dimensão de alta cardinalidade: geralmente, tabelas de dados semelhantes às tabelas de dados do usuário e tabelas de dados do produto. A quantidade de dados pode ser dezenas de milhões ou centenas de milhões.

Dados de dimensão de baixa cardinalidade: geralmente uma tabela de configuração, como o significado chinês correspondente a um valor de enumeração ou uma tabela de dimensão de data.

A quantidade de dados pode ser de um dígito ou dezenas de milhares.

02 especificação de mesa

sobre a raiz

A raiz da palavra pertence à especificação na construção do data warehouse e pertence à categoria de gerenciamento de metadados, agora classificada como parte da governança de dados. A construção completa do data warehouse inclui governança de dados, mas agora, quando se trata de data warehouses, é mais sobre modelagem de dados, enquanto quando se trata de governança de dados, é mais sobre especificação e gerenciamento de dados.

A nomenclatura da tabela é, na verdade, um reflexo da descrição dos metadados em grande medida. Quanto mais completa a especificação da nomenclatura da tabela, mais informações podemos obter do nome da tabela. Por exemplo: parte do negócio é sobre prateleiras, o nome em inglês é: rack, e rack é uma palavra raiz, então vamos chamá-lo de rack em todas as tabelas, campos etc., em vez de qualquer outra coisa. Esta é a função da raiz, que é usada para unificar a nomenclatura e expressar o mesmo significado.

Existem muitos indicadores de "taxa" no sistema de indicadores, que podem ser desmontados em XXX+taxa, a taxa pode ser chamada de taxa, então todos os nossos indicadores são chamados de XXX+taxa.

Palavra raiz: pode ser usada para unificar nomes de tabelas, nomes de campos, nomes de domínios de assunto, etc.

Exemplo: É mais intuitivo e compreensível exibir na forma de um fluxograma. Esta figura se concentra na convenção de nomenclatura da tabela de camadas dwm e o restante da nomenclatura é semelhante:

A primeira condição de julgamento é a finalidade da mesa, seja mesa intermediária, tronco original ou mesa para exposição de negócios. Se a mesa for julgada como mesa intermediária, entrará na próxima condição de julgamento: se a mesa tem um operação de grupo ou não. Operação para determinar se a tabela deve ser dividida na camada dwd ou nas camadas dwm e dws. Caso não seja a camada dwd, é necessário julgar se a tabela é uma tabela resumo de múltiplos comportamentos (que isto é, uma mesa larga).

Por fim, preencha informações como grupo de negócios, departamento, linha de negócios, nome personalizado e frequência de atualização.

Hierarquia: escopo de uso da tabela

Grupo de negócios e departamento: a equipe que produziu a tabela ou os dados

Linha de negócios: indica a qual produto ou linha de negócios os dados estão relacionados

Domínio do assunto: a perspectiva de analisar o problema, a entidade objeto

Customização: geralmente descreva o máximo de informações possíveis sobre a mesa, como mesa ativa, mesa reservada, etc.

Ciclo de atualização: por exemplo, nível de dia ou atualização mensal

1. Mesa convencional

A mesa regular é a mesa que precisamos solidificar, a mesa que é oficialmente usada e a mesa que precisa ser mantida e melhorada dentro de um período de tempo.

Especificação: prefixo hierárquico [dwd|dws|ads]_department_business domain_subject domain_XXX_update cycle|data range.

Domínios de negócios e domínios de assunto podem ser enumerados de forma clara e melhorados continuamente na forma de palavras raiz. O ciclo de atualização é principalmente granularidade de tempo, dia, mês, ano, semana, etc.

2. Tabela intermediária

A tabela intermediária geralmente aparece no trabalho e é uma tabela de dados intermediários armazenados temporariamente no trabalho. O escopo da tabela intermediária é limitado ao processo de execução do trabalho atual. Depois que o trabalho é executado, a missão da tabela intermediária é concluída e pode ser excluído (escolha livremente de acordo com o cenário da sua própria empresa. Antigamente, a empresa mantinha alguns dias de dados da tabela intermediária para solução de problemas).

Especificação: mid_table_name_[0~9|dim]

table_name é o nome da tabela de destino em nossa tarefa, geralmente uma tarefa possui apenas uma tabela de destino. O nome da mesa é adicionado aqui para evitar conflitos de nome de mesa ao jogar livremente. No final, você pode escolher jogar livremente e dar alguns nomes significativos, ou usar números de forma simples e grosseira. Cada um tem suas próprias vantagens e desvantagens, então Escolha cuidadosamente.

Normalmente você encontrará uma tabela que precisa completar a dimensão, aqui use dim para terminar.

Quando a tabela intermediária for criada, adicione-a. Se você deseja manter a tabela intermediária histórica, pode adicionar o carimbo de data ou hora.

3. Tabela temporária

Tabelas temporárias são tabelas para testes temporários. São tabelas que são usadas temporariamente uma vez. São tabelas que são salvas temporariamente para visualização. Tabelas que geralmente não são mais usadas no futuro podem ser excluídas a qualquer momento.

Especificação: tmp_xxx

Basta adicionar o início de tmp e outros nomes são opcionais. Observe que a tabela que começa com tmp não deve ser usada para uso real, mas apenas para verificação de teste.

4. Tabela de dimensões

Uma tabela de dimensão é uma tabela de classe de descrição abstrata baseada nos dados subjacentes. As tabelas de dimensão podem ser automaticamente abstraídas das tabelas subjacentes

Também pode ser mantido manualmente.

Especificação: dim_xxx

Tabela de dimensões, comece uniformemente com dim, seguido de adição, a descrição deste índice pode ser reproduzida livremente.

5. Relógio manual

Uma tabela manual é uma tabela mantida manualmente. Depois de ser inicializada manualmente uma vez, ela geralmente não muda automaticamente. Se for alterada posteriormente,

Também é mantido manualmente.

De um modo geral, a granularidade dos dados manuais é relativamente boa, então, por enquanto, nós os colocamos na camada dwd uniformemente e, em seguida, os colocamos em camadas de acordo com a situação real, se houver valores de destino ou outros tipos de dados manuais posteriormente .

Especificação: dwd_business_domain_manual_xxx

Para tabelas manuais, adicione um campo de assunto especial, manual, indicando tabelas de manutenção manual.

03 Especificação do indicador

3.1 Nomenclatura

minúsculas

divisão de sublinhado

A legibilidade é melhor que o comprimento (raiz, evitando o mesmo índice, consistência de nomenclatura) sufixo de campo de quantidade _cnt e outros identificadores...

Sufixo do campo de valor _identificador de preço

Proibir o uso de palavras-chave SQL

3.2 Formato do campo

Os números de ponto flutuante usam decimal (28,6) para controlar a precisão, etc.

3.3 Tratamento de campo NULL

Para campos de dimensão, precisa ser definido como -1

Para o campo do indicador, ele precisa ser definido como 0

04 especificação do calibre

Certifique-se de que, dentro da área de assunto, os indicadores tenham o mesmo calibre e nenhuma ambiguidade. Além disso, também é preciso ficar atento à fonte consistente de dados de indicadores do mesmo calibre.

05 Método de processamento de dados

1. Tabela de incremento:

Dados adicionados recentemente, dados incrementais são os novos dados após a última exportação.

(1) Registre o valor de cada aumento, não o valor total;

(2) Para a tabela incremental, apenas a quantidade de alteração é relatada e nenhuma alteração é necessária.

(3) Uma partição por dia

2. Escala completa

Todos os dados de status mais recentes todos os dias.

(1) A escala completa, se houver alguma alteração, deve ser relatada

(2) Os dados relatados a cada vez são todos os dados (alterados + inalterados)

(3) Apenas uma partição

3. Tabela de instantâneos

Partição por dia, registre a quantidade total de dados a partir da data de dados.

(1) A tabela de instantâneos, se houver alguma alteração, deve ser relatada

(2) Os dados relatados a cada vez são todos os dados (alterados + inalterados)

(3) Uma partição por dia

4. Relógio com zíper

Registre a quantidade total de dados a partir da data de corte.

(1) Registrar informações sobre todas as mudanças de uma coisa desde o início até o estado atual;

(2) Cada relatório da tabela Zipper é o estado final do registro histórico, que é o total histórico registrado no momento atual;

(3) O registro atual armazena a última alteração (valor total) de todos os registros históricos antes da hora atual;

(4) Apenas uma partição

Acho que você gosta

Origin blog.csdn.net/xljlckjolksl/article/details/131609277
Recomendado
Clasificación