based on https://dl.acm.org/doi/10.1145/2043165.2043167

This operator can be used better in streaming scenarios, as it forgets older settings.

There are two versions, one used the current system time for decay and the other the timestamps given by the stream

Parameters:

  • Element to filter (Object)
  • Optional: The current time as milliseconds (use Date Functions if the value is given in a different format)
  • Expected count of different elements
  • False positive rate
  • The decay time in milliseconds
  • returns true, if the element is potenially already read and false if its sure new (based on the decay time)


output = MAP({
    expressions = ['timeDecayingBloomFilter(attr, 10000, 0.01, 60000)']
}, input)

output = MAP({
    expressions = ['timeDecayingBloomFilter(attr, 10000, 0.01, 60000)']
}, input)



output = MAP({
    expressions = ['timeDecayingBloomFilter(attr, TimeInterval.START, 10000, 0.01, 60000)']
}, input)

output = MAP({
    expressions = ['timeDecayingBloomFilter(attr, eventTimestamp, 10000, 0.01, 60000)']
}, input)




  • No labels