- O RAP introduz um índice externo focado em consultas pontuais sobre arquivos Parquet e Iceberg.
- A tecnologia reduz o overhead de planejamento e busca física em sistemas de armazenamento em nuvem.
- Otimizações de layout físico como interleaved columns garantem leituras contíguas de poucos kilobytes.
- Suporta múltiplos índices secundários sem necessidade de reprocessar ou duplicar datasets analíticos.
O desafio de unificar analytics e serving no spotify
Atualmente, o Spotify armazena exabytes de dados analíticos em seu data lake baseado em Google Cloud Storage (GCS), enquanto mantém petabytes de dados operacionais em instâncias do Bigtable para consultas rápidas. Com o avanço de aplicações de inteligência artificial e serviços online em tempo real, a necessidade de acessar registros individuais de forma rápida cresceu exponencialmente.
No entanto, mecanismos tradicionais de consulta como Trino e BigQuery são otimizados para varreduras de colunas (scans) em larga escala, e não para buscas pontuais baseadas em chaves. O overhead envolvido no planejamento de queries, travessia de metadados e descoberta de arquivos no GCS tornava inviável o uso direto do data lake para essas operações de baixa latência.
A solução: indexação externa com o random access parquet
Para solucionar o gargalo de latência e evitar a duplicação dispendiosa de dados, o Spotify criou o Random Access Parquet (RAP). Esta tecnologia constrói uma camada de indexação externa que correlaciona chaves de busca exclusivas, como IDs de usuários, à posição exata da linha dentro de um arquivo Parquet específico.
# publicidade
Conforme novas informações são consolidadas em tabelas Apache Iceberg, um construtor de índices gera fragmentos do tipo 'append-only' em segundo plano, preservando a imutabilidade natural dos arquivos Parquet originais. Assim, antes de acessar o armazenamento de objetos, a query resolve a localização do dado através do índice externo rápido, executando uma leitura direcionada de poucos kilobytes.
Otimizações de armazenamento e índices secundários
O RAP também implementa técnicas inteligentes de organização física. Os dados são ordenados por chaves de busca para limitar o volume de arquivos varridos, e atributos relacionados são intercalados em colunas de valor (interleaved columns) para otimizar leituras contíguas.
Adicionalmente, o sistema suporta índices secundários gerenciados diretamente na camada de serviço. Isso possibilita consultas flexíveis em múltiplas dimensões (como ID de vendedor ou comprador) sem reestruturar as pipelines de processamento analítico, complementando o uso de curvas de Hilbert e técnicas de Z-ordering para localidade espacial de dados.
| Caracteristica | Data Lake Comum | Banco NoSQL (Bigtable) | Spotify RAP |
|---|---|---|---|
| Finalidade | Analytics e IA em lote | Servico operacional online | Hibrido (Lote + Serving) |
| Custo Relativo | Baixo por Terabyte | Alto por Terabyte | Baixo (reutiliza o Lake) |
| Latencia de Busca | Alta (segundos) | Muito Baixa (milissegundos) | Baixa (milissegundos via indice) |
Arraste para o lado para ver toda a tabela.