- 10M+ Marcadores (Intervalos de tempo em certos)
- Mais de 300 mil objetos referenciados (vídeos)
Marcadores com uma estrutura como esta:
{
id: 123,
category: 2,
object: 'A',
start: 10,
end: 25
}
...resultando em intervalos ao longo das diferentes categorias, como:
category-1: ----------[===========]---------------------------- ref-object: A
category-1: --------------------------[====================]--- ref-object: A
category-1: ------------------[============================]--- ref-object: A
category-1: -----------------[==========================]------ ref-object: C
category-1: ------------------------------[================]--- ref-object: C
category-2: ----[===================]-------------------------- ref-object: A
category-2: -----[==========================]------------------ ref-object: B
category-2: -----[====================]------------------------ ref-object: C
category-2: -------------------------[=================]------- ref-object: C
category-2: ------------[===================================]-- ref-object: C
category-3: ----------------[=============]-------------------- ref-object: A
category-3: ----[===================================]---------- ref-object: A
category-3: -------[=======================================]--- ref-object: B
category-3: ----------------------------[====]----------------- ref-object: C
category-3: -------------[=================]------------------- ref-object: C
Agora para responder algo como isto:
Encontre todos os objetos, tendo intervalos sobrepostos(!)
category 1
ecategory 2
idealmente ordenados pela soma do tempo sobreposto
Eu consigo pensar nesses passos
- consulta: comece com uma categoria, busque todos os marcadores nessa categoria
- código: reduza os intervalos para alguns intervalos de tempo maiores (remova intervalos de tempo redundantes)
- consulta: buscar marcadores da próxima categoria que correspondam a um desses intervalos de tempo
- código: reduza os intervalos combinados para alguns intervalos de tempo maiores (remova intervalos de tempo redundantes)
- [...]
- código: calcular o período de tempo coberto por item e classificar de acordo
Isso é algo que você gostaria de fazer em SQL?
Existe um nome para esse tipo de consulta? (Essas não são exatamente consultas de intervalo, são?)
Existe um banco de dados com recursos integrados nesse caso, dada a quantidade de dados?
Atualmente, todos os dados são armazenados dentro de um índice Apache SOLR, mas isso também pode se tornar Elasticsearch, InfluxDB etc.