在python中保存大型流数据

时间:2017-10-26 09:43:57

标签: python sql

我每秒钟都会以python词典的形式出现大量数据,现在我将它保存到mySQL服务器,因为它们进入但是会产生超过几个小时的积压。什么是在本地保存数据并将其每小时左右移动到mySQL服务器以节省时间的最佳方法。我已经尝试过redis但是它不能保存这些字典的列表,我可以稍后移动到mySQL。 / p>

1 个答案:

答案 0 :(得分:1)

关于Python原生pickle格式的一个鲜为人知的事实是,您可以愉快地将它们连接到一个文件中。

也就是说,只需以append模式打开文件,将pickle.dump()字典打开到该文件中即可。如果你想要更加花哨,你可以做一些像时间戳文件:

def ingest_data(data_dict):
    filename = '%s.pickles' % date.strftime('%Y-%m-%d_%H')
    with open(filename, 'ab') as outf:
        pickle.dump(data_dict, outf, pickle.HIGHEST_PROTOCOL)


def read_data(filename):
    with open(filename, 'rb') as inf:
        while True:
            yield pickle.load(inf)  # TODO: handle EOF error