Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Eισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον

621 views

Published on

Παρουσίασή μου για τη βάση δεδομένων PostgreSQL και τη χρήση της σε επιχειρησιακό περιβάλλον, στα πλαίσια της εκδήλωσης "Προηγμένες Εφαρμογές της βάσης δεδομένων PostgreSQL" στις 26/6/2013 στο Εθνικό Ίδρυμα Ερευνών.

Published in: Technology
  • Be the first to like this

Eισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον

  1. 1. 26/06/2013 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 1/26 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον Προηγμένες εφαρμογές της βάσης δεδομένων PostgreSQL Δημήτρης Αγγελάκος @vyruss / vyruss@hellug.gr
  2. 2. 26/06/2013 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 2/26 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 1) Εισαγωγή στην PostgreSQL 2) Δυνατότητες 3) Πρόσθετα 4) Πλεονεκτήματα 5) Υποστήριξη 6) Λήψη
  3. 3. 26/06/2013 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 3/26 Εισαγωγή στην PostgreSQL (i) ● “Η πιο εξελιγμένη open source database” – Συμβατότητα – ACID (Atomicity, Consistency, Isolation, Durability) – MVCC (Multi-Version Concurrency Control) – Standards Compliance (SQL:2011) – Άδεια Χρήσης PostgreSQL (BSD-like)
  4. 4. 26/06/2013 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 4/26 Εισαγωγή στην PostgreSQL (ii) ● “Η πιο εξελιγμένη open source database” – Procedural languages – User-defined data types & objects – Προηγμένο indexing, GiST, GIN – Database events & Asynchronous Notifications – Replication, Continuous Backup
  5. 5. 26/06/2013 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 5/26 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 1) Εισαγωγή στην PostgreSQL 2) Δυνατότητες 3) Πρόσθετα 4) Πλεονεκτήματα 5) Υποστήριξη 6) Λήψη
  6. 6. 26/06/2013 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 6/26 Δυνατότητες - Συμβατότητα ● Hardware – Οποιαδήποτε αρχιτεκτονική συστήματος ● O/S – Linux – UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64) – Windows ● Software
  7. 7. 26/06/2013 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 7/26 Δυνατότητες – Procedural Languages ● PL/pgSQL ● Native programming interfaces – C/C++, Java, Python, Ruby – Perl, Tcl, sh – Javascript (PLV8) ! – R, Scheme, Lua ● Client interfaces – C (libpq, ECPG) – JDBC, ODBC, DBI, Python, C++, .NET etc.
  8. 8. 26/06/2013 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 8/26 Δυνατότητες – User defined types, objects CREATE FUNCTION my_box_in_function(cstring) RETURNS box AS ... ; CREATE FUNCTION my_box_out_function(box) RETURNS cstring AS ... ; CREATE TYPE box ( INTERNALLENGTH = 16, INPUT = my_box_in_function, OUTPUT = my_box_out_function ); CREATE OPERATOR === ( LEFTARG = box, RIGHTARG = box, PROCEDURE = area_equal_procedure, COMMUTATOR = ===, NEGATOR = !==, RESTRICT = area_restriction_procedure, JOIN = area_join_procedure, HASHES, MERGES );
  9. 9. 26/06/2013 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 9/26 Δυνατότητες – Προηγμένο Indexing ● B-tree index ● Hash index ● GiST - Generalized Search Tree (Balanced) – Template για υλοποίηση B-trees, R-trees & άλλων – Επιτρέπει υλοποίηση custom data types/access methods από ειδικούς σε κάποιον τομέα ● GIN – Generalized Inverted Index – Για composite values και αναζήτηση μέσα σε αυτά π.χ. Αναζήτηση για λέξεις σε έγγραφα ● Regular Expression Indexing!
  10. 10. 26/06/2013 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 10/26 Δυνατότητες – Backup & Replication (i) ● Write-Ahead Logging (WAL) ● Continuous Backup (Online Backup) ● Point-in-Time Recovery (PITR) ● File-based Replication ● Streaming Asynchronous & Synchronous Replication ● Warm Standby & Hot Standby
  11. 11. 26/06/2013 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 11/26 Δυνατότητες – Backup & Replication (ii) ● Άλλες λύσεις: – Slony-I ● Trigger-based, Eπιλεκτικό (Επίπεδο πίνακα), Συμβατό (με άλλες εκδόσεις) – pgpool-II (Statement-based) ● Cluster Middleware με Connection Pooling & Queuing, Load Balancing & Parallel Queries, Query Cache, Replication, High Availability & Failover – Multimaster: ● Postgres-XC (Native Cluster - Read & Write Scalable!) ● Bucardo (Async, Trigger-based, Load Balancing)
  12. 12. 26/06/2013 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 12/26 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 1) Εισαγωγή στην PostgreSQL 2) Δυνατότητες 3) Πρόσθετα 4) Πλεονεκτήματα 5) Υποστήριξη 6) Λήψη
  13. 13. 26/06/2013 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 13/26 Πρόσθετα ● DBLINK – Χρειάζομαι όντως replication; – Ξέρω καλύτερα τη βάση μου (επιλεκτικό, υλοποίηση business logic) – Non-Pg: DBI Link ● PostGIS – Εξαιρετικά προχωρημένη λειτουργικότητα και αλγόριθμοι – Εργαλεία OSGeo, GRASS, Mapserver, OpenLayers, OpenStreetMap, QGIS κ.α. – Υποστηρίζει 3D τιμές, αντικείμενα και συναρτήσεις! ● OpenFTS – Full-text search
  14. 14. 26/06/2013 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 14/26 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 1) Εισαγωγή στην PostgreSQL 2) Δυνατότητες 3) Πρόσθετα 4) Πλεονεκτήματα 5) Υποστήριξη 6) Λήψη
  15. 15. 26/06/2013 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 15/26 Πλεονεκτήματα (i) ● MVCC (R never blocks W, W never blocks R) ● Εξαιρετική οnline τεκμηρίωση ● JSON data type, operators & functions ● hstore data type (key-value pairs) ● Transactional DDL ● Foreign data wrappers – Foreign tables Read / Write ! – DBI Link (perl DBI library: ODBC, JDBC κλπ)
  16. 16. 26/06/2013 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 16/26 Πλεονεκτήματα (ii) ● Materialized Views – Indexing κ.α. ● LATERAL – Κάνω reference στήλες από το FROM σε subquery! ● Genetic Query Optimizer (GEQO) ● NOTIFY/LISTEN – Asynchronous Notifications ● TOAST (The Oversized-Attribute Storage Technique)
  17. 17. 26/06/2013 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 17/26 Πλεονεκτήματα (iii) Xεχε... >;-)
  18. 18. 26/06/2013 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 18/26 Πλεονεκτήματα (MySQL) ● MyISAM (Η “γρήγορη”) – Δεν έχει MVCC άρα ούτε Transactions – Κακό INSERT performance – Crashed tables, Crashed DBs, etc. ● InnoDB (Η “καλή”) – Δεν έχει σοβαρά indexes – Ούτε καλό Query Optimizer – Ψευδο-MVCC (Έχουμε, εμμ, μάλλον, περίπου 600 rows) ● Άλλο ένα από τα θύματα εξαγοράς της Oracle
  19. 19. 26/06/2013 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 19/26 Πλεονεκτήματα (Oracle - i) ● TCO (Total Cost of Ownership) PostgreSQL Oracle 16-Core Server License $0 $190.000 Spatial/GIS Server License $0 $70.000 Partitioning $0 $44.000 Annual Maintenance $24.000 $67.000 TCO (1 year) $24.000 $371.000 TCO (5 years) $120.000 $639.000
  20. 20. 26/06/2013 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 20/26 Πλεονεκτήματα (Oracle - ii) ● Δεν έχει λύση Backup – Extra! ● High Availability & Clustering (RAC) – Extra! ● PostGIS >> Oracle Spatial – Extra! ● Πιο απλή στη χρήση, λιγότερο bloat – Java application server για web administration interface! – psql >> SQL*Plus – ακόμα και μέσα σε shell scripts! – Κάνε: pg_dump dbname > outfile ; psql dbname < outfile
  21. 21. 26/06/2013 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 21/26 Πλεονεκτήματα (Oracle - iii) ● Data Files: add tablespace, add data files, expand data files ● EXPLAIN ANALYZE - Δεν υπάρχει τρόπος να δεις το πραγματικό execution plan! ● Πρέπει να τρέχει ως root ● “Σκοτώνει” την υποστήριξη για πλατφόρμες (Solaris, Itanium, HP-UX...) ● H Pg είναι πιο κοντά στα SQL standards ● Η Pg συνεχίζει να προσθέτει λειτουργίες – δωρεάν!
  22. 22. 26/06/2013 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 22/26 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 1) Εισαγωγή στην PostgreSQL 2) Δυνατότητες 3) Πρόσθετα 4) Πλεονεκτήματα 5) Υποστήριξη 6) Λήψη
  23. 23. 26/06/2013 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 23/26 Υποστήριξη ● Επαγγελματική υποστήριξη από εταιρίες του εξωτερικού – EnterpriseDB – 2ndQuadrant – Cybertec κ.α. ● Κοινότητα – Εκτενέστατη Τεκμηρίωση Online – Forums – Mailing Lists – IRC
  24. 24. 26/06/2013 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 24/26 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 1) Εισαγωγή στην PostgreSQL 2) Δυνατότητες 3) Πρόσθετα 4) Πλεονεκτήματα 5) Υποστήριξη 6) Λήψη
  25. 25. 26/06/2013 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 25/26 Φρέσκια PostgreSQL http://www.postgresql.org/download Binary Packages – Linux, BSD, Solaris, Mac OS X, Windows – Repositories: ● Red Hat (RHEL, CentOS, Fedora, SL) ● Debian / Ubuntu – Ελλάδα: http://PostgreSQL.gr/
  26. 26. 26/06/2013 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον 26/26 Εισαγωγή στην PostgreSQL - Χρήση σε επιχειρησιακό περιβάλλον http://PostgreSQL.gr/ Σας ευχαριστώ! http://HELLUG.gr/

×