Camada Bronze
A camada Bronze contém dois esquemas de dados distintos, cada um atendendo a aspectos diferentes 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 pelos usuários, etc.
raw_telematics_data - contendo tabelas, atributos e valores relacionados aos dados telemáticos transmitidos por dispositivos sob monitoramento, como localizações, entradas, saídas e eventos.
Cada esquema é otimizado para seu domínio de dados específico e padrões de acesso, fornecendo cobertura abrangente das necessidades de operação, telemática e gerenciamento de ativos.
raw_business_data estrutura
raw_business_data estruturaEste esquema contém mais de 40 tabelas cuidadosamente selecionadas para cobrir vários aspectos e casos de uso do negócio. Essas tabelas representam suas entidades principais de negócio, estrutura organizacional e dados operacionais.
Encontre os detalhes do esquema raw business data abaixo.
Frequência de atualização
Os dados neste esquema são sincronizados com o DB principal. Atualizações ocorrem incrementalmente conforme alterações acontecem 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 empresarial
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-chave por sua finalidade de negócio:
Entidades principais de negócio
Rastreamento e monitoramento
Gerenciamento de ativos
Localização e roteamento
Gerenciamento 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 pesquisa
raw_telematics_data estrutura
raw_telematics_data estruturaO raw_telematics_data esquema contém três tipos principais de tabelas que trabalham juntos para fornecer dados abrangentes do dispositivo.
Encontre abaixo os detalhes do esquema de dados telemáticos brutos.
Tabelas-chave por categoria
Cada tabela serve a 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 latência mínima (tipicamente em 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 aplica integridade dos dados através 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 padrão 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 desempenho em junções
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 você tiver interesse em acesso antecipado ou tiver perguntas sobre essa 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ção com restrições a nível de objeto e trilhas de auditoria completas com rastreamento de alterações por campo. Todas as entidades podem ser estendidas sem modificações no esquema, localizadas para implantações internacionais e vinculadas por relacionamentos polimórficos flexíveis.
O esquema aborda cenários complexos de gerenciamento de dados, incluindo hierarquias de ativos de frota através de níveis organizacionais, plataformas SaaS multitenant que exigem isolamento de dados, operações orientadas por conformidade com requisitos detalhados de auditoria e sistemas que necessitam de modelos de dados dinâmicos adaptáveis por meio de campos personalizados em vez de migrações de banco de dados.
Encontre o 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 conforme 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 esquema usa um padrão Single Table Inheritance para todos os dados de referência através da ci_base tabela:
O repo esquema usa um Single Table Inheritance padrão para todos os dados de referência através da ci_base tabela. Esse desenho 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 tabela serve como a base para todos os dados de referência, usando um discriminator 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 com segurança de 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
Definir módulos do sistema, referências geográficas e papéis 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
Classificar todas as entidades de negócio por tipo
Status e classificação
ci_device_status, ci_asset_type_category
Rastrear estados de entidades e agrupar tipos em categorias
Controle de acesso
ci_permission_scope
Definir quais permissões podem ser concedidas (conectado a ci_module e ci_entity_type)
Relacionamentos
ci_device_relation_type
Definir tipos de relacionamentos entre dispositivos (master-slave, backup, etc.)
Categorização
ci_tag, ci_catalog_category
Habilitar marcação flexível e organização de catálogos
Tabelas-chave por categoria
As tabelas no repo esquema 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 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 árvores
Itens de referência (
ci_base) suportam hierarquias opcionaisManutenção automática de caminhos via triggers do 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_idediscriminatorcampos
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 esquema aplica integridade de dados por meio de múltiplos mecanismos:
Restrições de banco de dados
Restrições UNIQUE com suporte a exclusão suave (í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 multi-valor
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 exclusão suave
Í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 desempenho:
Recomendado pooling de conexão (PgBouncer)
Manutenção VACUUM regular para tabelas grandes
Possível particionamento futuro para
devicetabela pororganization_idViews materializadas para cálculos complexos de controle de acesso
Atualizado
Isto foi útil?