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.