Upgrade to Pro — share decks privately, control downloads, hide ads and more …

NoSQL + SQL = PostgreSQL

NoSQL + SQL = PostgreSQL

Nesta apresentação veremos um pouco das capacidades NoSQL do PostgreSQL por oferecer suporte nativo a JSON/JSONB, HStore (chave/valor), XML, oferecendo excelente indexação e otimização no armazenamento, e atendendo aos requisitos ACID, portanto tendo o melhor dos dois mundos. Sem contar o alto poder de extensibilidade que oferece pela possibilidade de escrever novos tipos de dados, mecanismos de indexação, linguagens procedurais, adaptadores de fontes de dados externas (SQL/MED), entre outras diversas características excelentes.

Esta palestra foi realizada no TDC FLorianopolis 2019 na Trilha NoSQL: http://www.thedevelopersconference.com.br/tdc/2019/florianopolis/trilha-nosql

Fabrízio de Royes Mello

April 27, 2019
Tweet

More Decks by Fabrízio de Royes Mello

Other Decks in Technology

Transcript

  1. NoSQL + SQL = PostgreSQL
    @fabriziomello

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  4. Escalabilidade
    Vertical e Horizontal

    View full-size slide

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

    View full-size slide

  6. 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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  13. Modelo Relacional
    Tabelas e Relacionamentos

    View full-size slide

  14. PostgreSQL (modelo híbrido)

    View full-size slide

  15. Duas linhas com documentos JSON

    View full-size slide

  16. Recuperação das linhas

    View full-size slide

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

    View full-size slide

  18. SQL
    muito além do JOIN

    View full-size slide

  19. Lembram desse Diagrama ER ??

    View full-size slide

  20. E se fizéssemos assim?

    View full-size slide

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

    View full-size slide

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

    View full-size slide