用于复制或简单传输数据的数据库

时间:2012-05-11 19:15:42

标签: sqlite database-design nosql relational-database replication

我将尝试描述选择好技术的问题。

我有很多机器在本地存储数据库。并且有一台客户机具有自己的数据库。我需要的是从所有机器中提取数据并放入客户端的数据库中。 现在我已经开始实现一些RPC,但我不知道它是否是好主意。因为我需要手动处理每个表。数据库是SQLite。

什么是更好的。进行一些RPC调用或找到一些复制的轻型数据库?也许NoSQL db像MonoDB一样?

1 个答案:

答案 0 :(得分:0)

我有类似的设置,我有几个服务器收集各种统计信息并存储在sqlite3数据库中。将它们组合起来非常简单。我有一个连接到每个服务器的python脚本,将每个数据库文件下载到一个临时文件夹中。然后我打开第一个文件,并为每个文件使用ATTACH,然后为每个表插入*以将所有其他数据库合并到一个组合数据库中:

conn = connect('/tmp/database1.sl3');
curs = conn.cursor();

mergeDatabases(curs, 8);

def mergeDatabases(curs, j):
    for i in range(2, j):
            print "merge in database%d" %i
            print "ATTACH '/tmp/database%d.sl3' AS foo%d;" %(i,i)
            curs.execute("ATTACH '/tmp/database%d.sl3' AS foo%d;" %(i,i))      
            curs.execute("insert into db select * from foo%d.db;" %i)
            curs.execute("insert into vars select * from foo%d.vars;" %i)

            curs.execute("detach foo%d;" %i)