Arquitetura · leitura de 8 minutos

Arquitetura CDS: Basic, Composite, Fact e Consumption

Aprenda a separar fontes, enriquecimento, fatos e contratos de consumo sem perder rastreabilidade e granularidade.

Separar responsabilidades em camadas ajuda a manter modelos de dados corporativos consistentes. Uma arquitetura de CDS pode reunir dados de diferentes fontes do SAP S/4HANA e publicar uma interface final para consumo, por exemplo no SAP Datasphere. A nomenclatura Basic, Composite, Fact e Consumption é uma convenção arquitetural: os objetos e anotações reais dependem do projeto.

1. O papel de cada camada

  • Basic: lê e normaliza dados das fontes sem misturar regras complexas.
  • Composite: combina objetos, traduz descrições, aplica regras e consolida medidas quando necessário.
  • Fact: estrutura medidas e dimensões com granularidade analítica explicitada.
  • Consumption: apresenta o contrato final ao consumidor e evita expor a complexidade interna.

2. Exemplo fictício de documento fiscal

Considere fontes de cabeçalho, item, impostos e faturamento. Primeiro obtenha campos individuais em CDS Basic; depois agrupe os impostos por documento e item e enriqueça os atributos na Composite. A Fact deve continuar representando uma linha por documento fiscal + item. A Consumption expõe somente os atributos necessários ao Datasphere.

Tabelas de origem
   |-- Documento e itens
   |-- Impostos e textos
   |-- Faturamento e pesos
           |
           v
       CDS BASIC
           |
           v
     CDS COMPOSITE
     (joins / agregações)
           |
           v
        CDS FACT
           |
           v
     CDS CONSUMPTION
           |
           v
      SAP DATASPHERE

3. Dois controles indispensáveis

Rastreabilidade: cada campo final deve ter origem, transformação e significado documentados. Granularidade: se a origem possui uma linha por item, o enriquecimento com tabela de textos não pode criar múltiplas cópias do mesmo valor apenas porque há vários idiomas disponíveis.

4. A Fact precisa ser uma CDS de extração?

Não necessariamente. A camada factual pode ser interna. A definição de uma interface de extração exige decidir qual objeto é autorizado a servir como fonte, qual o método de carga e como o consumidor administrará mudanças. A simples presença de @Analytics.dataCategory: #FACT não habilita delta.

5. Checklist de arquitetura

  1. Defina chave e granularidade por camada.
  2. Nomeie os objetos de forma previsível.
  3. Documente joins, filtros de idioma e validade.
  4. Teste total de linhas e de medidas a cada camada.
  5. Publique apenas interfaces estáveis e com acesso controlado.
RL
Robson Leão

Consultor SAP com atuação em dados, analytics, planejamento e transformação digital. Conheça o autor.