municipal government meets nosql

35
Municipal Government meets NoSQL Ryan Briones IT Director - Software Architecture and Design Department of Innovation and Technology City of Chicago Tuesday, November 13, 12

Upload: mongodb

Post on 15-Jan-2015

309 views

Category:

Documents


3 download

DESCRIPTION

This talk will describe the development and implementation of WindyGrid, an online geographic information system, that presents a unified view of City of Chicago operations to improve agency coordination, incident monitoring and response, and to identify trends. In lieu of reviewing numerous and disparate reports, WindyGrid gives key personnel access to 911 and 311 service calls, asset locations, building information, tweets, and other critical information in one place. To enable this, data from siloed City source systems are regularly ETLed into MongoDB. The City’s implementation of MongoDB has been architected to support multiple shards along with three tiers to allow for expanding query access and redundancy.

TRANSCRIPT

Page 1: Municipal Government Meets NoSQL

Municipal Governmentmeets NoSQL

Ryan BrionesIT Director - Software Architecture and DesignDepartment of Innovation and TechnologyCity of Chicago

Tuesday, November 13, 12

Page 2: Municipal Government Meets NoSQL

This is my bossBrett GoldsteinChief Data OfficerCommissioner, DoIT (CIO)

Tuesday, November 13, 12

Page 3: Municipal Government Meets NoSQL

This is my bossBrett GoldsteinChief Data OfficerCommissioner, DoIT (CIO)Data Junkie

Tuesday, November 13, 12

Page 4: Municipal Government Meets NoSQL

My Job

Crazy Ideas

Reality

Tuesday, November 13, 12

Page 5: Municipal Government Meets NoSQL

Tuesday, November 13, 12

Page 6: Municipal Government Meets NoSQL

2010Tuesday, November 13, 12

Page 7: Municipal Government Meets NoSQL

2011Tuesday, November 13, 12

Page 8: Municipal Government Meets NoSQL

2011Tuesday, November 13, 12

Page 9: Municipal Government Meets NoSQL

2011How do we tell the story about a place?

Tuesday, November 13, 12

Page 10: Municipal Government Meets NoSQL

How do we tell the story about a place?

911 CPS CTA CFD 311

Tuesday, November 13, 12

Page 11: Municipal Government Meets NoSQL

2012Tuesday, November 13, 12

Page 12: Municipal Government Meets NoSQL

2012How can we use realtime data to make better decisions?

Tuesday, November 13, 12

Page 13: Municipal Government Meets NoSQL

Bring all the data all in one place

Make it available in realtime

Find relationships in the data

Tuesday, November 13, 12

Page 14: Municipal Government Meets NoSQL

Tuesday, November 13, 12

Page 15: Municipal Government Meets NoSQL

Spatial / Temporal

Tuesday, November 13, 12

Page 16: Municipal Government Meets NoSQL

Spatial / Temporal

Tuesday, November 13, 12

Page 17: Municipal Government Meets NoSQL

Tuesday, November 13, 12

Page 18: Municipal Government Meets NoSQL

Grow elastically

Loose schema

Works well with geospatial data

Tuesday, November 13, 12

Page 19: Municipal Government Meets NoSQL

Tuesday, November 13, 12

Page 20: Municipal Government Meets NoSQL

Grow elastically

Loose schema

Works well with geospatial data

Tuesday, November 13, 12

Page 21: Municipal Government Meets NoSQL

Grow elastically

Loose schema

Works well with geospatial data

Tuesday, November 13, 12

Page 22: Municipal Government Meets NoSQL

{pos: [41.884267623865384,

-87.62977480888367]}/* ... */db.windygrid.ensureIndex({pos: “2d”})/* ... */db.windygrid.find({ $within: { $box:

[ [41.88227, -87.63208] [41.88499, -87.62838] ] }})

Tuesday, November 13, 12

Page 23: Municipal Government Meets NoSQL

Grow elastically

Loose schema

Works well with geospatial data

Tuesday, November 13, 12

Page 24: Municipal Government Meets NoSQL

Router

Primary Shard 1 Primary Shard 2 Primary Shard 3

Secondary Shard 1 Secondary Shard 2 Secondary Shard 3

Secondary Shard 1 Secondary Shard 2 Secondary Shard 3

C

C

C

69GB data200K objs

Tuesday, November 13, 12

Page 25: Municipal Government Meets NoSQL

Grow elastically

Loose schema

Works well with geospatial data

Tuesday, November 13, 12

Page 26: Municipal Government Meets NoSQL

{type: “311”,shardkey: “2a08c28b3ca3bb65bd...”where: { location: [-180,180], ... },when: { shardtime: 0, ... },what: { ... },who: { ... }

}

Tuesday, November 13, 12

Page 27: Municipal Government Meets NoSQL

Bring all the data all in one place

Make it available in realtime

Find relationships in the data

Tuesday, November 13, 12

Page 28: Municipal Government Meets NoSQL

Bring all the data all in one place

Make it available in realtime

Find relationships in the data

Tuesday, November 13, 12

Page 29: Municipal Government Meets NoSQL

Tuesday, November 13, 12

Page 30: Municipal Government Meets NoSQL

Tuesday, November 13, 12

Page 31: Municipal Government Meets NoSQL

Bring all the data all in one place

Make it available in realtime

Find relationships in the data

Tuesday, November 13, 12

Page 32: Municipal Government Meets NoSQL

Tuesday, November 13, 12

Page 33: Municipal Government Meets NoSQL

Challenges

$within/$box

safe scaling

Tuesday, November 13, 12

Page 34: Municipal Government Meets NoSQL

The Future

Predictive AnalyticsNatural-language ProcessingMachine LearningDistributed ComputingVisualizations

Tuesday, November 13, 12

Page 35: Municipal Government Meets NoSQL

Ryan BrionesIT Director - Software Architecture and Design

Department of Innovation and TechnologyCity of Chicago

github.com/Chicagogithub.com/ryanbriones

@ChicagoCDO@ryanbriones

Tuesday, November 13, 12