Slide 1

Slide 1 text

NoSQL + SQL = PostgreSQL @fabriziomello

Slide 2

Slide 2 text

Fabrízio de Royes Mello Empreendedor Colaborador PostgreSQL Pai, Marido, etc ...

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

NoSQL nasceu para resolver ... - Escalabilidade - Modelo Relacional - SQL

Slide 5

Slide 5 text

Escalabilidade Vertical e Horizontal

Slide 6

Slide 6 text

http://pudgylogic.blogspot.com/2016/01/horizontal-vs-vertical-scaling.html

Slide 7

Slide 7 text

Escalabilidade VERTICAL (PostgreSQL) ● Índices (btree, hash, gin, gist, brin, bloom, …) ● Particionamento de Tabelas ● Operações Paralelo (queries, índices, etc) ● JIT (compilar execução) ● Full Text Search ● Extensibilidade: ○ PostGIS, TimescaleDB, PipelineDB, PGStrom, TableAM

Slide 8

Slide 8 text

Escalabilidade HORIZONTAL (PostgreSQL) 1. Load Balancing com réplicas Read-Only 2. Foreign Data Wrappers 3. CitusDB (extensão)

Slide 9

Slide 9 text

https://www.percona.com/blog/2018/10/02/scaling-postgresql-using-connection-poolers-and-load-balancers-for-an-enterprise-grade-environment/ 1)

Slide 10

Slide 10 text

https://medium.com/@rondineli.gomes.araujo/testing-pgbouncer-pgpool-load-balancing-d0545e6d091 1)

Slide 11

Slide 11 text

http://www.3manuek.com/postgresmanualsharding 2)

Slide 12

Slide 12 text

https://docs.citusdata.com/en/v8.1/develop/reference_processing.html#citus-q 3)

Slide 13

Slide 13 text

https://docs.citusdata.com/en/v8.1/get_started/concepts.html 3)

Slide 14

Slide 14 text

Modelo Relacional Tabelas e Relacionamentos

Slide 15

Slide 15 text

Diagrama ER

Slide 16

Slide 16 text

PostgreSQL (modelo híbrido)

Slide 17

Slide 17 text

Duas linhas com documentos JSON

Slide 18

Slide 18 text

Recuperação das linhas

Slide 19

Slide 19 text

Resultados

Slide 20

Slide 20 text

DDL

Slide 21

Slide 21 text

Similar para outros DataTypes ● XML ● HSTORE (chave/valor) ● Arrays

Slide 22

Slide 22 text

SQL muito além do JOIN

Slide 23

Slide 23 text

Lembram desse Diagrama ER ??

Slide 24

Slide 24 text

E se fizéssemos assim?

Slide 25

Slide 25 text

Exemplo SQL

Slide 26

Slide 26 text

SQL é muito mais que JOIN (SQL:1999) ● LATERAL ● Grouping Sets ● WITH [ RECURSIVE ] ● FILTER (SQL:2003) ● OVER and PARTITION BY (SQL:2003) ● TABLESAMPLE (SQL:2003) ● …

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

Come to the “Elephant” side of the force !!

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text