Raspberry Pi を使用して気象観測所を作成しています。さまざまなセンサー (温度、湿度、圧力、雨など) 用に mySQL データベースをセットアップしており、風センサーの処理に取りかかっています。
風速計の GPIO ピンを監視し、パルスをカウントして風速を計算する Python プログラムがあります。また、ADC を介して風向計プロセスから読み取り、方向を取得します。他のセンサーについては、数分ごとに処理し、データを直接 DB にダンプします。風センサー データから多くのことを計算する必要があるため、必ずしも 5 秒ごとに DB に書き込み、現在の速度と方向を計算するために過去 5 分間のデータを読み戻す必要はありません。データをメモリに集めて加工し、確定したデータをDBに書き込みたい。センサーの読み取り値は次のようなものです。
日時、速度、方向
2013-6-20 09:33:45, 4.5, W
2013-6-20 09:33:50, 4.0, SW
2013-6-20 09:33:55, 4.3, W
プログラムは、風センサーから 5 秒ごとにデータを計算しています。5分ごとにDBにデータを書き込みたいです。DB は SD カード上にあるため、DB に 60 回書き込み、それを読み込んで処理し、5 分ごとに永続的なアーカイブ DB に書き込むことは明らかにしたくありません。
リストのリストを使用したほうがよいでしょうか? それとも日時をキーにしたタプルの辞書ですか?
{datetime.datetime(2013, 6, 20, 9, 33, 45, 631816): ('4.5', 'W')}
{datetime.datetime(2013, 6, 20, 9, 33, 50, 394820): ('4.0', 'SW')}
{datetime.datetime(2013, 6, 20, 9, 33, 55, 387294): ('4.3', 'W')}
後者の場合、辞書を更新する最良の方法は何ですか? それをDBにダンプして読み返すだけですか?非常に少ないデータに対して、1 日の読み取り/書き込みの量が多すぎるように思えます。