10 cool things about PostgreSQL Przemysław Deć Linux Polska Sp z o.o.

Transkrypt

10 cool things about PostgreSQL Przemysław Deć Linux Polska Sp z o.o.
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.