Camada Bronze
A camada Bronze contém dois esquemas de dados distintos, cada um servindo a diferentes aspectos da plataforma de telemática e inteligência de negócios:
raw_business_data - contendo tabelas, atributos e valores relacionados às informações de negócios, como veículos, funcionários, geocercas adicionadas por usuários, etc.
raw_telematics_data - contendo tabelas, atributos e valores relacionados aos dados telemáticos transmitidos pelos dispositivos em monitoramento, como localizações, entradas, saídas e eventos.
Cada esquema é otimizado para seu domínio de dados e padrões de acesso específicos, fornecendo cobertura abrangente das necessidades de gerenciamento operacional, telemático e de ativos.
raw_business_data estrutura
raw_business_data estruturaEste esquema contém mais de 40 tabelas cuidadosamente selecionadas para cobrir vários aspectos de negócios e casos de uso. Essas tabelas representam suas entidades centrais de negócios, estrutura organizacional e dados operacionais.
Encontre detalhes do esquema raw business data abaixo.
Frequência de atualização
Os dados neste esquema são sincronizados com o banco de dados principal. As atualizações ocorrem de forma incremental à medida que ocorrem alterações no banco de dados MySQL de origem, tipicamente em menos de 5 minutos após a alteração na origem.
description_parameters
description_parametersO sistema inclui dados de referência para padronizar valores em todo o banco de dados:
Definições de tipo
Tipos de entidade padrão
vehicle_type: car, truck, bus
Códigos de status
Valores de status de tarefas e do sistema
tasks_status: unassigned, assigned, done
Definições de unidade
Unidades de medida para sensores
units_type: liter, gallon, celsius
Classificações de entidade
Categorias de entidade de negócio
entities_type: place, task, customer
Tabelas-chave por categoria
As tabelas no raw_business_data esquema estão organizadas em categorias funcionais para facilitar a navegação. A tabela abaixo resume as tabelas principais por seu propósito de negócio:
Entidades de negócio principais
Rastreamento e monitoramento
Gestão de ativos
Localização e roteamento
Gestão de tarefas e fluxo de trabalho
Regras e automação
Status e categorização
Grupos e hierarquia
Campos e entidades personalizadas
Rastreamento histórico
Dados de referência e consulta
raw_telematics_data estrutura
raw_telematics_data estruturaO raw_telematics_data esquema contém três tipos principais de tabelas que trabalham em conjunto para fornecer dados abrangentes do dispositivo.
Encontre detalhes do esquema de telemetria bruta abaixo.
Tabelas-chave por categoria
Cada tabela tem um propósito específico na captura de diferentes aspectos das informações do dispositivo:
Os dados neste esquema são ingeridos diretamente dos dispositivos, com baixa latência (tipicamente segundos). O esquema é otimizado para dados de séries temporais usando TimescaleDB para armazenamento e recuperação eficientes.
Informações adicionais
Validação de dados
O banco de dados impõe integridade dos dados por meio de múltiplos mecanismos:
restrições CHECK validam que os valores estejam dentro de intervalos aceitáveis
chaves estrangeiras garantem que os relacionamentos entre tabelas permaneçam consistentes
restrições NOT NULL garantem que campos obrigatórios sempre tenham valores
valores DEFAULT fornecem um fallback quando os dados não são explicitamente fornecidos
Otimização de consultas
As tabelas são organizadas com estratégias específicas de indexação:
Todas as tabelas incluem índices baseados em tempo em
record_added_atColunas de chave estrangeira possuem índices dedicados para performance de joins
Combinações de colunas usadas com frequência têm índices compostos
O TimescaleDB fornece índices especializados para consultas de séries temporais
repo estrutura de dados
repo estrutura de dadosEste esquema está atualmente em desenvolvimento. Se estiver interessado em acesso antecipado ou tiver dúvidas sobre esta funcionalidade, entre em contato com [email protected].
O repo o esquema fornece uma estrutura abrangente para gerenciar estruturas organizacionais, ativos, dispositivos e seus relacionamentos em ambientes multitenant. Construído sobre PostgreSQL 14+ com a extensão ltree, o esquema suporta organizações hierárquicas, definições de campos personalizados para qualquer tipo de entidade, controle de acesso baseado em funções com restrições a nível de objeto e trilhas de auditoria completas com rastreamento de alteração a nível de campo. Todas as entidades podem ser estendidas sem modificações no esquema, localizadas para implantações internacionais e vinculadas por meio de relacionamentos polimórficos flexíveis.
O esquema aborda cenários complexos de gerenciamento de dados, incluindo hierarquias de ativos de frota em níveis organizacionais, plataformas SaaS multitenant que exigem isolamento de dados, operações orientadas à conformidade com requisitos detalhados de auditoria e sistemas que precisam de modelos de dados dinâmicos adaptáveis por meio de campos personalizados em vez de migrações de banco de dados.
Encontre os repo detalhes do esquema abaixo.
Frequência de atualização
Dados no repo esquema são sincronizados em tempo real com os sistemas de origem. As atualizações ocorrem imediatamente à medida que as alterações acontecem, com trilhas de auditoria registrando todas as modificações para conformidade e análise histórica.
ci_base
ci_baseO repo o esquema usa um padrão Single Table Inheritance para todos os dados de referência através da ci_base tabela:
O repo o esquema usa um Single Table Inheritance padrão para todos os dados de referência através da ci_base tabela. Este design consolida dicionários do sistema, classificações e itens de referência definidos pelo usuário em uma estrutura unificada, fornecendo consistência e flexibilidade em todo o esquema.
Arquitetura:
O ci_base a tabela serve como base para todos os dados de referência, usando um discriminador campo para identificar o tipo de referência específico. Cada tipo de referência tem uma tabela correspondente (como ci_device_type, ci_asset_type) que compartilha o mesmo id como ci_base, criando uma relação de herança segura por tipo.
Como as entidades de negócio se conectam ao ci_base:
Todas as entidades de negócio no repo esquema referenciam ci_base subtipos para definir sua classificação e comportamento:
organization→ referenciaci_organization_type(que herda deci_entity_type→ci_base)user→ referenciaci_user_type(que herda deci_entity_type→ci_base)device→ referenciaci_device_typeeci_device_status(ambos herdam deci_base)asset→ referenciaci_asset_type(que herda deci_entity_type→ci_base)inventory→ referenciaci_inventory_type(que herda deci_entity_type→ci_base)asset_group→ referenciaci_asset_group_type(que herda deci_entity_type→ci_base)
Categorias de tipos de referência:
Configuração do sistema
ci_module, ci_country, ci_role
Definem módulos do sistema, referências geográficas e funções de usuário
Definições de tipo de entidade
ci_entity_type, ci_device_type, ci_asset_type, ci_inventory_type, ci_organization_type, ci_user_type, ci_asset_group_type
Classificam todas as entidades de negócio por tipo
Status e classificação
ci_device_status, ci_asset_type_category
Acompanham estados de entidades e agrupam tipos em categorias
Controle de acesso
ci_permission_scope
Definem quais permissões podem ser concedidas (conectado a ci_module e ci_entity_type)
Relacionamentos
ci_device_relation_type
Definem tipos de relacionamento entre dispositivos (master-slave, backup, etc.)
Categorização
ci_tag, ci_catalog_category
Habilitam marcação flexível e organização de catálogo
Tabelas-chave por categoria
As tabelas no repo os esquemas são organizados em categorias funcionais. As descrições abaixo resumem as tabelas mais importantes por sua finalidade de negócio.
Relacionamentos de dados
O repo o esquema implementa padrões sofisticados de relacionamento para modelagem de dados flexível:
Estruturas hierárquicas
Organizações usam caminhos ltree para consultas eficientes em árvore
Itens de referência (
ci_base) suportam hierarquias opcionaisManutenção automática de caminhos via triggers de banco de dados
Padrões de herança
Herança de tabela:
customizable_entity→ entidades de negócio (organization,user,device,asset,inventory,asset_group)Herança de ID:
ci_base→ tabelas de tipo de referênciaDiscriminação de tipo via
entity_type_idediscriminadorcampos
Relacionamentos polimórficos
Certas tabelas usam referências polimórficas sem restrições de chave estrangeira para máxima flexibilidade:
acl_role_permission.target_entity_id→ qualquercustomizable_entityacl_user_scope.target_entity_id→ qualquercustomizable_entityentity_tag.entity_id→ qualquercustomizable_entity
Esses relacionamentos são validados no nível da aplicação.
Informações adicionais
Validação de dados
O repo o esquema aplica integridade de dados por meio de múltiplos mecanismos:
Restrições de banco de dados
Restrições UNIQUE com suporte a soft delete (índices parciais WHERE
deleted_atIS NULL)Restrições CHECK (por exemplo,
device_relationgarantemaster_id≠slave_id)Restrições NOT NULL em campos obrigatórios
Valores DEFAULT para timestamps e flags booleanas
Validação em nível de aplicação
Validação de tipo de entidade para referências polimórficas
Validação de catálogo para referências de campos personalizados
Validação de tipo de campo personalizado
Gerenciamento de arrays para campos multivalorados
Otimização de consultas
As tabelas são organizadas com estratégias específicas de indexação:
Índices padrão:
Todas as chaves estrangeiras têm índices dedicados
Índices baseados em tempo em
created_at,updated_at,deleted_atÍndices compostos para colunas frequentemente unidas
Índices especializados:
Índices GiST em caminhos ltree para consultas hierárquicas
Índices únicos parciais suportando soft delete
Índices de valor de campo personalizado para filtragem e ordenação
Índices de eventos de auditoria por tempo + entidade para buscas eficientes
Considerações de performance:
Pool de conexões recomendado (PgBouncer)
Manutenção regular VACUUM para tabelas grandes
Possível partionamento futuro para
devicetabela pororganization_idViews materializadas para cálculos complexos de controle de acesso
Atualizado
Isto foi útil?