Download - Collecting Uncertain Data the Reactive Way
![Page 1: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/1.jpg)
Collecting Uncertain Data the Reactive Way
Jeff Smith @jeffksmithjr
![Page 2: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/2.jpg)
x.ai is a personal assistant who schedules meetings for you
![Page 3: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/3.jpg)
![Page 4: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/4.jpg)
Reactive Machine Learning
![Page 5: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/5.jpg)
![Page 6: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/6.jpg)
![Page 7: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/7.jpg)
![Page 8: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/8.jpg)
Machine Learning Systems
![Page 9: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/9.jpg)
Machine Learning Systems
![Page 10: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/10.jpg)
Machine Learning Systems
![Page 11: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/11.jpg)
Traits of Reactive Systems
![Page 12: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/12.jpg)
Traits of Reactive Systems
![Page 13: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/13.jpg)
Reactive Strategies
![Page 14: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/14.jpg)
Reactive Strategies
![Page 15: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/15.jpg)
Reactive Machine Learning
![Page 16: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/16.jpg)
Reactive Machine Learning
![Page 17: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/17.jpg)
Reactive Machine Learning
![Page 18: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/18.jpg)
Collecting Data
![Page 19: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/19.jpg)
![Page 20: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/20.jpg)
![Page 21: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/21.jpg)
![Page 22: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/22.jpg)
What’s for dinner?
![Page 23: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/23.jpg)
![Page 24: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/24.jpg)
![Page 25: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/25.jpg)
![Page 26: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/26.jpg)
![Page 27: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/27.jpg)
![Page 28: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/28.jpg)
![Page 29: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/29.jpg)
Reactive Data Collection
![Page 30: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/30.jpg)
Modeling Uncertain Data
![Page 31: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/31.jpg)
Certain Data Model
case class ZebraReading(sensorId: Int, locationId: Int, timestamp: Long, count: Int)
![Page 32: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/32.jpg)
![Page 33: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/33.jpg)
Uncertainty Interval
27 33
![Page 34: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/34.jpg)
Uncertain Data Model
case class PreyReading(sensorId: Int, locationId: Int, timestamp: Long, animalsLowerBound: Double, animalsUpperBound: Double, percentZebras: Double)
![Page 35: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/35.jpg)
Scaling Data Collection
![Page 36: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/36.jpg)
![Page 37: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/37.jpg)
Simple Data Architecture
![Page 38: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/38.jpg)
Simple Data Architecture
![Page 39: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/39.jpg)
Mutable State
case class Region(id: Int)
import collection.mutable.HashMap var densities = new HashMap[Region, Double]()
densities.put(Region(4), 52.4)
![Page 40: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/40.jpg)
Scaling with Queues
![Page 41: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/41.jpg)
Scaling with Queues
![Page 42: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/42.jpg)
Out of Order Updates
![Page 43: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/43.jpg)
Out of Order Updates
densities.put(Region(6), 73.6) densities.put(Region(6), 0.5) densities.get(Region(6)).get
![Page 44: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/44.jpg)
Out of Order Updates
densities.put(Region(6), 73.6) densities.put(Region(6), 0.5) densities.get(Region(6)).get
densities.put(Region(6), 0.5) densities.put(Region(6), 73.6) densities.get(Region(6)).get
![Page 45: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/45.jpg)
Concurrent Collections
import collection.mutable._
var synchronizedDensities = new LinkedHashMap[Region, Double]() with SynchronizedMap[Region, Double]
![Page 46: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/46.jpg)
Scaling with Locks
![Page 47: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/47.jpg)
Scaling with Locks
![Page 48: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/48.jpg)
Immutable Factscase class PreyReading(sensorId: Int, locationId: Int, timestamp: Long, animalsLowerBound: Double, animalsUpperBound: Double, percentZebras: Double)
implicit val preyReadingFormatter = Json.format[PreyReading]
![Page 49: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/49.jpg)
Immutable Factsval reading = PreyReading(36, 12, currentTimeMillis(), 12.0, 18.0, 0.60)
val setDoc = bucket.set[PreyReading](readingId(reading), reading)
![Page 50: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/50.jpg)
Scaling with Distributed Databases
![Page 51: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/51.jpg)
Scaling with Distributed Databases
![Page 52: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/52.jpg)
Handling Incomplete Data
![Page 53: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/53.jpg)
Distributed Data Storage
![Page 54: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/54.jpg)
Querying Complete Data
(bucket.searchValues[PreyReading]("prey", "by_sensor_id") (new Query().setIncludeDocs(true))) .enumerate.apply(Iteratee.foreach { doc => println(s"Prey Reading: $doc")})
![Page 55: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/55.jpg)
Complete Data
![Page 56: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/56.jpg)
Partition Tolerance
![Page 57: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/57.jpg)
Partition Tolerance
![Page 58: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/58.jpg)
Partition Tolerance
![Page 59: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/59.jpg)
Partition Tolerance
![Page 60: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/60.jpg)
Querying Incomplete Data
(bucket.searchValues[PreyReading]("prey", "by_sensor_id") (new Query().setIncludeDocs(true))) .enumerate.apply(Iteratee.foreach { doc => println(s"Prey Reading: $doc")})
![Page 61: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/61.jpg)
Incomplete Data
![Page 62: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/62.jpg)
Incomplete Data
![Page 63: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/63.jpg)
Reactive Data Collection
![Page 64: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/64.jpg)
For Later
![Page 65: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/65.jpg)
reactivemachinelearning.com medium.com/data-engineering
M A N N I N G
Jeff Smith
![Page 66: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/66.jpg)
x.ai @xdotai [email protected] New York, New York
![Page 67: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/67.jpg)
skillsmatter.com/conferences/ 6862-scala-exchange-2015#skillscasts
![Page 68: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/68.jpg)
Thank You
![Page 69: Collecting Uncertain Data the Reactive Way](https://reader033.vdocument.in/reader033/viewer/2022050613/587d23f31a28ab1c2f8b61b3/html5/thumbnails/69.jpg)
Collecting Uncertain Data the Reactive Way
Jeff Smith @jeffksmithjr