O que é uma Camada Semântica?

Breno Rocha Comin
6 min readMar 14, 2024

--

Àqueles que estão atuando na área de dados há pouco tempo, o termo pode ser obscuro ou desconhecido, porém a Camada Semântica é um conceito muito importante dentro desse universo, e central na implementação de diversas tecnologias. Seu papel inclui a capacidade de oferecer uma maior governança dos dados e um acesso simplificado aos dados e métricas da companhia. Se você possui dúvidas sobre o que é uma Camada Semântica e como ela pode ser utilizada, esse texto pode te ajudar bastante.

Do grego, Sēmantikós

Na linguística, quando analisamos uma passagem, podemos possuir diferentes abordagens. Na “semântica” estamos sempre falando no significado de cada palavra, frase ou até mesmo símbolo, compreendendo seu contexto e o motivo de sua aparição. É muito comum trazer como complemento e contraponto a ideia da “sintaxe”, que ao invés de analisar o significado, tem como foco as estruturas ou padrões formais do como algo é expresso.

Podemos traçar um paralelo para compreender a função da Camada Semântica: ela atua como um motor que vai construir as consultas SQL que serão enviadas ao banco seguindo um padrão sintático, mas que ao mesmo tempo vai considerar o contexto semântico do que está sendo solicitado.

Assim como os antigos gregos consultavam os Oráculos para encontrar respostas para suas indagações sobre o futuro das cidades e das pessoas que ali habitavam, os líderes de negócios consultam bases de dados para realizar projeções sobre o futuro de suas companhias, e nortear sua tomada de decisões. E como esses líderes geralmente não dominam profundamente o SQL e outros conceitos importantes para lidar diretamente com o banco, se apoiam nessa camada de abstração que atua entre eles e o sistema. Ainda dentro da metáfora, podemos dizer que a Camada Semântica assume o papel de uma Sacerdotisa dos antigos Oráculos, que entrava em contato com uma sabedoria mística inacessível a um grupo de pessoas que não se dedicou aos estudos e práticas religiosos, e traduzia isso tudo em palavras para aqueles que buscavam esse conhecimento oculto. A diferença é que no mundo dos dados estamos lidando com uma ciência exata (desde que tudo tenha sido implementado corretamente hehe).

Oráculo de Delfos, localizado na cidade de Delfos na Grécia

Não existe apenas uma Camada Semântica

Ao sermos introduzidos ao assunto, podemos cair no comum erro de acreditar que o conceito da Camada Semântica está diretamente relacionado a um fornecedor ou tecnologia específica. Quem escreveu o post trabalha na Oracle, citou Oráculos gregos, e continuará a série com posts sobre tecnologia Oracle. Logo posso assumir que Camada Semântica existe apenas dentro desse universo, certo?

Errado!

O conceito é amplo, e não é algo novo ou revolucionário. A SAP patenteou o Business Objects em 1991, o que foi provavelmente a primeira solução de Camada Semântica a ser registrada, porém várias plataformas foram desenvolvidas implementando essa mesma proposta, e me arrisco a dizer que todo BI possui uma camada semântica dentro dele. E a maioria das ferramenta de visualização de dados também pode entrar nessa lista. Aqui na Oracle, nossa ferramenta de BI, Analytics e Visualização de Dados é o Oracle Analytics (disponível em versões Cloud e On Premises), porém é correto dizer que outras soluções de mercado, como Power BI, Tableau, Looker, QlikView e afins, também possuem Camadas Semânticas.

Algumas delas estão implícitas dentro das soluções, e outras ferramentas são criadas exclusivamente para o uso como camada de abstração entre dado origem e os relatórios consumidos pelos usuários. Bons exemplos dessa tecnologia são: dbt Semantic Layer, Google LookML, Amazon QuickSight, Microsoft SQL Server Analysis Services (SSAS), entre outras…

Esse conceito se tornou tão natural e presente na vida tanto dos usuários técnicos quanto dos usuários de negócios, que é comum que isso seja feito quase que automaticamente com os dados que possuímos.

Agradando aos Preguiçosos e aos Caprichosos

Se nos limitarmos às reflexões levantadas até agora, diremos que o grande avanço e benefício da adoção de uma Camada Semântica é substituir o trabalho que poderia ser realizado por especialistas técnicos através da criação e adequação de consultas para geração de relatórios. Isso é definitivamente um dos propósitos da adoção da tecnologia, mas ela também implica em outros pontos, como a centralização e o ganho de performance.

Se a Camada Semântica se conecta às fontes de dados relevantes para as perguntas da área de negócios, e é a referência para onde essas mesmas perguntas são encaminhadas, temos uma padronização que contribui para a Governança de Dados de toda a companhia.

Sem uma Camada Semântica, seriam consumidos dados de diversas fontes, e em algum momento haveria conflito nos cálculos e definições contidos em cada um dos relatórios gerados. Essas contradições geram confusão, e consequentemente a confiança nos dados da empresa vai diminuindo gradualmente. Ao ponto de que em alguns casos grupos passam mais tempo discutindo o quão confiáveis são os dados ao invés de discutir o que eles estão mostrando.

Uma Camada Semântica bem implementada consolida toda a terminologia utilizada pelo negócio, e constrói uma “Fonte Única da Verdade” para relatórios e análises. É lá que as diversas áreas da empresa, e principalmente os Analistas e Cientistas de Dados, vão buscar suas informações, já agregadas, consolidadas e respeitando as nomenclaturas convencionadas para todo esse trabalho.

Ao mesmo tempo que a Governança é reforçada, cria-se uma camada que ‘sabe’ quais tipos de consultas serão feitas, e com qual nível de granularidade. Isso permite que ações sejam tomadas para melhorar a performance das consultas. Pense nessa camada como uma ferramenta que indexa onde estão os dados relevantes e os busca conforme as necessidades do negócio. Em alguns casos, ela pode possuir até mesmo cópias sumarizadas das informações que vai buscar nas fontes de dados.

Conclusões

Cada vez mais nos deparamos com uma abundância de dados em qualquer cenário corporativo. Qualquer iniciativa gera Gigabytes ou Terabytes que são armazenados em bases de dados e muitas vezes nunca mais analisados. O propósito da camada semântica é pegar essas fontes de dados, muitas vezes heterogêneas e não necessariamente perfeitamente organizadas, e consolidar tudo isso em uma camada empresarial que respeita a lógica do negócio, e é comum a todas as aplicações (e usuários) que vão consumi-la.

Ela é um motor que vai construir e enviar aos bancos de dados consultas que são resultado de uma associação de objetos selecionados pelo usuário, capaz de gerar uma SQL com SELECT, WHERE, FROM, GROUP BY, ORDER BY, HAVING e todos os JOINS necessários para alcançar o resultado desejado.

E isso é maravilhoso tanto para os usuários técnicos quanto para os de negócios! Afinal, quem nunca se aventurou em SQL tentando montar uma consulta para responder a uma pergunta específica, e gerou uma query funcional (sintaticamente correta) mas que acabou trazendo um produto vetorial que não carregava significado nenhum naqueles dados (semanticamente incorreto)?

E para finalizar, ter uma Camada Semântica é conseguir fornecer significado aos dados da empresa, ao mesmo tempo que implementamos regras de governança para o acesso a eles, e no processo aproveitamos para mascarar a complexidade das nossas fontes dando uma experiência limpa e simples para o usuário final. É simplicidade e governança.

Pirâmide ilustrando uma jornada de dados. Possui como base os Dados Brutos, e os Dados Estruturados logo acima deles. A Camada Semântica é a próxima etapa, conectando às Métricas e KPI’s, e no topo da pirâmide está a Visualização de Dados, principal forma de contato dos usuários de negócios com os dados da companhia.

Me interessei! E agora?

Esse post é uma introdução ao tema, e será seguido por outros materiais que se aprofundarão no tópico nas próximas semanas.

Primeiro iremos abrir ainda mais o leque para entender “Qual o lugar da Camada Semântica em Arquiteturas Modernas de Dados?”. Existem vários conceitos e discussões recentes, mas a maioria deles não inclui uma camada semântica na arquitetura por padrão.

Após evoluirmos nesse tema, exploraremos a como a Oracle pode oferecer uma Camada Semântica nas suas ferramentas Autonomous Data Warehouse e Oracle Analytics Cloud, concretizando as ideias apresentadas nas outras postagens.

--

--

Breno Rocha Comin

Data & AI Cloud Solution Engineer — Working at Oracle. Passionate about Data Analytics, Games and Music.