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

[NoSQL BA 2021] NoSQL + SQL = PostgreSQL

[NoSQL BA 2021] 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 NoSQL Bahia 2021: http://www.nosqlba.com/2021/index.html

More Decks by Fabrízio de Royes Mello

Other Decks in Technology

Transcript

  1. 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, PGStrom, TableAM
  2. DDL CREATE TABLE customer ( id BIGSERIAL PRIMARY KEY, name

    VARCHAR(100) NOT NULL, data JSONB ); CREATE INDEX idx_customer_data ON customer USING gin (data); CREATE INDEX idx_customer_data_birthdate ON customer ((data->>'birthdate'));
  3. Duas linhas com documentos JSON INSERT INTO customer (name, data)

    VALUES ( 'Fulano de Tal', $$ { "phones": ["+55 (51) 99888-7766", "+55 (53) 3344-5566" ], "address": "Rua Sem Nome, 12345", "city": "Bagé" } $$::JSONB ), ( 'Beltrano de Tal', $$ { "address": "Avenida Com Nome, 54321", "city": "Bagé", "state": "RS", "birthdate": "1978-01-01" } $$::JSONB );
  4. Exemplo SQL -- Using JOIN clause SELECT customer.id, customer.name, city.name

    AS "city" FROM customer JOIN city ON city.id = customer.city; -- No JOIN clause (thanks to Natural Key) SELECT id, name, city FROM customer;
  5. SQL é muito mais que JOIN (SQL:1999) • LATERAL •

    Grouping Sets • WITH [ RECURSIVE ] • FILTER (SQL:2003) • OVER and PARTITION BY (SQL:2003) • TABLESAMPLE (SQL:2003) • …