using redis for geospatial applications · using redis for geospatial applications redistimeseries...

42
Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019

Upload: others

Post on 08-Oct-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App

Using Redis for Geospatial Applications

RedisTimeSeries RedisAI

Rock PereiraCUGOS Fall Fling

Oct 06, 2019

Page 2: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App

1 Intro: Data Analysis Vs App Dev

Data Analysis

Data used is old

Larger size

Stored on disk

Model building / development

App Development

Data used is fresh / recent

Smaller size

Stored in memory

Model prediction / serving

Page 3: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App

1 Intro: SQL Vs NOSQL

SQL

Stored as records in tables

Complex SQL queries

ACID Transactions

eg. PostgreSQL, MySQL

NOSQL

Stored as Key-Value, Documents, or Graphs

Can query, but no joins

Eventual consistency

eg. Redis, MongoDB, Neo4J

Page 4: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App

2 Redis: Introduction

Redis = Remote Dictionary Service

Redis is a Data Structure server:

Strings of binary safe bytesListsHashesSets eg. “students” ::: {“Alice”, “Bob”, “Carla”}Sorted Sets eg. “student:ages” ::: {(“Bob”, 19), (“Carla”, 22),(“Alice”, 25)}

Add (“Dan”, 20): The sorted set stays sorted by the score.“student:ages” ::: {(“Bob”, 19), (“Dan”, 20), (“Carla”, 22),(“Alice”, 25)}

Page 5: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App

2 Redis: Geospatial

Locations, (lon, lat) are stored as sorted sets.

The score in the sorted set cannot be a tuple.

So the (lon, lat) tuple is hashed to a single value

“cities” ::: {(“Olympia”, “a8b65e..”), (“Tacoma”, “1bc3e4..”), (“Seattle”, “3df24a..”)}

Page 6: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App

2 Redis: Use Cases

Caching: To manage fresh dataMessage broker: Redis has Pub SubReal-time analyticsSession management: eg Shopping cartsGaming: Leaderboards & User activityTime-series logsJob and Queue ManagementRide-Hailing: Matching customers with nearby taxis

Page 7: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App

Data Prep – Spark Workflow

Raw dataUTM Zone 10

Longitude [-126, -120]36 files, csv, 125 GB

Sort by time

VesselMetadata, csv

VesselMotion

Split

Time-sortedMotion

Aggregate byDevice ID (mmsi)

Time series array of Vessel Tracks for

each vessel (3 years)

Filter to 3 months

Save as parquet

Partitioned on year, month, day

Exploratory data for use

on a PC

3 years data for modeling

after data exploration

Save on Blob Storage for

querying

Convert UTC to local time. Then partition

Save as parquet

Puget SoundLat [47.00, 49.45]

Lon [-123.75, -122.00]

Filter by lat, lon

CSVSpark DataFrame

Parquet

Page 8: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 9: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 10: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 11: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 12: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 13: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 14: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 15: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 16: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 17: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 18: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 19: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 20: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 21: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 22: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 23: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 25: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 26: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 27: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 28: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 29: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 30: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 31: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 32: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 33: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 34: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 35: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 36: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 37: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 38: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 39: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 40: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 41: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App
Page 42: Using Redis for Geospatial Applications · Using Redis for Geospatial Applications RedisTimeSeries RedisAI Rock Pereira CUGOS Fall Fling Oct 06, 2019. 1 Intro: Data Analysis Vs App