2017-10-26 2 views
-3

私は大量のデータを1秒ごとにpython辞書の形で入力していますが、現時点ではmySQLサーバに保存していますが、時間。データをローカルに保存し、毎時間、またはそれを時間単位で保存する最善の方法は何ですか?私はredisを試しましたが、後でこれらの辞書のリストを保存して、後でmySQLに移行することはできません。大規模なストリーミングデータをPythonで保存する

+0

を辞書はPythonの漬物やJSONを使用して直列化することができますされている場合は、Redisのリストにシリアライズされた辞書の文字列を格納することができます。 – mhawke

答えて

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 
関連する問題