This is a simple port of antirez/redis-timeseries to use Amazon AWS SimpleDB is the actual storage engine.
##Considerations
When updating an existing key, the new encoded value is just added to the array
of values. AWS imposes a limit on that array of 256 elements. Practically, this
means that timestep/flush_interval
should be selected such that no
more than 256 measurements are included in a single key -- in other words, if
data is written every 10 seconds, the maximum timestep used should be 2560
seconds (about 42 minutes of data will be contained within each key).
##Usage
$ irb >> require 'simpledb-timeseries' => true >> sdb = AwsSdb::Service.new => #, @progname=nil, @logdev=#, @dev=#, @shift_size=1048576>, @level=0, @formatter=nil>, @secret_access_key="SECRET", @base_url="http://sdb.amazonaws.com", @access_key_id="SECRET"> >> ts = SimpleDBTimeSeries.new("mytimeseries", 60, sdb) => #, @progname=nil, @logdev=#, @dev=#, @shift_size=1048576>, @level=0, @formatter=nil>, @secret_access_key="SECRET", @base_url="http://sdb.amazonaws.com", @access_key_id="SECRET">> >> ts.add("10") => nil >> ts.add("20") => nil >> ts.add("30") => nil >> ts.add("50") => nil >> ts.fetch_range(Time.now.to_i-120, Time.now.to_i) => [{:data=>"10", :time=>1317690578.02122, :origin_time=>nil}, {:data=>"20", :time=>1317690580.09161, :origin_time=>nil}, {:data=>"30", :time=>1317690581.9587, :origin_time=>nil}, {:data=>"50", :time=>1317690584.02876, :origin_time=>nil}] >>