StreamStats¶ ↑
<img src=“https://travis-ci.org/kadwanev/stream_stats.png” />
Extract statistics from long streams of data with minimal space usage and guaranteed precision.
Install¶ ↑
Add to Gemfile or gem install and require
gem 'stream_stats' require 'stream_stats'
Usage¶ ↑
Stream Quantile Processing¶ ↑
Create stream and add values
stream = StreamStats::Stream.new(0.001, [0.50, 0.90])
Parameters:
1) precision level 2) array of quantiles for guaranteed precision
The above example guarantees that the 50% and 90% percentile results are accurate to +/- 0.001.
Populate stream with samples:
(0..20).each do |i| stream << i end
Get stream result whenever desired:
count - count of stream entries quantile - query value at quantile percentile - query value at percentile min - query min value max - query max value mean - query mean stddev - query standard deviation of stream entries sum - query sum of stream entries squared_sum - query squared sum of stream entries
Stream Counting¶ ↑
Create counter and add values
counter = StreamStats::Counter.new
Populate counter with samples:
(0..20).each do |i| counter << i end
Get stream result whenever desired:
count - count of stream entries min - query min value max - query max value mean - query mean stddev - query standard deviation of stream entries sum - query sum of stream entries squared_sum - query squared sum of stream entries
Credit¶ ↑
Complete credit goes to Armon Dadgar.
Algorithm code copied directly out of [statsite](github.com/armon/statsite)