Armazenamento eficiente de 7.300.000.000 linhas
Como você resolveria o seguinte problema de armazenamento e recuperação?
Cerca de 2.000.000 linhas serão adicionadas a cada dia (365 dias / ano) com as seguintes informações por linha:
id (identificador de linha exclusivo)entity_id (assume valores entre 1 e 2.000.000, inclusive)date_id (incrementado com um por dia - assumirá valores entre 1 e 3.650 (dez anos: 1 * 365 * 10)) value_1 (assume valores entre 1 e 1.000.000, inclusive) value_2 (assume valores entre 1 e 1.000.000, inclusive)entity_id combinado com date_id é único. Portanto, no máximo uma linha por entidade e data pode ser adicionada à tabela. O banco de dados deve poder armazenar 10 anos de dados diários (7.300.000.000 linhas (3.650 * 2.000.000)).
O que é descrito acima são os padrões de gravação. O padrão de leitura é simples: todas as consultas serão feitas em um entity_id específico. I.e. recupere todas as linhas que descrevem entity_id = 12345.
suporte transacional não é necessário, mas a solução de armazenamento deve ser de código aberto. Idealmente, eu gostaria de usar o MySQL, mas estou aberto a sugestões.
Agora - como você lidaria com o problema descrit
Atualizar Me pediram para elaborar sobre os padrões de leitura e gravação. As gravações na tabela serão feitas em um lote por dia, onde as novas entradas de 2 milhões serão adicionadas de uma só vez. As leituras serão feitas continuamente com uma leitura a cada segund