1

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

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

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

4

1 回答 1

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)
于 2012-05-13T10:38:08.080 回答