我将尝试描述选择好技术的问题。
我有很多机器在本地存储数据库。并且有一台客户机具有自己的数据库。我需要的是从所有机器中提取数据并放入客户端的数据库中。 现在我已经开始实现一些RPC,但我不知道它是否是好主意。因为我需要手动处理每个表。数据库是SQLite。
什么是更好的。进行一些RPC调用或找到一些复制的轻型数据库?也许NoSQL db像MonoDB一样?
答案 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)