10 cool things about PostgreSQL Przemysław Deć Linux Polska Sp z o.o.
10 powodów by polubić PostgreSQL Duże obiekty Replikacja NoSql Tabele pamięciowe Upgrade bazy Bezpieczeństwo Rozszerzenia PostGIS SQL/MED dane zewnętrzne Transakcyjność + PITR Nowości składni SQL
Linux Polska - EnterpriseDB Dystrybutor EnterpriseDB Wsparcie lokalne Szkolenia Usługi Analiza/audyt migracyjny Tuning wydajnościowy Klaster HA
Duże obiekty - TOAST TOAST The Oversized Attribute Storage Technique Typy danych: Bytea, Text Obiekty większe niż 8KB są dzielone na mniejsze fragmenty Limit 1GB Autokompresja obiektów > 2KB Zarządzanie kompresją - ALTER TABLE SET STORAGE
Duże obiekty Large Object Large Object Extension BLOB v9.3 limit zwiększony do 4TB (poprzedni 2GB) Typ danych LO streaming danych pg_largeobject tabela na wszystkie LO Funkcje server side lo_import/lo_export Superuser, filesystem bazy Funkcje libpq/jdbc client side Dowolny użytkownik, filesystem klienta CREATE TABLE image (imgname text, img lo);
PostgreNOSQL Schemaless Database? Json struktura drzewa tekstowa reprezentacja danych V9.3 - funkcje i operatory dla json Google's PL/V8 Language v9.4 jsonb binarna reprezenacja danych (indeksy) Hstore struktura key-value Binarna reprezentacja danych nie wymaga parsowania przy dostępie Możliwość budowy indeksów v9.4 HStore2 (tree-like structure) XML Xpath Query Language Wydajność
Upgrade bazy Backup logiczny dump/restore v9.3 parallel pg_dump Replikacja logiczna Slony Płynny switchover Nie wymaga wyłączenia bazy Pg_Upgrade v9.3 parallel Nie wymaga backupów Bardzo szybki upgrade
PG_Upgrade w wersji 9.3 Równoległe przetwarzanie (mniej to lepiej) sekundy 7.5x szybciej Ilość obiektów
Rozszerzenia Możliwość rozszerzania jako podstawa architektury PostgreSQL Dynamiczne ładowanie rozszerzeń i integracja z silnikiem PostGIS Spatial object for PostgreSQL pg_extensions: LargeObject, Hstore, FDW (dane zewn)... PGXN.org PostgreSQL Extension Network (PartMan) PgFoundry.org
Transakcyjność + PITR MVCC Nie blokujący równoległy dostęp do wierszy Izolacja Full serializable Bez blokad (śledzenie poleceń) Przyrostowy backup online Point In Time Recovery Możliwość wyłączenia synchronizacji na dysk
Replikacja Replikacja natywna ale logiczna :) -v9.4 Remastering 9.3 Kaskadowy SR 9.2 Synchroniczny SR 9.1 Log streaming 9.0 Hot standby Log shipping 8.2 Warm standby Archive mode Point in Time Recovery
Tabele pamięciowe ~ Globalne tabele tymczasowe Pozostają do czasu awarii lub usunięcia tylko RAM bez zapisów w logu transakcyjnym create unnlogged table Przykład użycia Dane z systemów zewnętrznych Sesje HTTP Własna implementacja cachowanych danych Chcesz utrwalenia? insert into tabela_dyskowa (select * from tabela_pamieciowa)
Bezpieczeństwo Kontrola dostępu na poziomie kolumn SE-PostgreSQL Aktywacja przy kompilacji Kontrola MAC nawet na poziomie wiersza Dowolny system uwierzytelniania Protokoły GSSAPI, SSPI single sign on Ldap, Radius, cert, pam Połączenia SSL Kryptografia Bezpieczne języki proceduralne
SQL/MED Integracja z danymi zewnętrznymi SQL/MED Management of External Data Różnorodność wrapperów (>20): SQL: Postgres, Oracle, Mysql, Odbc, jdbc... NOSQL: Mongo, Apache Couch... File: file, json... Twitter, ldap, hadoop... v9.3 - Możliwość odczytu i zapisu tabel zewnętrznych
Nowości składni SQL v9.3 Event Triggers CREATE, DROP, ALTER Materialized Views Autorefresh v9.4 Auto updatable Views Lateral query podzapytania mogą odwołać się do innych kolumn na tym samym poziomie zapytania Funkcje i operatory dla typu JSON
Jeszcze 5 by polubić EnterpriseDB Dostępność na różne platformy Partycjonowanie natywne Monitoring Replikacja MultiMaster Oracle Compatibility
Dostępność na różne platformy
Partycjonowanie EnterpriseDB Składnia partycjonowania zgodna z Oracle Partycjonowanie natywne (napisane w C) Automatyczna logika brak triggerów
Zapis danych do partycji 460 Times Faster! (Mniej to lepiej) PPAS 9.2 PostgreSQL 9.3 PPAS 9.3 Czas zapisu 1 miliona wierszy Lepsza wydajność przy masowym imporcie danych
Odczyt danych z partycji PPAS 9.2 PostgreSQL 9.3 PPAS 9.3 76 times Faster! (więcej to lepiej) Odczyt (czas wyszukiwania) 1 partycji przez 10 klientów
Monitoring Postgres Enterprise Manager MONITOR MANAGE TUNE Jedyne dostępne rozwiązanie, które łączy wszystkie trzy elementy Jedna wizualna konsola zarządzania (WEB) Dostępne na PostgreSQL i Postgres Plus Alerty Audyt logów SQL Profiler
EDB xdb REPLICATION MULTI-MASTER WAN Replicate Master Master A Master C B Replikacja Master-to-Master dla 2 lub więcej węzłów Różne wersje baz Automatyczne wykrywanie konfliktów Kilka strategii rozwiązywania konfliktów Zwiększenie wydajności Każdy ośrodek uaktualnia swoją lokalną bazę szybciej niż jedną centralną bazę Możliwe awaryjne przełączenie pomiędzy ośrodkami
Kompatybilność z Oracle Automatyzacja migracji Nowości: widoki zmaterializowane Pakiety: Random, Lock, Crypto, Scheduler, HTTP, URL...
Szkolenia by polubić LinuxPolska PostgreSQL for Developers and Architects 3 dni Introduction to PostgreSQL Administration + Associate Certification 3 dni Advanced PostgreSQL Administration + Professional Certification 3 dni Kompleksowa Administracja PostgreSQL 5 dni Postgres Plus Advanced Server 3 dni
Dziękuje Przemysław Deć Linux Polska Sp z o.o.