why postgres sql deserve nosql fan respect - devoxx fr 2015

66
WHY POSTGRES SQL DESERVE NOSQL FAN RESPECT QUENTIN ADAM @ WAXZCE

Upload: quentin-adam

Post on 16-Jul-2015

1.303 views

Category:

Technology


2 download

TRANSCRIPT

WHY POSTGRES

SQL DESERVE

NOSQL FAN

RESPECT QUENTIN ADAM

@WAXZCE

Quentin ADAM from the Clever Cloud

@waxzce on twitter – github- soundcloud – instagram ….

WHO AM I ?

MY DAY TO DAY WORK :

CLEVER CLOUD, MAKE YOUR

APP RUN ALL THE TIME

And learn a lot of things about your code, apps, and good/bad design…

KEEP YOUR APPS ONLINE. MADE WITH

NODE.JS, SCALA, JAVA, RUBY, PHP,

PYTHON, GO…

AND LEARN A LOT OF THINGS ABOUT

YOUR CODE, APPS, AND GOOD/BAD

DESIGN…

NOSQL WORLD

SOME OF THE COOL THINGS

• ACID or not

• Schemaless or not

• Concurrent writing or not

• Consistent or eventually consistent

• HA or not

• …

THINK ABOUT THE DATA

STORAGE

LET’S EXAMPLE

PLAYLIST

MANAGEMENT APP,

MULTIPLE

BACKEND,

PLAYLIST HISTORY

TO DO

ENTITIES

• user management

• Playlists

• Tracks history (deezer, spotify, soundcloud)

TRACK DATA IS

HETEROGENEOUS

Use nosql

WE NEED SCHEMALESS

ARBITRARY DATA DEPTH

EXTERNAL DATA IS ALREADY JSON

“I NEED

UNIQUE

USER ON

EMAIL”

CONSTRAINTS

“WHICH

TRACKS ARE

PLAYED AT

8PM TO 9PM

WEEK DAYS?”

COMPLEX DATA

EXPLORATORY IS HARD

“… IN PARIS

AREA”

COMPLEX DATA

EXPLORATORY IS HARD

“… BY MALE

USERS”

NEED SOME RELATIONSHIPS IN YOUR

DATA STORE?

“…ORDER

BY..”

“…UI NEED

PAGINATION

…”

WE

ALREADY

KNOW ALL

OF THESE

POSTGRESQL

LET’S CREATE OUR TRACKS

TABLE

UUID AS

PRIMARY

KEY

& NO

SERIAL

“WE HAVE 2000000 USERS

ON OUR PRODUCT”

http://www.my-platform.com/users-creation-confirm/42

?valid_key=jgqsdkfhqksdjfhkjsdhf2342345

SAME ID FOR VARIOUS ENTITIES

ON YOUR DATABASE

LET’S CREATE OUR TRACKS

TABLE

USE ENUM

USE TIMESTAMPTZ

LET’S CREATE OUR TRACKS

TABLE

NATIVE JSON & JSONB TYPE

LET’S CREATE OUR TRACKS

TABLE

THEN EMBRACE SQL POWER

*WITH REAL DATABASE LIKE

POSTGRE SQL

REQUEST JSON

USE SQL FUNCTION ON IT

TEMPORAL FUNCTION WITH

PGSQL

COUNT(*) ON NOSQL?

GEO BASED REQUEST?

INDEX

TRANSACTIONS

ACID

BOOTSTRAPPING?

“MY PLAIN

OLD SQL IS

SO

POWERFUL?

CHOOSE DB (AND VERSION)

KILL THE ORM

JDBC DRIVERS

WORKAROUND

WORKAROUND

MANAGE IT LIKE REGULAR

JSON IN YOUR CODE

FREE YOUR MIND ABOUT

DATASTORE + DRIVER ACCESS

“SO PGSQL

IS BETTER

THAN

MONGO?”

ATOMICITY OF CHANGE

INSIDE A JSON

CONCURRENT INSERT

SHARDING & REPLICA

HIGH AVAILABILITY

CHOOSE A

DATASTORE IS

REAL

ARCHITECTURE

JOB

TRY IT

BEFORE :-)

FREE DEV

PLAN ON

CLEVER

CLOUD

ONE CLICK LAUNCH

I’m @waxzce on twitter

I’m the CEO of

A PaaS provider, give it a try

;-)

THX FOR LISTENING

& QUESTIONS TIME

Clever Cloud coupon : devoxx15roxx