O Lindorm GanosBase é um mecanismo de dados espaço-temporais desenvolvido nativamente sobre o LindormTable, o mecanismo de tabela ampla do Lindorm. Ele estende o LindormTable com tipos de dados espaciais, índices espaço-temporais e funções compatíveis com PostGIS, permitindo armazenar, consultar e analisar dados de trajetória em grande escala com o throughput e o perfil de custos de um armazenamento distribuído de tabelas amplas.
Se sua aplicação processa dados de trajetória provenientes de Internet dos Veículos (IoV), Internet das Coisas (IoT), logística, direção autônoma, viagens, navegação ou cargas de trabalho de sistemas de informações geográficas (GIS), o GanosBase foi projetado para essa escala.
Quando usar o GanosBase
O GanosBase atende às suas necessidades quando:
Sua aplicação executa consultas de intervalo espaço-temporal — por exemplo, localizar todos os veículos que passaram por uma determinada área na última hora.
É necessário geofencing em tempo real para detectar quando um objeto entra ou sai de um limite definido.
Você opera services baseados em localização, como a busca de pontos de interesse dentro de um raio específico.
Existem grandes volumes de dados históricos de trajetória que precisam ser compactados e arquivados de forma econômica.
Sua aplicação atual utiliza recursos espaciais do PostGIS, GeoMesa, MongoDB ou Redis e você deseja migrar para um backend distribuído e escalável.
Como funciona
Um banco de dados espaço-temporal é definido por três capacidades. O GanosBase adiciona todas elas ao LindormTable:
Tipos de dados espaciais — objetos geométricos padrão, incluindo pontos, LineStrings e polígonos.
Índices espaço-temporais — índices Z-ORDER que mapeiam coordenadas multidimensionais (espaço ou espaço + tempo) para uma chave unidimensional, possibilitando varreduras de intervalo eficientes sem armazenar réplicas redundantes.
Funções espaço-temporais — uma biblioteca de funções compatível com PostGIS que abrange acesso, relacionamentos espaciais, processamento de dados e medição.
O GanosBase expõe essas capacidades por meio de três interfaces. Escolha aquela que corresponde à sua stack existente.
Interfaces suportadas
|
Interface |
Ponto de entrada |
Mais indicado para |
Desempenho |
|
GanosBase SQL |
SQL padrão |
Aplicações desenvolvidas com recursos espaciais do PostGIS, GeoMesa, MongoDB ou Redis |
Superior ao GeoMesa open source (reescrita de consultas, consultas paralelas, shards e algoritmos otimizados de aproximação espacial) |
|
GanosBase GeoMesa |
APIs GeoTools ou ECQL |
Aplicações baseadas no GeoMesa open source |
Superior ao GeoMesa open source e ao HBase |
|
GanosBase para mecanismos de streaming |
Flink SQL padrão |
Pipelines de streaming Flink ou Spark |
Excelente desempenho de consulta por meio de índices em memória e consultas paralelas |
GanosBase SQL
O GanosBase SQL expõe capacidades espaço-temporais via SQL padrão, reunindo os recursos de processamento de dados do GeoMesa, MongoDB e Redis em uma única interface.
Tipos de dados espaciais
Pontos, LineStrings e polígonos — objetos geométricos padrão OGC. Consulte Spatial data types.
Sintaxe SQL
Utilize instruções DDL e DML padrão para trabalhar com tabelas espaço-temporais:
Crie uma tabela: CREATE TABLE
Inserir ou atualize dados: UPSERT
Consultar dados: SELECT
Para a referência completa da sintaxe, consulte DDL e DML.
Funções espaço-temporais
O GanosBase SQL inclui funções compatíveis com PostGIS divididas em quatro categorias:
|
Categoria |
Exemplos de funções |
|
Acesso |
|
|
Relacionamentos espaciais |
|
|
Processamento de dados |
|
|
Medição |
|
Para a referência completa de funções, consulte Overview.
Índices espaço-temporais
O GanosBase SQL utiliza índices Z-ORDER, que codificam coordenadas espaciais ou espaço-temporais como uma chave unidimensional. Isso suporta varreduras de intervalo eficientes em condições apenas espaciais ou espaciais + temporais, sem a necessidade de armazenar uma réplica de dados redundante.
Use um índice de chave primária quando o padrão principal de consulta for espacial ou espaço-temporal:
-- Spatial range queries only
CREATE TABLE gtest(id INT, g GEOMETRY(POINT), name VARCHAR, PRIMARY KEY(Z-ORDER(g),id));
-- Spatial and time range queries
CREATE TABLE gtest(id INT, g GEOMETRY(POINT), name VARCHAR, t LONG, PRIMARY KEY(Z-ORDER(g,t),id));
Utilize um índice secundário para acelerar consultas espaço-temporais em colunas que não são de chave primária:
-- Spatial range queries only
CREATE INDEX idx ON gtest (Z-ORDER(g));
-- Spatial and time range queries
CREATE INDEX idx ON gtest (Z-ORDER(g,t));
Os índices secundários no GanosBase SQL eliminam a necessidade de uma réplica de dados redundante para suportar consultas espaço-temporais.
Recursos herdados do LindormTable
Como o GanosBase é construído sobre o LindormTable, as tabelas do GanosBase SQL também suportam cold storage, separação de dados quentes e frios e colunas dinâmicas. Consulte Developer Guide para obter detalhes.
GanosBase GeoMesa
O GanosBase GeoMesa atua como um backend substituto direto para aplicações desenvolvidas com GeoMesa open source ou GeoServer. Ele herda todo o conjunto de recursos do GeoMesa e é compatível com APIs GeoTools e ECQL, permitindo a migração de aplicações GeoMesa existentes para um backend distribuído e escalável.
GanosBase para mecanismos de streaming
O GanosBase para mecanismos de streaming adiciona capacidades espaço-temporais ao Apache Flink por meio do Flink SQL padrão. Foi projetado para migrar pipelines de streaming Flink ou Spark que processam dados de localização ou trajetória.
Principais capacidades:
Todos os recursos padrão de computação em streaming do Apache Flink
Uma vasta biblioteca de funções espaço-temporais compatíveis com PostGIS
Funções de cálculo de dados de trajetória
Filtragem de geofence em tempo real e agregação de trajetórias
Índices em memória e consultas paralelas para desempenho de baixa latência
Casos de uso
Os cenários a seguir demonstram como o GanosBase SQL é aplicado em diversos setores, incluindo viagens, navegação, aviação, Internet dos Veículos (IoV) e logística.
Armazenamento e consulta de trajetórias
Um operador de frota consulta a trajetória de um objeto dentro de uma área específica nas últimas 24 horas. Os dados históricos de trajetória são compactados e arquivados para reduzir os custos de armazenamento.
Agregação em grade geográfica
Uma equipe de mobilidade urbana contabiliza veículos em diferentes distritos usando agregação de grade H3 e visualiza a densidade como um mapa de calor. A precisão da agregação é especificada por consulta, conforme a granularidade necessária.
Geofencing em tempo real
Uma plataforma de logística dispara um alerta quando um veículo de entrega se desvia da rota planejada. Um aplicativo de transporte por aplicativo determina zonas de preços mapeando locais de embarque para células de grade espacial.
Services baseados em localização
Um aplicativo de consumo exibe restaurantes situados a até 5 quilômetros da localização atual do usuário.