SlideShare a Scribd company logo
1 of 20
Download to read offline
PRESENTED BY
Developing and Deploying
Edge Analytics
David Rauschenbach
Nubix.io, CTO
PRESENTED BY
1 IoT and Edge Architectures
A brief overview of Enterprise Architectures with Cloud, Fog, and Edge components
2 Open Source Projects Used
A brief overview of the open source projects used in this demo and links to them
3 Demo: Streaming Data into Redis on Edge Devices
A stream of sensor data will be collected and stored in Redis on an edge device.
Agenda:
4 Demo: Running Spark on the Edge with Redis Integration
A simple analytic will be developed using Spark & Redis, deployed to the edge, and executed
PRESENTED BY
Device Edge
Casually connected
Edge Architectures
Fog
Commonly air-gapped
Server Edge
Tethered
PRESENTED BY
Why are Analytics Required at the Source of Data?
Because:
Sense, Infer, Act
“Return to the Edge” (2016)
by Peter Levine, Andreessen Horowitz
PRESENTED BY
Cloud and Device Edge: Two Worlds Under Pressure to Meet
Devices
•Under pressure to add intelligence and inference
•Which requires frequent updates (a tectonic shift for
the embedded world)
•Which requires best-of-breed cloud workflows like
aPaaS, IaaS, and Continuous Integration
Cloud
•Under pressure to realize the final 92% of Digital
Transformation, which hasn’t happened yet
because products live outside of datacenters
•Data Scientists don’t use desktop power supplies
and serial cables
•Don’t have tooling to program in 32k of RAM
PRESENTED BY
Open Source Projects We Are Going to Use
PRESENTED BY
• Use your favorite LuaRocks modules within Redis
• GitHub: github.com/BixData/lua-amalg-redis
• Blog: https://medium.com/nubix-open-source-edge-computing/introducing-the-
lua-amalgamator-for-redis-c498434c2154
Open Source #1: Lua Amalgamator for Redis
PRESENTED BY
PRESENTED BY
Moses: the Lodash / Underscore of the Lua ecosystem
Using Moses within Redis
$ luarocks install moses
$ vi main.lua
local moses = require 'moses'
local data = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29}
local sum = moses.reduce(data, function(r, n)
return r + n
end)
print(string.format('Sum of first %d primes is %d', #data, sum))
return sum
$ lua –lamalg-redis main.lua
Sum of first 10 primes is 129
$ amalg-redis.lua –s main.lua –o main-with-dependencies.lua –c
$ redis-cli --eval main-with-dependencies.lua 0,0
(integer) 129
PRESENTED BY
Open Source #2: Stuart
PRESENTED BY
Using Spark ML Vectors within Redis
$ luarocks install stuart-ml
$ vi main.lua
local BLAS = require 'stuart-ml.linalg.BLAS'
local Vectors = require 'stuart-ml.linalg.Vectors'
local a = Vectors.dense({1,2,3})
local b = Vectors.dense({4,-5,6})
local dotProduct = BLAS.dot(a, b)
local isAcuteAngle = dotProduct > 0
print(string.format('The dot product of [{1,2,3}, {4,-5,6}] is %d, which %s an acute angle',
dotProduct, isAcuteAngle and 'is' or 'is not'))
return dotProduct
$ lua –lamalg-redis main.lua
The dot product of [{1,2,3}, {4,-5,6}] is 12, which is an acute angle
$ amalg-redis.lua –s main.lua –o main-with-dependencies.lua –c
$ redis-cli --eval main-with-dependencies.lua 0,0
(integer) 12
PRESENTED BY
Using Spark ML Matrices within Redis
$ vi main.lua
local Matrices = require 'stuart-ml.linalg.Matrices'
local matrix = Matrices.sparse(3, 2, {0, 2, 3}, {0, 2, 1}, {0.0, -1.2, 0.0})
local msg = string.format('The sparse matrix %s has %d non-zeros and %d actives',
'(3, 2, {0, 2, 3}, {0, 2, 1}, {0.0, -1.2, 0.0})',
matrix:numNonzeros(),
matrix:numActives())
print(msg)
return msg
$ lua –lamalg-redis main.lua
The sparse matrix (3, 2, {0, 2, 3}, {0, 2, 1}, {0.0, -1.2, 0.0}) has 1 non-zeros and 3 actives
$ amalg-redis.lua –s main.lua –o main-with-dependencies.lua –c
$ redis-cli --eval main-with-dependencies.lua 0,0
"The sparse matrix (3, 2, {0, 2, 3}, {0, 2, 1}, {0.0, -1.2, 0.0}) has 1 non-zeros and 3 actives"
PRESENTED BY
Using Spark ML K-means Clustering within Redis
$ vi main.lua
local KMeans = require 'stuart-ml.clustering.KMeans'
local Vectors = require 'stuart-ml.linalg.Vectors'
local VectorWithNorm = require 'stuart-ml.clustering.VectorWithNorm'
local centers = {
VectorWithNorm.new(Vectors.dense(1,2,6)),
VectorWithNorm.new(Vectors.dense(5,3,9)),
VectorWithNorm.new(Vectors.dense(9,4,7))
}
local point = VectorWithNorm.new(Vectors.dense(6,2,5))
local bestIndex, bestDistance = KMeans.findClosest(centers, point)
local msg = string.format('The point %s is closest to cluster center #%d, with a distance of %d',
tostring(point), bestIndex, bestDistance)
print(msg)
return msg
$ lua –lamalg-redis main.lua
The point ((6,2,5),8.0622577482985) is closest to cluster center #3, with a distance of 17
$ amalg-redis.lua –s main.lua –o main-with-dependencies.lua –c
$ redis-cli --eval main-with-dependencies.lua 0,0
"The point ((6,2,5),8.0622577482985) is closest to cluster center #3, with a distance of 17"
PRESENTED BY
Open Source #3: Stuart-Redis
PRESENTED BY
Reading+Writing Spark RDDs within Redis$ luarocks install stuart-redis
$ vi main.lua
local stuart = require 'stuart'
local stuartRedis = require 'stuart-redis'
local function split(str, pattern)
local res = {}
for s in string.gmatch(str, pattern) do table.insert(res, s) end
return res
end
local sc = stuart.NewContext()
sc = stuartRedis.export(sc)
-- writing
local doc = [[I mean, think about music. Music is all about repetition and patterns.
If you didn’t have repetition in music, it would all just be noise.]]
local words = sc:parallelize(split(doc, '%w+'))
local wordCountsRDD = words
:map(function(word) return {string.lower(word), 1} end)
:reduceByKey(function(r, x) return r+x end)
:map(function(e) return {e[1], e[2]} end)
sc:toRedisZSET(wordCountsRDD, 'wordCounts')
-- reading
local wordFrequencies = sc:fromRedisZSetWithScore('wordCounts')
:map(function(e) return e[1] .. '=' .. e[2] end)
:collect()
local msg = table.concat(wordFrequencies, ', ')
print(msg)
return msg
PRESENTED BY
Reading+Writing Spark RDDs within Redis (continued)
$ redis-cli
monitor
1554135760.154290 [0 127.0.0.1:64608] "EVAL" ”(5,300 lines, 177k not shown)"
1554136904.716402 [0 lua] "ZADD" "wordCounts" "1" "it"
1554136904.716415 [0 lua] "ZADD" "wordCounts" "1" "didn"
1554136904.716420 [0 lua] "ZADD" "wordCounts" "1" "mean"
1554136904.716425 [0 lua] "ZADD" "wordCounts" "1" "is"
1554136904.716429 [0 lua] "ZADD" "wordCounts" "2" "repetition"
1554136904.716435 [0 lua] "ZADD" "wordCounts" "1" "i"
1554136904.716439 [0 lua] "ZADD" "wordCounts" "1" "think"
1554136904.716444 [0 lua] "ZADD" "wordCounts" "1" "would"
1554136904.716449 [0 lua] "ZADD" "wordCounts" "1" "noise"
1554136904.716453 [0 lua] "ZADD" "wordCounts" "1" "just"
1554136904.716458 [0 lua] "ZADD" "wordCounts" "1" "t"
1554136904.716463 [0 lua] "ZADD" "wordCounts" "1" "if"
1554136904.716467 [0 lua] "ZADD" "wordCounts" "1" "you"
1554136904.716472 [0 lua] "ZADD" "wordCounts" "1" "in"
1554136904.716506 [0 lua] "ZADD" "wordCounts" "1" "patterns"
1554136904.716511 [0 lua] "ZADD" "wordCounts" "1" "be"
1554136904.716515 [0 lua] "ZADD" "wordCounts" "1" "have"
1554136904.716520 [0 lua] "ZADD" "wordCounts" "2" "about"
1554136904.716525 [0 lua] "ZADD" "wordCounts" "2" "all"
1554136904.716530 [0 lua] "ZADD" "wordCounts" "1" "and"
1554136904.716534 [0 lua] "ZADD" "wordCounts" "3" "music"
1554136904.716541 [0 lua] "KEYS" "wordCounts"
1554136904.716846 [0 lua] "TYPE" "wordCounts"
1554136904.717252 [0 lua] "ZRANGE" "wordCounts" "0" "-1" "WITHSCORES"
$ lua –lamalg-redis main.lua
and=1, be=1, didn=1, have=1, i=1, if=1,
in=1, is=1, it=1, just=1, mean=1,
noise=1, patterns=1, t=1, think=1,
would=1, you=1, about=2, all=2,
repetition=2, music=3
(… manual edits to amalg.cache …)
$ amalg-redis.lua –s main.lua –o main-
with-dependencies.lua –c
$ redis-cli --eval main-with-
dependencies.lua 0,0
"and=1, be=1, didn=1, have=1, i=1, if=1,
in=1, is=1, it=1, just=1, mean=1,
noise=1, patterns=1, t=1, think=1,
would=1, you=1, about=2, all=2,
repetition=2, music=3"
PRESENTED BY
Hardware
• Raspberry Pi 3 B+
• BME280 Atmospheric Sensor
• I²C Communication Bus(shown in
orange+yellow)
Software
• Raspbian OS
• Redis 5.0
• Nubix Agent
DEMO 1: Streaming Data into Redis on an Edge Device
PRESENTED BY
Hardware
• Raspberry Pi 3 B+
• BME280 Atmospheric Sensor
• I²C Communication Bus(shown in
orange+yellow)
Software
•Redis 5.0 (unmodified, no
plugins)
• Lua submitted via standard
redis-cli
DEMO 2: Spark Analytics within Redis on Edge Device
Thank you!
PRESENTED BY

More Related Content

What's hot

Extra credit
Extra creditExtra credit
Extra creditmetaldart
 
Extra credit FINAL
Extra credit FINALExtra credit FINAL
Extra credit FINALmetaldart
 
BlackPearl: Spectra S3 vs. Standard S3
BlackPearl: Spectra S3 vs. Standard S3BlackPearl: Spectra S3 vs. Standard S3
BlackPearl: Spectra S3 vs. Standard S3Jeff Braunstein
 
431 Slide Final
431 Slide Final431 Slide Final
431 Slide Finalmetaldart
 
Heap Hand note
Heap Hand noteHeap Hand note
Heap Hand noteAbdur Rouf
 
Latent Semantic Analysis of Wikipedia with Spark
Latent Semantic Analysis of Wikipedia with SparkLatent Semantic Analysis of Wikipedia with Spark
Latent Semantic Analysis of Wikipedia with SparkSandy Ryza
 
Wuala, P2P Online Storage
Wuala, P2P Online StorageWuala, P2P Online Storage
Wuala, P2P Online Storageadunne
 
DUG'20: 12 - DAOS in Lenovo’s HPC Innovation Center
DUG'20: 12 - DAOS in Lenovo’s HPC Innovation CenterDUG'20: 12 - DAOS in Lenovo’s HPC Innovation Center
DUG'20: 12 - DAOS in Lenovo’s HPC Innovation CenterAndrey Kudryavtsev
 
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...Paul Brebner
 
Do snow.rwn
Do snow.rwnDo snow.rwn
Do snow.rwnARUN DN
 
Data Structure and Algorithms Heaps and Trees
Data Structure and Algorithms Heaps and TreesData Structure and Algorithms Heaps and Trees
Data Structure and Algorithms Heaps and TreesManishPrajapati78
 
Aspectual Components Implementation: Examples
Aspectual Components Implementation: ExamplesAspectual Components Implementation: Examples
Aspectual Components Implementation: Examplesmukhtarhudaya
 
Data Mining with Splunk
Data Mining with SplunkData Mining with Splunk
Data Mining with SplunkDavid Carasso
 

What's hot (14)

Extra credit
Extra creditExtra credit
Extra credit
 
Extra credit FINAL
Extra credit FINALExtra credit FINAL
Extra credit FINAL
 
BlackPearl: Spectra S3 vs. Standard S3
BlackPearl: Spectra S3 vs. Standard S3BlackPearl: Spectra S3 vs. Standard S3
BlackPearl: Spectra S3 vs. Standard S3
 
431 Slide Final
431 Slide Final431 Slide Final
431 Slide Final
 
Heap Hand note
Heap Hand noteHeap Hand note
Heap Hand note
 
Latent Semantic Analysis of Wikipedia with Spark
Latent Semantic Analysis of Wikipedia with SparkLatent Semantic Analysis of Wikipedia with Spark
Latent Semantic Analysis of Wikipedia with Spark
 
Wuala, P2P Online Storage
Wuala, P2P Online StorageWuala, P2P Online Storage
Wuala, P2P Online Storage
 
DPNHTW
DPNHTWDPNHTW
DPNHTW
 
DUG'20: 12 - DAOS in Lenovo’s HPC Innovation Center
DUG'20: 12 - DAOS in Lenovo’s HPC Innovation CenterDUG'20: 12 - DAOS in Lenovo’s HPC Innovation Center
DUG'20: 12 - DAOS in Lenovo’s HPC Innovation Center
 
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
 
Do snow.rwn
Do snow.rwnDo snow.rwn
Do snow.rwn
 
Data Structure and Algorithms Heaps and Trees
Data Structure and Algorithms Heaps and TreesData Structure and Algorithms Heaps and Trees
Data Structure and Algorithms Heaps and Trees
 
Aspectual Components Implementation: Examples
Aspectual Components Implementation: ExamplesAspectual Components Implementation: Examples
Aspectual Components Implementation: Examples
 
Data Mining with Splunk
Data Mining with SplunkData Mining with Splunk
Data Mining with Splunk
 

Similar to Developing And Deploying Edge Analytics: Dave Rauschenbach

Beyond the Query – Bringing Complex Access Patterns to NoSQL with DataStax - ...
Beyond the Query – Bringing Complex Access Patterns to NoSQL with DataStax - ...Beyond the Query – Bringing Complex Access Patterns to NoSQL with DataStax - ...
Beyond the Query – Bringing Complex Access Patterns to NoSQL with DataStax - ...StampedeCon
 
Beyond the Query: A Cassandra + Solr + Spark Love Triangle Using Datastax Ent...
Beyond the Query: A Cassandra + Solr + Spark Love Triangle Using Datastax Ent...Beyond the Query: A Cassandra + Solr + Spark Love Triangle Using Datastax Ent...
Beyond the Query: A Cassandra + Solr + Spark Love Triangle Using Datastax Ent...DataStax Academy
 
ComputeFest 2012: Intro To R for Physical Sciences
ComputeFest 2012: Intro To R for Physical SciencesComputeFest 2012: Intro To R for Physical Sciences
ComputeFest 2012: Intro To R for Physical Sciencesalexstorer
 
A Cassandra + Solr + Spark Love Triangle Using DataStax Enterprise
A Cassandra + Solr + Spark Love Triangle Using DataStax EnterpriseA Cassandra + Solr + Spark Love Triangle Using DataStax Enterprise
A Cassandra + Solr + Spark Love Triangle Using DataStax EnterprisePatrick McFadin
 
The Art Of Readable Code
The Art Of Readable CodeThe Art Of Readable Code
The Art Of Readable CodeBaidu, Inc.
 
CouchDB Mobile - From Couch to 5K in 1 Hour
CouchDB Mobile - From Couch to 5K in 1 HourCouchDB Mobile - From Couch to 5K in 1 Hour
CouchDB Mobile - From Couch to 5K in 1 HourPeter Friese
 
Introduction to Spark with Scala
Introduction to Spark with ScalaIntroduction to Spark with Scala
Introduction to Spark with ScalaHimanshu Gupta
 
k-means algorithm implementation on Hadoop
k-means algorithm implementation on Hadoopk-means algorithm implementation on Hadoop
k-means algorithm implementation on HadoopStratos Gounidellis
 
Nomad Multi-Cloud
Nomad Multi-CloudNomad Multi-Cloud
Nomad Multi-CloudNic Jackson
 
Spark_tutorial (1).pptx
Spark_tutorial (1).pptxSpark_tutorial (1).pptx
Spark_tutorial (1).pptx0111002
 
Unlocking Your Hadoop Data with Apache Spark and CDH5
Unlocking Your Hadoop Data with Apache Spark and CDH5Unlocking Your Hadoop Data with Apache Spark and CDH5
Unlocking Your Hadoop Data with Apache Spark and CDH5SAP Concur
 
Implementation of k means algorithm on Hadoop
Implementation of k means algorithm on HadoopImplementation of k means algorithm on Hadoop
Implementation of k means algorithm on HadoopLamprini Koutsokera
 
Infrastructure-as-code: bridging the gap between Devs and Ops
Infrastructure-as-code: bridging the gap between Devs and OpsInfrastructure-as-code: bridging the gap between Devs and Ops
Infrastructure-as-code: bridging the gap between Devs and OpsMykyta Protsenko
 
Analyzing Time Series Data with Apache Spark and Cassandra
Analyzing Time Series Data with Apache Spark and CassandraAnalyzing Time Series Data with Apache Spark and Cassandra
Analyzing Time Series Data with Apache Spark and CassandraPatrick McFadin
 
Блохин Леонид - "Mist, как часть Hydrosphere"
Блохин Леонид - "Mist, как часть Hydrosphere"Блохин Леонид - "Mist, как часть Hydrosphere"
Блохин Леонид - "Mist, как часть Hydrosphere"Provectus
 
Scaling with MongoDB
Scaling with MongoDBScaling with MongoDB
Scaling with MongoDBMongoDB
 
[AI04] Scaling Machine Learning to Big Data Using SparkML and SparkR
[AI04] Scaling Machine Learning to Big Data Using SparkML and SparkR[AI04] Scaling Machine Learning to Big Data Using SparkML and SparkR
[AI04] Scaling Machine Learning to Big Data Using SparkML and SparkRde:code 2017
 
MongoDB World 2019: Exploring your MongoDB Data with Pirates (R) and Snakes (...
MongoDB World 2019: Exploring your MongoDB Data with Pirates (R) and Snakes (...MongoDB World 2019: Exploring your MongoDB Data with Pirates (R) and Snakes (...
MongoDB World 2019: Exploring your MongoDB Data with Pirates (R) and Snakes (...MongoDB
 

Similar to Developing And Deploying Edge Analytics: Dave Rauschenbach (20)

Beyond the Query – Bringing Complex Access Patterns to NoSQL with DataStax - ...
Beyond the Query – Bringing Complex Access Patterns to NoSQL with DataStax - ...Beyond the Query – Bringing Complex Access Patterns to NoSQL with DataStax - ...
Beyond the Query – Bringing Complex Access Patterns to NoSQL with DataStax - ...
 
Deathstar
DeathstarDeathstar
Deathstar
 
Beyond the Query: A Cassandra + Solr + Spark Love Triangle Using Datastax Ent...
Beyond the Query: A Cassandra + Solr + Spark Love Triangle Using Datastax Ent...Beyond the Query: A Cassandra + Solr + Spark Love Triangle Using Datastax Ent...
Beyond the Query: A Cassandra + Solr + Spark Love Triangle Using Datastax Ent...
 
ComputeFest 2012: Intro To R for Physical Sciences
ComputeFest 2012: Intro To R for Physical SciencesComputeFest 2012: Intro To R for Physical Sciences
ComputeFest 2012: Intro To R for Physical Sciences
 
A Cassandra + Solr + Spark Love Triangle Using DataStax Enterprise
A Cassandra + Solr + Spark Love Triangle Using DataStax EnterpriseA Cassandra + Solr + Spark Love Triangle Using DataStax Enterprise
A Cassandra + Solr + Spark Love Triangle Using DataStax Enterprise
 
The Art Of Readable Code
The Art Of Readable CodeThe Art Of Readable Code
The Art Of Readable Code
 
CouchDB Mobile - From Couch to 5K in 1 Hour
CouchDB Mobile - From Couch to 5K in 1 HourCouchDB Mobile - From Couch to 5K in 1 Hour
CouchDB Mobile - From Couch to 5K in 1 Hour
 
Introduction to Spark with Scala
Introduction to Spark with ScalaIntroduction to Spark with Scala
Introduction to Spark with Scala
 
k-means algorithm implementation on Hadoop
k-means algorithm implementation on Hadoopk-means algorithm implementation on Hadoop
k-means algorithm implementation on Hadoop
 
Nomad Multi-Cloud
Nomad Multi-CloudNomad Multi-Cloud
Nomad Multi-Cloud
 
Spark_tutorial (1).pptx
Spark_tutorial (1).pptxSpark_tutorial (1).pptx
Spark_tutorial (1).pptx
 
MongoDB 3.0
MongoDB 3.0 MongoDB 3.0
MongoDB 3.0
 
Unlocking Your Hadoop Data with Apache Spark and CDH5
Unlocking Your Hadoop Data with Apache Spark and CDH5Unlocking Your Hadoop Data with Apache Spark and CDH5
Unlocking Your Hadoop Data with Apache Spark and CDH5
 
Implementation of k means algorithm on Hadoop
Implementation of k means algorithm on HadoopImplementation of k means algorithm on Hadoop
Implementation of k means algorithm on Hadoop
 
Infrastructure-as-code: bridging the gap between Devs and Ops
Infrastructure-as-code: bridging the gap between Devs and OpsInfrastructure-as-code: bridging the gap between Devs and Ops
Infrastructure-as-code: bridging the gap between Devs and Ops
 
Analyzing Time Series Data with Apache Spark and Cassandra
Analyzing Time Series Data with Apache Spark and CassandraAnalyzing Time Series Data with Apache Spark and Cassandra
Analyzing Time Series Data with Apache Spark and Cassandra
 
Блохин Леонид - "Mist, как часть Hydrosphere"
Блохин Леонид - "Mist, как часть Hydrosphere"Блохин Леонид - "Mist, как часть Hydrosphere"
Блохин Леонид - "Mist, как часть Hydrosphere"
 
Scaling with MongoDB
Scaling with MongoDBScaling with MongoDB
Scaling with MongoDB
 
[AI04] Scaling Machine Learning to Big Data Using SparkML and SparkR
[AI04] Scaling Machine Learning to Big Data Using SparkML and SparkR[AI04] Scaling Machine Learning to Big Data Using SparkML and SparkR
[AI04] Scaling Machine Learning to Big Data Using SparkML and SparkR
 
MongoDB World 2019: Exploring your MongoDB Data with Pirates (R) and Snakes (...
MongoDB World 2019: Exploring your MongoDB Data with Pirates (R) and Snakes (...MongoDB World 2019: Exploring your MongoDB Data with Pirates (R) and Snakes (...
MongoDB World 2019: Exploring your MongoDB Data with Pirates (R) and Snakes (...
 

More from Redis Labs

Redis Day Bangalore 2020 - Session state caching with redis
Redis Day Bangalore 2020 - Session state caching with redisRedis Day Bangalore 2020 - Session state caching with redis
Redis Day Bangalore 2020 - Session state caching with redisRedis Labs
 
Protecting Your API with Redis by Jane Paek - Redis Day Seattle 2020
Protecting Your API with Redis by Jane Paek - Redis Day Seattle 2020Protecting Your API with Redis by Jane Paek - Redis Day Seattle 2020
Protecting Your API with Redis by Jane Paek - Redis Day Seattle 2020Redis Labs
 
The Happy Marriage of Redis and Protobuf by Scott Haines of Twilio - Redis Da...
The Happy Marriage of Redis and Protobuf by Scott Haines of Twilio - Redis Da...The Happy Marriage of Redis and Protobuf by Scott Haines of Twilio - Redis Da...
The Happy Marriage of Redis and Protobuf by Scott Haines of Twilio - Redis Da...Redis Labs
 
SQL, Redis and Kubernetes by Paul Stanton of Windocks - Redis Day Seattle 2020
SQL, Redis and Kubernetes by Paul Stanton of Windocks - Redis Day Seattle 2020SQL, Redis and Kubernetes by Paul Stanton of Windocks - Redis Day Seattle 2020
SQL, Redis and Kubernetes by Paul Stanton of Windocks - Redis Day Seattle 2020Redis Labs
 
Rust and Redis - Solving Problems for Kubernetes by Ravi Jagannathan of VMwar...
Rust and Redis - Solving Problems for Kubernetes by Ravi Jagannathan of VMwar...Rust and Redis - Solving Problems for Kubernetes by Ravi Jagannathan of VMwar...
Rust and Redis - Solving Problems for Kubernetes by Ravi Jagannathan of VMwar...Redis Labs
 
Redis for Data Science and Engineering by Dmitry Polyakovsky of Oracle
Redis for Data Science and Engineering by Dmitry Polyakovsky of OracleRedis for Data Science and Engineering by Dmitry Polyakovsky of Oracle
Redis for Data Science and Engineering by Dmitry Polyakovsky of OracleRedis Labs
 
Practical Use Cases for ACLs in Redis 6 by Jamie Scott - Redis Day Seattle 2020
Practical Use Cases for ACLs in Redis 6 by Jamie Scott - Redis Day Seattle 2020Practical Use Cases for ACLs in Redis 6 by Jamie Scott - Redis Day Seattle 2020
Practical Use Cases for ACLs in Redis 6 by Jamie Scott - Redis Day Seattle 2020Redis Labs
 
Moving Beyond Cache by Yiftach Shoolman Redis Labs - Redis Day Seattle 2020
Moving Beyond Cache by Yiftach Shoolman Redis Labs - Redis Day Seattle 2020Moving Beyond Cache by Yiftach Shoolman Redis Labs - Redis Day Seattle 2020
Moving Beyond Cache by Yiftach Shoolman Redis Labs - Redis Day Seattle 2020Redis Labs
 
Leveraging Redis for System Monitoring by Adam McCormick of SBG - Redis Day S...
Leveraging Redis for System Monitoring by Adam McCormick of SBG - Redis Day S...Leveraging Redis for System Monitoring by Adam McCormick of SBG - Redis Day S...
Leveraging Redis for System Monitoring by Adam McCormick of SBG - Redis Day S...Redis Labs
 
JSON in Redis - When to use RedisJSON by Jay Won of Coupang - Redis Day Seatt...
JSON in Redis - When to use RedisJSON by Jay Won of Coupang - Redis Day Seatt...JSON in Redis - When to use RedisJSON by Jay Won of Coupang - Redis Day Seatt...
JSON in Redis - When to use RedisJSON by Jay Won of Coupang - Redis Day Seatt...Redis Labs
 
Highly Available Persistent Session Management Service by Mohamed Elmergawi o...
Highly Available Persistent Session Management Service by Mohamed Elmergawi o...Highly Available Persistent Session Management Service by Mohamed Elmergawi o...
Highly Available Persistent Session Management Service by Mohamed Elmergawi o...Redis Labs
 
Anatomy of a Redis Command by Madelyn Olson of Amazon Web Services - Redis Da...
Anatomy of a Redis Command by Madelyn Olson of Amazon Web Services - Redis Da...Anatomy of a Redis Command by Madelyn Olson of Amazon Web Services - Redis Da...
Anatomy of a Redis Command by Madelyn Olson of Amazon Web Services - Redis Da...Redis Labs
 
Building a Multi-dimensional Analytics Engine with RedisGraph by Matthew Goos...
Building a Multi-dimensional Analytics Engine with RedisGraph by Matthew Goos...Building a Multi-dimensional Analytics Engine with RedisGraph by Matthew Goos...
Building a Multi-dimensional Analytics Engine with RedisGraph by Matthew Goos...Redis Labs
 
RediSearch 1.6 by Pieter Cailliau - Redis Day Bangalore 2020
RediSearch 1.6 by Pieter Cailliau - Redis Day Bangalore 2020RediSearch 1.6 by Pieter Cailliau - Redis Day Bangalore 2020
RediSearch 1.6 by Pieter Cailliau - Redis Day Bangalore 2020Redis Labs
 
RedisGraph 2.0 by Pieter Cailliau - Redis Day Bangalore 2020
RedisGraph 2.0 by Pieter Cailliau - Redis Day Bangalore 2020RedisGraph 2.0 by Pieter Cailliau - Redis Day Bangalore 2020
RedisGraph 2.0 by Pieter Cailliau - Redis Day Bangalore 2020Redis Labs
 
RedisTimeSeries 1.2 by Pieter Cailliau - Redis Day Bangalore 2020
RedisTimeSeries 1.2 by Pieter Cailliau - Redis Day Bangalore 2020RedisTimeSeries 1.2 by Pieter Cailliau - Redis Day Bangalore 2020
RedisTimeSeries 1.2 by Pieter Cailliau - Redis Day Bangalore 2020Redis Labs
 
RedisAI 0.9 by Sherin Thomas of Tensorwerk - Redis Day Bangalore 2020
RedisAI 0.9 by Sherin Thomas of Tensorwerk - Redis Day Bangalore 2020RedisAI 0.9 by Sherin Thomas of Tensorwerk - Redis Day Bangalore 2020
RedisAI 0.9 by Sherin Thomas of Tensorwerk - Redis Day Bangalore 2020Redis Labs
 
Rate-Limiting 30 Million requests by Vijay Lakshminarayanan and Girish Koundi...
Rate-Limiting 30 Million requests by Vijay Lakshminarayanan and Girish Koundi...Rate-Limiting 30 Million requests by Vijay Lakshminarayanan and Girish Koundi...
Rate-Limiting 30 Million requests by Vijay Lakshminarayanan and Girish Koundi...Redis Labs
 
Three Pillars of Observability by Rajalakshmi Raji Srinivasan of Site24x7 Zoh...
Three Pillars of Observability by Rajalakshmi Raji Srinivasan of Site24x7 Zoh...Three Pillars of Observability by Rajalakshmi Raji Srinivasan of Site24x7 Zoh...
Three Pillars of Observability by Rajalakshmi Raji Srinivasan of Site24x7 Zoh...Redis Labs
 
Solving Complex Scaling Problems by Prashant Kumar and Abhishek Jain of Myntr...
Solving Complex Scaling Problems by Prashant Kumar and Abhishek Jain of Myntr...Solving Complex Scaling Problems by Prashant Kumar and Abhishek Jain of Myntr...
Solving Complex Scaling Problems by Prashant Kumar and Abhishek Jain of Myntr...Redis Labs
 

More from Redis Labs (20)

Redis Day Bangalore 2020 - Session state caching with redis
Redis Day Bangalore 2020 - Session state caching with redisRedis Day Bangalore 2020 - Session state caching with redis
Redis Day Bangalore 2020 - Session state caching with redis
 
Protecting Your API with Redis by Jane Paek - Redis Day Seattle 2020
Protecting Your API with Redis by Jane Paek - Redis Day Seattle 2020Protecting Your API with Redis by Jane Paek - Redis Day Seattle 2020
Protecting Your API with Redis by Jane Paek - Redis Day Seattle 2020
 
The Happy Marriage of Redis and Protobuf by Scott Haines of Twilio - Redis Da...
The Happy Marriage of Redis and Protobuf by Scott Haines of Twilio - Redis Da...The Happy Marriage of Redis and Protobuf by Scott Haines of Twilio - Redis Da...
The Happy Marriage of Redis and Protobuf by Scott Haines of Twilio - Redis Da...
 
SQL, Redis and Kubernetes by Paul Stanton of Windocks - Redis Day Seattle 2020
SQL, Redis and Kubernetes by Paul Stanton of Windocks - Redis Day Seattle 2020SQL, Redis and Kubernetes by Paul Stanton of Windocks - Redis Day Seattle 2020
SQL, Redis and Kubernetes by Paul Stanton of Windocks - Redis Day Seattle 2020
 
Rust and Redis - Solving Problems for Kubernetes by Ravi Jagannathan of VMwar...
Rust and Redis - Solving Problems for Kubernetes by Ravi Jagannathan of VMwar...Rust and Redis - Solving Problems for Kubernetes by Ravi Jagannathan of VMwar...
Rust and Redis - Solving Problems for Kubernetes by Ravi Jagannathan of VMwar...
 
Redis for Data Science and Engineering by Dmitry Polyakovsky of Oracle
Redis for Data Science and Engineering by Dmitry Polyakovsky of OracleRedis for Data Science and Engineering by Dmitry Polyakovsky of Oracle
Redis for Data Science and Engineering by Dmitry Polyakovsky of Oracle
 
Practical Use Cases for ACLs in Redis 6 by Jamie Scott - Redis Day Seattle 2020
Practical Use Cases for ACLs in Redis 6 by Jamie Scott - Redis Day Seattle 2020Practical Use Cases for ACLs in Redis 6 by Jamie Scott - Redis Day Seattle 2020
Practical Use Cases for ACLs in Redis 6 by Jamie Scott - Redis Day Seattle 2020
 
Moving Beyond Cache by Yiftach Shoolman Redis Labs - Redis Day Seattle 2020
Moving Beyond Cache by Yiftach Shoolman Redis Labs - Redis Day Seattle 2020Moving Beyond Cache by Yiftach Shoolman Redis Labs - Redis Day Seattle 2020
Moving Beyond Cache by Yiftach Shoolman Redis Labs - Redis Day Seattle 2020
 
Leveraging Redis for System Monitoring by Adam McCormick of SBG - Redis Day S...
Leveraging Redis for System Monitoring by Adam McCormick of SBG - Redis Day S...Leveraging Redis for System Monitoring by Adam McCormick of SBG - Redis Day S...
Leveraging Redis for System Monitoring by Adam McCormick of SBG - Redis Day S...
 
JSON in Redis - When to use RedisJSON by Jay Won of Coupang - Redis Day Seatt...
JSON in Redis - When to use RedisJSON by Jay Won of Coupang - Redis Day Seatt...JSON in Redis - When to use RedisJSON by Jay Won of Coupang - Redis Day Seatt...
JSON in Redis - When to use RedisJSON by Jay Won of Coupang - Redis Day Seatt...
 
Highly Available Persistent Session Management Service by Mohamed Elmergawi o...
Highly Available Persistent Session Management Service by Mohamed Elmergawi o...Highly Available Persistent Session Management Service by Mohamed Elmergawi o...
Highly Available Persistent Session Management Service by Mohamed Elmergawi o...
 
Anatomy of a Redis Command by Madelyn Olson of Amazon Web Services - Redis Da...
Anatomy of a Redis Command by Madelyn Olson of Amazon Web Services - Redis Da...Anatomy of a Redis Command by Madelyn Olson of Amazon Web Services - Redis Da...
Anatomy of a Redis Command by Madelyn Olson of Amazon Web Services - Redis Da...
 
Building a Multi-dimensional Analytics Engine with RedisGraph by Matthew Goos...
Building a Multi-dimensional Analytics Engine with RedisGraph by Matthew Goos...Building a Multi-dimensional Analytics Engine with RedisGraph by Matthew Goos...
Building a Multi-dimensional Analytics Engine with RedisGraph by Matthew Goos...
 
RediSearch 1.6 by Pieter Cailliau - Redis Day Bangalore 2020
RediSearch 1.6 by Pieter Cailliau - Redis Day Bangalore 2020RediSearch 1.6 by Pieter Cailliau - Redis Day Bangalore 2020
RediSearch 1.6 by Pieter Cailliau - Redis Day Bangalore 2020
 
RedisGraph 2.0 by Pieter Cailliau - Redis Day Bangalore 2020
RedisGraph 2.0 by Pieter Cailliau - Redis Day Bangalore 2020RedisGraph 2.0 by Pieter Cailliau - Redis Day Bangalore 2020
RedisGraph 2.0 by Pieter Cailliau - Redis Day Bangalore 2020
 
RedisTimeSeries 1.2 by Pieter Cailliau - Redis Day Bangalore 2020
RedisTimeSeries 1.2 by Pieter Cailliau - Redis Day Bangalore 2020RedisTimeSeries 1.2 by Pieter Cailliau - Redis Day Bangalore 2020
RedisTimeSeries 1.2 by Pieter Cailliau - Redis Day Bangalore 2020
 
RedisAI 0.9 by Sherin Thomas of Tensorwerk - Redis Day Bangalore 2020
RedisAI 0.9 by Sherin Thomas of Tensorwerk - Redis Day Bangalore 2020RedisAI 0.9 by Sherin Thomas of Tensorwerk - Redis Day Bangalore 2020
RedisAI 0.9 by Sherin Thomas of Tensorwerk - Redis Day Bangalore 2020
 
Rate-Limiting 30 Million requests by Vijay Lakshminarayanan and Girish Koundi...
Rate-Limiting 30 Million requests by Vijay Lakshminarayanan and Girish Koundi...Rate-Limiting 30 Million requests by Vijay Lakshminarayanan and Girish Koundi...
Rate-Limiting 30 Million requests by Vijay Lakshminarayanan and Girish Koundi...
 
Three Pillars of Observability by Rajalakshmi Raji Srinivasan of Site24x7 Zoh...
Three Pillars of Observability by Rajalakshmi Raji Srinivasan of Site24x7 Zoh...Three Pillars of Observability by Rajalakshmi Raji Srinivasan of Site24x7 Zoh...
Three Pillars of Observability by Rajalakshmi Raji Srinivasan of Site24x7 Zoh...
 
Solving Complex Scaling Problems by Prashant Kumar and Abhishek Jain of Myntr...
Solving Complex Scaling Problems by Prashant Kumar and Abhishek Jain of Myntr...Solving Complex Scaling Problems by Prashant Kumar and Abhishek Jain of Myntr...
Solving Complex Scaling Problems by Prashant Kumar and Abhishek Jain of Myntr...
 

Recently uploaded

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 

Recently uploaded (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 

Developing And Deploying Edge Analytics: Dave Rauschenbach

  • 1. PRESENTED BY Developing and Deploying Edge Analytics David Rauschenbach Nubix.io, CTO
  • 2. PRESENTED BY 1 IoT and Edge Architectures A brief overview of Enterprise Architectures with Cloud, Fog, and Edge components 2 Open Source Projects Used A brief overview of the open source projects used in this demo and links to them 3 Demo: Streaming Data into Redis on Edge Devices A stream of sensor data will be collected and stored in Redis on an edge device. Agenda: 4 Demo: Running Spark on the Edge with Redis Integration A simple analytic will be developed using Spark & Redis, deployed to the edge, and executed
  • 3. PRESENTED BY Device Edge Casually connected Edge Architectures Fog Commonly air-gapped Server Edge Tethered
  • 4. PRESENTED BY Why are Analytics Required at the Source of Data? Because: Sense, Infer, Act “Return to the Edge” (2016) by Peter Levine, Andreessen Horowitz
  • 5. PRESENTED BY Cloud and Device Edge: Two Worlds Under Pressure to Meet Devices •Under pressure to add intelligence and inference •Which requires frequent updates (a tectonic shift for the embedded world) •Which requires best-of-breed cloud workflows like aPaaS, IaaS, and Continuous Integration Cloud •Under pressure to realize the final 92% of Digital Transformation, which hasn’t happened yet because products live outside of datacenters •Data Scientists don’t use desktop power supplies and serial cables •Don’t have tooling to program in 32k of RAM
  • 6. PRESENTED BY Open Source Projects We Are Going to Use
  • 7. PRESENTED BY • Use your favorite LuaRocks modules within Redis • GitHub: github.com/BixData/lua-amalg-redis • Blog: https://medium.com/nubix-open-source-edge-computing/introducing-the- lua-amalgamator-for-redis-c498434c2154 Open Source #1: Lua Amalgamator for Redis
  • 9. PRESENTED BY Moses: the Lodash / Underscore of the Lua ecosystem Using Moses within Redis $ luarocks install moses $ vi main.lua local moses = require 'moses' local data = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29} local sum = moses.reduce(data, function(r, n) return r + n end) print(string.format('Sum of first %d primes is %d', #data, sum)) return sum $ lua –lamalg-redis main.lua Sum of first 10 primes is 129 $ amalg-redis.lua –s main.lua –o main-with-dependencies.lua –c $ redis-cli --eval main-with-dependencies.lua 0,0 (integer) 129
  • 11. PRESENTED BY Using Spark ML Vectors within Redis $ luarocks install stuart-ml $ vi main.lua local BLAS = require 'stuart-ml.linalg.BLAS' local Vectors = require 'stuart-ml.linalg.Vectors' local a = Vectors.dense({1,2,3}) local b = Vectors.dense({4,-5,6}) local dotProduct = BLAS.dot(a, b) local isAcuteAngle = dotProduct > 0 print(string.format('The dot product of [{1,2,3}, {4,-5,6}] is %d, which %s an acute angle', dotProduct, isAcuteAngle and 'is' or 'is not')) return dotProduct $ lua –lamalg-redis main.lua The dot product of [{1,2,3}, {4,-5,6}] is 12, which is an acute angle $ amalg-redis.lua –s main.lua –o main-with-dependencies.lua –c $ redis-cli --eval main-with-dependencies.lua 0,0 (integer) 12
  • 12. PRESENTED BY Using Spark ML Matrices within Redis $ vi main.lua local Matrices = require 'stuart-ml.linalg.Matrices' local matrix = Matrices.sparse(3, 2, {0, 2, 3}, {0, 2, 1}, {0.0, -1.2, 0.0}) local msg = string.format('The sparse matrix %s has %d non-zeros and %d actives', '(3, 2, {0, 2, 3}, {0, 2, 1}, {0.0, -1.2, 0.0})', matrix:numNonzeros(), matrix:numActives()) print(msg) return msg $ lua –lamalg-redis main.lua The sparse matrix (3, 2, {0, 2, 3}, {0, 2, 1}, {0.0, -1.2, 0.0}) has 1 non-zeros and 3 actives $ amalg-redis.lua –s main.lua –o main-with-dependencies.lua –c $ redis-cli --eval main-with-dependencies.lua 0,0 "The sparse matrix (3, 2, {0, 2, 3}, {0, 2, 1}, {0.0, -1.2, 0.0}) has 1 non-zeros and 3 actives"
  • 13. PRESENTED BY Using Spark ML K-means Clustering within Redis $ vi main.lua local KMeans = require 'stuart-ml.clustering.KMeans' local Vectors = require 'stuart-ml.linalg.Vectors' local VectorWithNorm = require 'stuart-ml.clustering.VectorWithNorm' local centers = { VectorWithNorm.new(Vectors.dense(1,2,6)), VectorWithNorm.new(Vectors.dense(5,3,9)), VectorWithNorm.new(Vectors.dense(9,4,7)) } local point = VectorWithNorm.new(Vectors.dense(6,2,5)) local bestIndex, bestDistance = KMeans.findClosest(centers, point) local msg = string.format('The point %s is closest to cluster center #%d, with a distance of %d', tostring(point), bestIndex, bestDistance) print(msg) return msg $ lua –lamalg-redis main.lua The point ((6,2,5),8.0622577482985) is closest to cluster center #3, with a distance of 17 $ amalg-redis.lua –s main.lua –o main-with-dependencies.lua –c $ redis-cli --eval main-with-dependencies.lua 0,0 "The point ((6,2,5),8.0622577482985) is closest to cluster center #3, with a distance of 17"
  • 14. PRESENTED BY Open Source #3: Stuart-Redis
  • 15. PRESENTED BY Reading+Writing Spark RDDs within Redis$ luarocks install stuart-redis $ vi main.lua local stuart = require 'stuart' local stuartRedis = require 'stuart-redis' local function split(str, pattern) local res = {} for s in string.gmatch(str, pattern) do table.insert(res, s) end return res end local sc = stuart.NewContext() sc = stuartRedis.export(sc) -- writing local doc = [[I mean, think about music. Music is all about repetition and patterns. If you didn’t have repetition in music, it would all just be noise.]] local words = sc:parallelize(split(doc, '%w+')) local wordCountsRDD = words :map(function(word) return {string.lower(word), 1} end) :reduceByKey(function(r, x) return r+x end) :map(function(e) return {e[1], e[2]} end) sc:toRedisZSET(wordCountsRDD, 'wordCounts') -- reading local wordFrequencies = sc:fromRedisZSetWithScore('wordCounts') :map(function(e) return e[1] .. '=' .. e[2] end) :collect() local msg = table.concat(wordFrequencies, ', ') print(msg) return msg
  • 16. PRESENTED BY Reading+Writing Spark RDDs within Redis (continued) $ redis-cli monitor 1554135760.154290 [0 127.0.0.1:64608] "EVAL" ”(5,300 lines, 177k not shown)" 1554136904.716402 [0 lua] "ZADD" "wordCounts" "1" "it" 1554136904.716415 [0 lua] "ZADD" "wordCounts" "1" "didn" 1554136904.716420 [0 lua] "ZADD" "wordCounts" "1" "mean" 1554136904.716425 [0 lua] "ZADD" "wordCounts" "1" "is" 1554136904.716429 [0 lua] "ZADD" "wordCounts" "2" "repetition" 1554136904.716435 [0 lua] "ZADD" "wordCounts" "1" "i" 1554136904.716439 [0 lua] "ZADD" "wordCounts" "1" "think" 1554136904.716444 [0 lua] "ZADD" "wordCounts" "1" "would" 1554136904.716449 [0 lua] "ZADD" "wordCounts" "1" "noise" 1554136904.716453 [0 lua] "ZADD" "wordCounts" "1" "just" 1554136904.716458 [0 lua] "ZADD" "wordCounts" "1" "t" 1554136904.716463 [0 lua] "ZADD" "wordCounts" "1" "if" 1554136904.716467 [0 lua] "ZADD" "wordCounts" "1" "you" 1554136904.716472 [0 lua] "ZADD" "wordCounts" "1" "in" 1554136904.716506 [0 lua] "ZADD" "wordCounts" "1" "patterns" 1554136904.716511 [0 lua] "ZADD" "wordCounts" "1" "be" 1554136904.716515 [0 lua] "ZADD" "wordCounts" "1" "have" 1554136904.716520 [0 lua] "ZADD" "wordCounts" "2" "about" 1554136904.716525 [0 lua] "ZADD" "wordCounts" "2" "all" 1554136904.716530 [0 lua] "ZADD" "wordCounts" "1" "and" 1554136904.716534 [0 lua] "ZADD" "wordCounts" "3" "music" 1554136904.716541 [0 lua] "KEYS" "wordCounts" 1554136904.716846 [0 lua] "TYPE" "wordCounts" 1554136904.717252 [0 lua] "ZRANGE" "wordCounts" "0" "-1" "WITHSCORES" $ lua –lamalg-redis main.lua and=1, be=1, didn=1, have=1, i=1, if=1, in=1, is=1, it=1, just=1, mean=1, noise=1, patterns=1, t=1, think=1, would=1, you=1, about=2, all=2, repetition=2, music=3 (… manual edits to amalg.cache …) $ amalg-redis.lua –s main.lua –o main- with-dependencies.lua –c $ redis-cli --eval main-with- dependencies.lua 0,0 "and=1, be=1, didn=1, have=1, i=1, if=1, in=1, is=1, it=1, just=1, mean=1, noise=1, patterns=1, t=1, think=1, would=1, you=1, about=2, all=2, repetition=2, music=3"
  • 17. PRESENTED BY Hardware • Raspberry Pi 3 B+ • BME280 Atmospheric Sensor • I²C Communication Bus(shown in orange+yellow) Software • Raspbian OS • Redis 5.0 • Nubix Agent DEMO 1: Streaming Data into Redis on an Edge Device
  • 18. PRESENTED BY Hardware • Raspberry Pi 3 B+ • BME280 Atmospheric Sensor • I²C Communication Bus(shown in orange+yellow) Software •Redis 5.0 (unmodified, no plugins) • Lua submitted via standard redis-cli DEMO 2: Spark Analytics within Redis on Edge Device