Pergunta

Estou fazendo algumas consultas no Python em um grande banco de dados para obter algumas estatísticas do banco de dados. Quero que essas estatísticas estejam na memória para que outros programas possam usá-los sem ir a um banco de dados.

Eu estava pensando em como estruturá -los e, depois de tentar criar alguns dicionários aninhados complicados, percebi que uma boa representação seria uma tabela SQL. Não quero armazenar os dados de volta no banco de dados persistente. Existem implementações na memória de um banco de dados SQL que suporta consultar os dados com sintaxe SQL?

Foi útil?

Solução

SQLITE3 pode funcionar. A interface python suporte A implementação na memória que a API SQLITE3 C oferece.

Da especificação:

Você também pode fornecer o nome especial: Memória: para criar um banco de dados na RAM.

Também é relativamente barato com as transações, dependendo do que você está fazendo. Para ir, apenas:

import sqlite3
conn = sqlite3.connect(':memory:')

Você pode prosseguir como se estivesse usando um banco de dados regular.

Dependendo dos seus dados - se você pode obter com chave/valor (strings, hashes, listas, conjuntos, conjuntos classificados, etc.) - Redis Pode ser outra opção para explorar (como você mencionou que deseja compartilhar com outros programas).

Outras dicas

Eu acho que o SQLITE3 será a melhor opção então.

Se possível, dê uma olhada em Memcached. (Para par de valores-chave, iluminação rápida!)

Atualização 1:

HSQLDB Para mesas como SQL. (sem suporte Python)

Você poderia usar um banco de dados como Sqlite. Não está falando estritamente na memória, mas é bastante leve e seria completamente separado do seu banco de dados principal.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top