SlideShare a Scribd company logo
Alexei Krasner
Nov 2015
PostgreSQL as MSSQL
Alternative
What is PostgreSQL
▪ Powerful, open source object-relational database system.
▪ 15 years of active development and strong reputation.
▪ Runs on all major operating systems (Linux, Unix, Mac OS,
Windows…).
▪ Enterprise class database.
▪ Large and responsive community.
▪ Winner of the 2015 Database Trends and Applications Readers
Choice:
– The most advanced open source database.
– Best relational database.
Lets Start With Standards
▪ Fully ACID compliant.
▪ Includes most of SQL:2008 data types along with storage of
binary objects.
▪ Conforms to the ANSI-SQL:2008 standard:
– Full support for subqueries (including sub-selects).
– Read-Committed and serializable transaction isolation levels.
– Full support for Primary keys, Foreign Keys, Joins, Views, Triggers, Stored
Procedures, Restrictions (check, unique and not null) and Cascading.
– Fully relational system catalog – multiple schema per database.
▪ Native programming interfaces: Java, .NET, C/C++, Perl,
Python, ODBC
Continue With a Little of Splurging
▪ Multi-Version Concurrency Control (MVCC).
▪ Asynchronous Replication, Load Balancing and Online/Hot Backups with Point
in Time Recovery.
▪ Write Ahead Logging – fault tolerance.
▪ Performance:
– Sophisticated Query Planner/Optimizer.
– Compound, Unique, Partial and functional indexes.
▪ Supports:
– International character sets, multi-byte encodings, Unicode, locale awareness.
– Built-in Types – Geospatial, XML, JSONJSONB, Ranges and Arrays!
– NoSQL – Key-Value store with incredible performance and Full Text Search.
▪ Highly customizable and extensible.
Before We Dive – Generalized Search Tree (GiST)
▪ Advanced indexing system – different sorting and searching
algorithms:
– B-tree, B+-tree, R-tree, Partial Sum trees, ranked B+-trees etc.
– API for creating custom data types and extensible query methods for
search.
▪ Decide WHAT to persist, HOW to persist and a way to SEARCH
for it.
▪ Exceeds the general search algorithms using standard BR-
trees.
▪ Foundation for many public projects – OpenFTS and PostGIS
Features
Deep Dive
▪ MVCC
▪ Partitioning
▪ Useful Data Types
– Date and Time
– Interval
– Array
– Ranges
– JSON
– HSTORE
– XML
▪ PostGIS –
Geographic
▪ Full Text Search
▪ Server Side
Programming
▪ Backup and Restore
▪ High Availability,
Load Balancing and
Replication
– Sharding
▪ Big Data Readiness
Multi Version Concurrency Control - MVCC
▪ Reads should never block writes and vice
versa.
▪ Each transaction sees a snapshot of data
(version).
– Protection from viewing inconsistency –
transaction isolation.
▪ Avoidance of explicit locking solutions –
minimize lock contention.
▪ TableRow level locking mechanism is still
available – although proper MVCC usage
will provide performance benefits.
Partitioning – Table Inheritance
▪ Support of basic table partitioning via the table inheritance
concept.
– Includes known partitioning benefits:
▪ Improved heavy load query performance (on a single partition).
▪ Sequential scan of a partition instead of index usage.
▪ Bulk loads and deletes accomplished by adding or removing partitions.
▪ Infrequent data can be migrated to a cheaperslower storage solution.
– Range Partitioning:
▪ Table partitioned into “ranges” defined by a singleset key column (e.g.
dates).
– List Partitioning:
▪ Table partitioned into a list of discrete values as partitioning keys.
– Hundred partitions is an acceptable limit, thousands of partitions will
crucially harm performance.
Useful Data Types
▪ Date and Time – Date, Time, TimeStamp and TimeStamp with
zone.
– Converted to and from Unix time.
– Supports the INTERVAL type.
– Very convenient casting and conversion to text.
– Performance wise searching and sorting algorithms (including
zoneoffset).
▪ INTERVAL – representation of a period of time.
– Possible negative interval values (e.g. year ago).
– Intuitive arithmetic and persistence of time durations
– Easy casting and converting to relevant types.
– Performance wise searching and sorting algorithms on intervals.
Useful Data Types Cont.
▪ Array – supported as first-class datatype (actual field in a
table).
– Contain any datatype (sub arrays too).
– Parameters to functions as an array.
– Usages – Functions results, aggregations, getset array of data infrom
the application.
▪ Range – Supported as first-class datatype.
– Put range on TIME, INT or NUMERIC as a single data value.
– Possible dedicated indexes to support queries utilizing ranges.
– Exposed methods to define custom ranges.
Useful Data Types Cont.
▪ JSON – full support along with large dedicated set of utility
functions.
– Known JSONJSONB benefits – data transfer and integration standard.
– Transformation fromto types and tables.
– Retrieval and construction of JSON data.
– Parsing, casting and conversion.
▪ HSTORE – Fast key-value store as a datatype.
– NoSQL capabilities – flexibility of schema-less data store.
– Still ACID compliant.
– Interchange data between JSON and HSTORE.
Useful Data Types Cont.
▪ XML – Supported as a first-class datatype.
– Check well formedness + type-safe operations.
– Querying using Xpath.
– Producing XML content, Predicates, Processing, Mapping tables to XML
etc.
PostGIS
▪ Fully featured, reliable geospatial database project base on GiST
(Following ISO OGC)
▪ SQL types and functions to manage vector geometries (spatial data).
▪ Capabilities:
– Support for three dimensional data.
– Support for geospatial formats (KML, GeoJSON)
– Processing and analytics functions for vector and raster data.
– Map “rastering” and geo queries.
– Geo searches and reverse geo searches.
▪ Huge popularity and respect extension module – compered to ArcGIS
Full Text Search
▪ Online indexing of data and relevance ranking for database
searches.
▪ Good Enough:
– Stemming
– Ranking
– Multilingual
– Fuzzy searches (misspelling) Accent.
Server Side Programming
▪ Super Extensible – functions, data types, procedural
languages, operators, aggregates etc.
– Embedding Functions and Stored Procedures using procedural
– PL/pgSQL, PL/Tcl, PL/Perl, PL/Python
▪ Triggers – tables, views and foreign tables.
▪ Event Triggers – database global trigger.
▪ Rule System – Query modification based on given rules.
Backup and Restore
▪ Extremely flexible dump utility – migration, replication and
backups becomes more reliable, controllable and
configurable.
– Compressed format or plain SQL (human readable).
– Single table or whole database cluster.
▪ Approaches:
– SQL Dump – file with generated SQL commands. On restore the backed
up commands will be replayed.
– File system level backup – direct copy of PostgreSQL data files. Restore
will include reattaching the data files.
– Continuous archiving – backing up Write Ahead Log (WAL) files. On
restore log commands will be replayed.
High Availability, Load Balancing and Replication
Feature Shared Disk Failover
File System
Replication
Transaction Log
Shipping
Trigger-Based
Master-Standby
Replication
Statement-Based
Replication
Middleware
Asynchronous
Multimaster
Replication
Synchronous
Multimaster
Replication
Most Common
Implementation
NAS DRBD Streaming Repl. Slony pgpool-II Bucardo
Communication
Method
shared disk disk blocks WAL table rows SQL table rows
table rows and row
locks
No special hardware
required
X X X X X X
Allows multiple
master servers
X X X
No master server
overhead
X X X
No waiting for
multiple servers
X with sync off X X
Master failure will
never lose data
X X with sync on X X
Standby accept
read-only queries
with hot X X X X
Per-table granularity X X X
No conflict
resolution necessary
X X X X X
Sharding and Replication
▪ Pure Sharding:
– pg_shard – popular sharding extension for PostgreSQL.
▪ Running on Linux!
– BDR/UDR Project – Bi-Directional Replication which adds multi-master
replication to PostgreSQL.
▪ Running on Linux! Migration to windows only in a non-near future.
▪ Forked of the main PostgreSQL source.
– Postgres-XL – all purpose fully ACID open source scale-out db solution.
▪ Running on Linux!
▪ Forked of the main PostgreSQL source.
Sharding and Replication Cont.
▪ Via Replication:
– Hot Standby – Reducing read loads from Master to slaves (horizontal
scale).
– Streaming (or Bucardo, or other possible option) replication to slaves.
– Load balancing “write” queries to Master, “read” queries to slaves.
PostgreSQL and Big Data
▪ PostgreSQL was used a decade before Hadoop launched, for large
data volumes and complex analytics (as the only pure open source).
▪ Today heavily used in mid-sized warehouses and data-marts (1-10
TB).
▪ Source of code for many big data systems:
– Netezza (IBM).
– Greenplum (Pivotal) – Open Source Massively Parallel Data Warehouse.
– PipelineDB – open source, run SQL queries continuously on streaming data.
– EnterpriseDB and CitusDB (commercial license) – fully scaled out Postgres.
– Redshift (Amazon).
▪ PostgreSQL project continuously provide new features and better
performance to support big data usage.
PostgreSQL and Big Data – Features
▪ Serious NoSQL database competitor.
– JSONB advanced features and ongoing massive development plan .
– Extensions that provide NoSQL like API.
▪ Faster Sorts – text and long numeric sorting improvements.
▪ TABLESAMPLE – result set of pseudo-random number of rows
to provide a data glimpse for further analysis.
▪ Cubes, Rollups and Grouping Sets – summarizing and
exploring huge data sets in the OLAP way.
▪ BRIN indexes – much faster, suits for TBs size tables on
incrementally increasing value fields (like timestamps or
integers).
PostgreSQL and Big Data – Features Cont.
▪ Foreign Data Wrappers – linking external data (for querying
like local) for hybrid solutions.
– Foreign schema import.
– JOIN pushdowns
▪ Vacuum (garbage collection – deleting) – became parallel with
multi-process mode (maintaining several large tables at once).
▪ Scaling UP – Multicore scalability improvements.
Enterprise
Wise
▪ Open Source
▪ Reliability
▪ Authentication
▪ Logging
▪ Documentation
▪ Support
▪ Maintenance
Open Source
▪ Available under the open source license – PostgreSQL
License.
▪ Using, modifying and distributing in any openclose form.
▪ Extending and patching the relational database per
projectclient etc.
▪ Variety of modules, extensions and tools based on its open
source license.
Reliability
▪ PostgreSQL is relatively bug-free (compared to MSSQL).
▪ Very large community reporting, fixingworkarounds bugs.
▪ Constantly growing community
Authentication
▪ Trust Authentication.
▪ Password Authentication.
▪ GSSAPISSPI Authentication – using Kerberos.
▪ Ident Authentication.
▪ Peer Authentication.
▪ LDAP Authentication
▪ RADIUS Authentication.
▪ Certificate Authentication.
▪ Pluggable Authentication Modules.
Logging
▪ Logs in one place.
– Unlike MSSQL – error logs, event log, profiler log, agent log…
▪ Easily configurable logging level.
▪ Easily redirect to CSV files and shipped to tables.
▪ Easily redirect to System Log, Windows Event Log.
▪ Logs are human readable with a great sysadmin value.
Documentation
▪ There is nothing more to add than a link:
http://www.postgresql.org/docs/
Support
▪ Community based support – seems like a fast one too.
▪ Numerous companies specialized in enterprise support:
http://www.postgresql.org/support/professional_support/
▪ Enterprise database management companies like:
EnterpriseDB
▪ Total Cost of Ownership is significantly lower even with
enterprise support. (Based on reports. e.g. Gartner 2015).
vs.
MySQL
▪ ACID fully! compliant.
▪ Subqueries and Joins.
▪ Better locking mechanism.
▪ JSONJSONB support.
▪ NoSQL and Key-Value store.
▪ Advanced GIS abilities.
▪ Full Text Search abilities.
▪ Advanced and attractive data types.
▪ Way better and useful extensibility patterns.
▪ Licensing issues.
vs.
PostgreSQL
▪ Partitioning based on table inheritance
(Pros. and Cons.)
▪ Can be an overkill in case of simple read-
heavy operations. (Improved in newer
versions).
▪ Replication and Clustering (especially
multi-master). Not “there” yet, but on a
right track.
▪ Popularity – not as popular as MySQL (for
example) but gains popularity constantly,
as opposite to MySQL.
▪ Expertise issues – different syntax and
administration (compared to MSSQL).
THANK
YOU
Ad

More Related Content

What's hot (20)

Upgrade to MySQL 5.7 and latest news planned for MySQL 8
Upgrade to MySQL 5.7 and latest news planned for MySQL 8Upgrade to MySQL 5.7 and latest news planned for MySQL 8
Upgrade to MySQL 5.7 and latest news planned for MySQL 8
Ted Wennmark
 
Ora mysql bothGetting the best of both worlds with Oracle 11g and MySQL Enter...
Ora mysql bothGetting the best of both worlds with Oracle 11g and MySQL Enter...Ora mysql bothGetting the best of both worlds with Oracle 11g and MySQL Enter...
Ora mysql bothGetting the best of both worlds with Oracle 11g and MySQL Enter...
Ivan Zoratti
 
01 upgrade to my sql8
01 upgrade to my sql8 01 upgrade to my sql8
01 upgrade to my sql8
Ted Wennmark
 
High performance and high availability proxies for MySQL
High performance and high availability proxies for MySQLHigh performance and high availability proxies for MySQL
High performance and high availability proxies for MySQL
Mydbops
 
MyDUMPER : Faster logical backups and restores
MyDUMPER : Faster logical backups and restores MyDUMPER : Faster logical backups and restores
MyDUMPER : Faster logical backups and restores
Mydbops
 
MySQL HA
MySQL HAMySQL HA
MySQL HA
Ted Wennmark
 
Connector/J Beyond JDBC: the X DevAPI for Java and MySQL as a Document Store
Connector/J Beyond JDBC: the X DevAPI for Java and MySQL as a Document StoreConnector/J Beyond JDBC: the X DevAPI for Java and MySQL as a Document Store
Connector/J Beyond JDBC: the X DevAPI for Java and MySQL as a Document Store
Filipe Silva
 
Galera cluster for high availability
Galera cluster for high availability Galera cluster for high availability
Galera cluster for high availability
Mydbops
 
Ansible is Our Wishbone(Automate DBA Tasks With Ansible)
Ansible is Our Wishbone(Automate DBA Tasks With Ansible)Ansible is Our Wishbone(Automate DBA Tasks With Ansible)
Ansible is Our Wishbone(Automate DBA Tasks With Ansible)
M Malai
 
MariaDB Galera Cluster
MariaDB Galera ClusterMariaDB Galera Cluster
MariaDB Galera Cluster
Abdul Manaf
 
MySQL 5.6 Performance
MySQL 5.6 PerformanceMySQL 5.6 Performance
MySQL 5.6 Performance
MYXPLAIN
 
InnoDB Cluster Experience (MySQL User Camp)
InnoDB Cluster Experience (MySQL User Camp)InnoDB Cluster Experience (MySQL User Camp)
InnoDB Cluster Experience (MySQL User Camp)
Mydbops
 
PGDay.Seoul 2016 lightingtalk
PGDay.Seoul 2016 lightingtalkPGDay.Seoul 2016 lightingtalk
PGDay.Seoul 2016 lightingtalk
hyeongchae lee
 
Get to know PostgreSQL!
Get to know PostgreSQL!Get to know PostgreSQL!
Get to know PostgreSQL!
Oddbjørn Steffensen
 
NoSQL databases
NoSQL databasesNoSQL databases
NoSQL databases
Marin Dimitrov
 
What’s New In PostgreSQL 9.3
What’s New In PostgreSQL 9.3What’s New In PostgreSQL 9.3
What’s New In PostgreSQL 9.3
Pavan Deolasee
 
MyRocks in MariaDB: why and how
MyRocks in MariaDB: why and howMyRocks in MariaDB: why and how
MyRocks in MariaDB: why and how
Sergey Petrunya
 
Fudcon talk.ppt
Fudcon talk.pptFudcon talk.ppt
Fudcon talk.ppt
webhostingguy
 
What's New in PostgreSQL 9.6
What's New in PostgreSQL 9.6What's New in PostgreSQL 9.6
What's New in PostgreSQL 9.6
EDB
 
Run Cloud Native MySQL NDB Cluster in Kubernetes
Run Cloud Native MySQL NDB Cluster in KubernetesRun Cloud Native MySQL NDB Cluster in Kubernetes
Run Cloud Native MySQL NDB Cluster in Kubernetes
Bernd Ocklin
 
Upgrade to MySQL 5.7 and latest news planned for MySQL 8
Upgrade to MySQL 5.7 and latest news planned for MySQL 8Upgrade to MySQL 5.7 and latest news planned for MySQL 8
Upgrade to MySQL 5.7 and latest news planned for MySQL 8
Ted Wennmark
 
Ora mysql bothGetting the best of both worlds with Oracle 11g and MySQL Enter...
Ora mysql bothGetting the best of both worlds with Oracle 11g and MySQL Enter...Ora mysql bothGetting the best of both worlds with Oracle 11g and MySQL Enter...
Ora mysql bothGetting the best of both worlds with Oracle 11g and MySQL Enter...
Ivan Zoratti
 
01 upgrade to my sql8
01 upgrade to my sql8 01 upgrade to my sql8
01 upgrade to my sql8
Ted Wennmark
 
High performance and high availability proxies for MySQL
High performance and high availability proxies for MySQLHigh performance and high availability proxies for MySQL
High performance and high availability proxies for MySQL
Mydbops
 
MyDUMPER : Faster logical backups and restores
MyDUMPER : Faster logical backups and restores MyDUMPER : Faster logical backups and restores
MyDUMPER : Faster logical backups and restores
Mydbops
 
Connector/J Beyond JDBC: the X DevAPI for Java and MySQL as a Document Store
Connector/J Beyond JDBC: the X DevAPI for Java and MySQL as a Document StoreConnector/J Beyond JDBC: the X DevAPI for Java and MySQL as a Document Store
Connector/J Beyond JDBC: the X DevAPI for Java and MySQL as a Document Store
Filipe Silva
 
Galera cluster for high availability
Galera cluster for high availability Galera cluster for high availability
Galera cluster for high availability
Mydbops
 
Ansible is Our Wishbone(Automate DBA Tasks With Ansible)
Ansible is Our Wishbone(Automate DBA Tasks With Ansible)Ansible is Our Wishbone(Automate DBA Tasks With Ansible)
Ansible is Our Wishbone(Automate DBA Tasks With Ansible)
M Malai
 
MariaDB Galera Cluster
MariaDB Galera ClusterMariaDB Galera Cluster
MariaDB Galera Cluster
Abdul Manaf
 
MySQL 5.6 Performance
MySQL 5.6 PerformanceMySQL 5.6 Performance
MySQL 5.6 Performance
MYXPLAIN
 
InnoDB Cluster Experience (MySQL User Camp)
InnoDB Cluster Experience (MySQL User Camp)InnoDB Cluster Experience (MySQL User Camp)
InnoDB Cluster Experience (MySQL User Camp)
Mydbops
 
PGDay.Seoul 2016 lightingtalk
PGDay.Seoul 2016 lightingtalkPGDay.Seoul 2016 lightingtalk
PGDay.Seoul 2016 lightingtalk
hyeongchae lee
 
What’s New In PostgreSQL 9.3
What’s New In PostgreSQL 9.3What’s New In PostgreSQL 9.3
What’s New In PostgreSQL 9.3
Pavan Deolasee
 
MyRocks in MariaDB: why and how
MyRocks in MariaDB: why and howMyRocks in MariaDB: why and how
MyRocks in MariaDB: why and how
Sergey Petrunya
 
What's New in PostgreSQL 9.6
What's New in PostgreSQL 9.6What's New in PostgreSQL 9.6
What's New in PostgreSQL 9.6
EDB
 
Run Cloud Native MySQL NDB Cluster in Kubernetes
Run Cloud Native MySQL NDB Cluster in KubernetesRun Cloud Native MySQL NDB Cluster in Kubernetes
Run Cloud Native MySQL NDB Cluster in Kubernetes
Bernd Ocklin
 

Viewers also liked (6)

Lightening Talk - PostgreSQL Worst Practices
Lightening Talk - PostgreSQL Worst PracticesLightening Talk - PostgreSQL Worst Practices
Lightening Talk - PostgreSQL Worst Practices
PGConf APAC
 
Lessons PostgreSQL learned from commercial databases, and didn’t
Lessons PostgreSQL learned from commercial databases, and didn’tLessons PostgreSQL learned from commercial databases, and didn’t
Lessons PostgreSQL learned from commercial databases, and didn’t
PGConf APAC
 
PostgreSQL on Amazon RDS
PostgreSQL on Amazon RDSPostgreSQL on Amazon RDS
PostgreSQL on Amazon RDS
PGConf APAC
 
Query Parallelism in PostgreSQL: What's coming next?
Query Parallelism in PostgreSQL: What's coming next?Query Parallelism in PostgreSQL: What's coming next?
Query Parallelism in PostgreSQL: What's coming next?
PGConf APAC
 
Lammasi pitch deck
Lammasi pitch deckLammasi pitch deck
Lammasi pitch deck
Mladen Markovic
 
PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs
PGConf APAC
 
Lightening Talk - PostgreSQL Worst Practices
Lightening Talk - PostgreSQL Worst PracticesLightening Talk - PostgreSQL Worst Practices
Lightening Talk - PostgreSQL Worst Practices
PGConf APAC
 
Lessons PostgreSQL learned from commercial databases, and didn’t
Lessons PostgreSQL learned from commercial databases, and didn’tLessons PostgreSQL learned from commercial databases, and didn’t
Lessons PostgreSQL learned from commercial databases, and didn’t
PGConf APAC
 
PostgreSQL on Amazon RDS
PostgreSQL on Amazon RDSPostgreSQL on Amazon RDS
PostgreSQL on Amazon RDS
PGConf APAC
 
Query Parallelism in PostgreSQL: What's coming next?
Query Parallelism in PostgreSQL: What's coming next?Query Parallelism in PostgreSQL: What's coming next?
Query Parallelism in PostgreSQL: What's coming next?
PGConf APAC
 
PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs
PGConf APAC
 
Ad

Similar to PostgreSQL as an Alternative to MSSQL (20)

Gcp data engineer
Gcp data engineerGcp data engineer
Gcp data engineer
Narendranath Reddy T
 
Drill architecture 20120913
Drill architecture 20120913Drill architecture 20120913
Drill architecture 20120913
jasonfrantz
 
GCP Data Engineer cheatsheet
GCP Data Engineer cheatsheetGCP Data Engineer cheatsheet
GCP Data Engineer cheatsheet
Guang Xu
 
Nosql databases
Nosql databasesNosql databases
Nosql databases
Fayez Shayeb
 
An AMIS Overview of Oracle database 12c (12.1)
An AMIS Overview of Oracle database 12c (12.1)An AMIS Overview of Oracle database 12c (12.1)
An AMIS Overview of Oracle database 12c (12.1)
Marco Gralike
 
Hoodie - DataEngConf 2017
Hoodie - DataEngConf 2017Hoodie - DataEngConf 2017
Hoodie - DataEngConf 2017
Vinoth Chandar
 
FOSSASIA 2015 - 10 Features your developers are missing when stuck with Propr...
FOSSASIA 2015 - 10 Features your developers are missing when stuck with Propr...FOSSASIA 2015 - 10 Features your developers are missing when stuck with Propr...
FOSSASIA 2015 - 10 Features your developers are missing when stuck with Propr...
Ashnikbiz
 
Sql Server2008
Sql Server2008Sql Server2008
Sql Server2008
Microsoft Iceland
 
An AMIS overview of database 12c
An AMIS overview of database 12cAn AMIS overview of database 12c
An AMIS overview of database 12c
Getting value from IoT, Integration and Data Analytics
 
NoSql and it's introduction features-Unit-1.pdf
NoSql and it's introduction features-Unit-1.pdfNoSql and it's introduction features-Unit-1.pdf
NoSql and it's introduction features-Unit-1.pdf
ajajkhan16
 
The Future of Fast Databases: Lessons from a Decade of QuestDB
The Future of Fast Databases: Lessons from a Decade of QuestDBThe Future of Fast Databases: Lessons from a Decade of QuestDB
The Future of Fast Databases: Lessons from a Decade of QuestDB
javier ramirez
 
Module 2.2 Introduction to NoSQL Databases.pptx
Module 2.2 Introduction to NoSQL Databases.pptxModule 2.2 Introduction to NoSQL Databases.pptx
Module 2.2 Introduction to NoSQL Databases.pptx
NiramayKolalle
 
Master.pptx
Master.pptxMaster.pptx
Master.pptx
KarthikR780430
 
No sql databases
No sql databasesNo sql databases
No sql databases
swathika rajan
 
ElasticSearch as (only) datastore
ElasticSearch as (only) datastoreElasticSearch as (only) datastore
ElasticSearch as (only) datastore
Tomas Sirny
 
NoSQL.pptx
NoSQL.pptxNoSQL.pptx
NoSQL.pptx
RithikRaj25
 
cours database pour etudiant NoSQL (1).pptx
cours database pour etudiant NoSQL (1).pptxcours database pour etudiant NoSQL (1).pptx
cours database pour etudiant NoSQL (1).pptx
ssuser1fde9c
 
Java Developers, make the database work for you (NLJUG JFall 2010)
Java Developers, make the database work for you (NLJUG JFall 2010)Java Developers, make the database work for you (NLJUG JFall 2010)
Java Developers, make the database work for you (NLJUG JFall 2010)
Lucas Jellema
 
Introduction to ClustrixDB
Introduction to ClustrixDBIntroduction to ClustrixDB
Introduction to ClustrixDB
I Goo Lee
 
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...
javier ramirez
 
Drill architecture 20120913
Drill architecture 20120913Drill architecture 20120913
Drill architecture 20120913
jasonfrantz
 
GCP Data Engineer cheatsheet
GCP Data Engineer cheatsheetGCP Data Engineer cheatsheet
GCP Data Engineer cheatsheet
Guang Xu
 
An AMIS Overview of Oracle database 12c (12.1)
An AMIS Overview of Oracle database 12c (12.1)An AMIS Overview of Oracle database 12c (12.1)
An AMIS Overview of Oracle database 12c (12.1)
Marco Gralike
 
Hoodie - DataEngConf 2017
Hoodie - DataEngConf 2017Hoodie - DataEngConf 2017
Hoodie - DataEngConf 2017
Vinoth Chandar
 
FOSSASIA 2015 - 10 Features your developers are missing when stuck with Propr...
FOSSASIA 2015 - 10 Features your developers are missing when stuck with Propr...FOSSASIA 2015 - 10 Features your developers are missing when stuck with Propr...
FOSSASIA 2015 - 10 Features your developers are missing when stuck with Propr...
Ashnikbiz
 
NoSql and it's introduction features-Unit-1.pdf
NoSql and it's introduction features-Unit-1.pdfNoSql and it's introduction features-Unit-1.pdf
NoSql and it's introduction features-Unit-1.pdf
ajajkhan16
 
The Future of Fast Databases: Lessons from a Decade of QuestDB
The Future of Fast Databases: Lessons from a Decade of QuestDBThe Future of Fast Databases: Lessons from a Decade of QuestDB
The Future of Fast Databases: Lessons from a Decade of QuestDB
javier ramirez
 
Module 2.2 Introduction to NoSQL Databases.pptx
Module 2.2 Introduction to NoSQL Databases.pptxModule 2.2 Introduction to NoSQL Databases.pptx
Module 2.2 Introduction to NoSQL Databases.pptx
NiramayKolalle
 
ElasticSearch as (only) datastore
ElasticSearch as (only) datastoreElasticSearch as (only) datastore
ElasticSearch as (only) datastore
Tomas Sirny
 
cours database pour etudiant NoSQL (1).pptx
cours database pour etudiant NoSQL (1).pptxcours database pour etudiant NoSQL (1).pptx
cours database pour etudiant NoSQL (1).pptx
ssuser1fde9c
 
Java Developers, make the database work for you (NLJUG JFall 2010)
Java Developers, make the database work for you (NLJUG JFall 2010)Java Developers, make the database work for you (NLJUG JFall 2010)
Java Developers, make the database work for you (NLJUG JFall 2010)
Lucas Jellema
 
Introduction to ClustrixDB
Introduction to ClustrixDBIntroduction to ClustrixDB
Introduction to ClustrixDB
I Goo Lee
 
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...
javier ramirez
 
Ad

Recently uploaded (20)

Adobe Illustrator Crack | Free Download & Install Illustrator
Adobe Illustrator Crack | Free Download & Install IllustratorAdobe Illustrator Crack | Free Download & Install Illustrator
Adobe Illustrator Crack | Free Download & Install Illustrator
usmanhidray
 
EASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License CodeEASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License Code
aneelaramzan63
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 
Exploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the FutureExploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the Future
ICS
 
Douwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License codeDouwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License code
aneelaramzan63
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
Kubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptxKubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptx
CloudScouts
 
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
University of Hawai‘i at Mānoa
 
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage DashboardsAdobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
BradBedford3
 
Minitab 22 Full Crack Plus Product Key Free Download [Latest] 2025
Minitab 22 Full Crack Plus Product Key Free Download [Latest] 2025Minitab 22 Full Crack Plus Product Key Free Download [Latest] 2025
Minitab 22 Full Crack Plus Product Key Free Download [Latest] 2025
wareshashahzadiii
 
Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025
mu394968
 
Adobe Photoshop Lightroom CC 2025 Crack Latest Version
Adobe Photoshop Lightroom CC 2025 Crack Latest VersionAdobe Photoshop Lightroom CC 2025 Crack Latest Version
Adobe Photoshop Lightroom CC 2025 Crack Latest Version
usmanhidray
 
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Ranjan Baisak
 
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Andre Hora
 
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
steaveroggers
 
Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)
Allon Mureinik
 
Shift Left using Lean for Agile Software Development
Shift Left using Lean for Agile Software DevelopmentShift Left using Lean for Agile Software Development
Shift Left using Lean for Agile Software Development
SathyaShankar6
 
PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025
mu394968
 
Download YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full ActivatedDownload YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full Activated
saniamalik72555
 
Adobe Illustrator Crack | Free Download & Install Illustrator
Adobe Illustrator Crack | Free Download & Install IllustratorAdobe Illustrator Crack | Free Download & Install Illustrator
Adobe Illustrator Crack | Free Download & Install Illustrator
usmanhidray
 
EASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License CodeEASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License Code
aneelaramzan63
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 
Exploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the FutureExploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the Future
ICS
 
Douwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License codeDouwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License code
aneelaramzan63
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
Kubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptxKubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptx
CloudScouts
 
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
University of Hawai‘i at Mānoa
 
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage DashboardsAdobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
BradBedford3
 
Minitab 22 Full Crack Plus Product Key Free Download [Latest] 2025
Minitab 22 Full Crack Plus Product Key Free Download [Latest] 2025Minitab 22 Full Crack Plus Product Key Free Download [Latest] 2025
Minitab 22 Full Crack Plus Product Key Free Download [Latest] 2025
wareshashahzadiii
 
Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025
mu394968
 
Adobe Photoshop Lightroom CC 2025 Crack Latest Version
Adobe Photoshop Lightroom CC 2025 Crack Latest VersionAdobe Photoshop Lightroom CC 2025 Crack Latest Version
Adobe Photoshop Lightroom CC 2025 Crack Latest Version
usmanhidray
 
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Ranjan Baisak
 
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Andre Hora
 
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
steaveroggers
 
Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)
Allon Mureinik
 
Shift Left using Lean for Agile Software Development
Shift Left using Lean for Agile Software DevelopmentShift Left using Lean for Agile Software Development
Shift Left using Lean for Agile Software Development
SathyaShankar6
 
PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025
mu394968
 
Download YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full ActivatedDownload YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full Activated
saniamalik72555
 

PostgreSQL as an Alternative to MSSQL

  • 1. Alexei Krasner Nov 2015 PostgreSQL as MSSQL Alternative
  • 2. What is PostgreSQL ▪ Powerful, open source object-relational database system. ▪ 15 years of active development and strong reputation. ▪ Runs on all major operating systems (Linux, Unix, Mac OS, Windows…). ▪ Enterprise class database. ▪ Large and responsive community. ▪ Winner of the 2015 Database Trends and Applications Readers Choice: – The most advanced open source database. – Best relational database.
  • 3. Lets Start With Standards ▪ Fully ACID compliant. ▪ Includes most of SQL:2008 data types along with storage of binary objects. ▪ Conforms to the ANSI-SQL:2008 standard: – Full support for subqueries (including sub-selects). – Read-Committed and serializable transaction isolation levels. – Full support for Primary keys, Foreign Keys, Joins, Views, Triggers, Stored Procedures, Restrictions (check, unique and not null) and Cascading. – Fully relational system catalog – multiple schema per database. ▪ Native programming interfaces: Java, .NET, C/C++, Perl, Python, ODBC
  • 4. Continue With a Little of Splurging ▪ Multi-Version Concurrency Control (MVCC). ▪ Asynchronous Replication, Load Balancing and Online/Hot Backups with Point in Time Recovery. ▪ Write Ahead Logging – fault tolerance. ▪ Performance: – Sophisticated Query Planner/Optimizer. – Compound, Unique, Partial and functional indexes. ▪ Supports: – International character sets, multi-byte encodings, Unicode, locale awareness. – Built-in Types – Geospatial, XML, JSONJSONB, Ranges and Arrays! – NoSQL – Key-Value store with incredible performance and Full Text Search. ▪ Highly customizable and extensible.
  • 5. Before We Dive – Generalized Search Tree (GiST) ▪ Advanced indexing system – different sorting and searching algorithms: – B-tree, B+-tree, R-tree, Partial Sum trees, ranked B+-trees etc. – API for creating custom data types and extensible query methods for search. ▪ Decide WHAT to persist, HOW to persist and a way to SEARCH for it. ▪ Exceeds the general search algorithms using standard BR- trees. ▪ Foundation for many public projects – OpenFTS and PostGIS
  • 6. Features Deep Dive ▪ MVCC ▪ Partitioning ▪ Useful Data Types – Date and Time – Interval – Array – Ranges – JSON – HSTORE – XML ▪ PostGIS – Geographic ▪ Full Text Search ▪ Server Side Programming ▪ Backup and Restore ▪ High Availability, Load Balancing and Replication – Sharding ▪ Big Data Readiness
  • 7. Multi Version Concurrency Control - MVCC ▪ Reads should never block writes and vice versa. ▪ Each transaction sees a snapshot of data (version). – Protection from viewing inconsistency – transaction isolation. ▪ Avoidance of explicit locking solutions – minimize lock contention. ▪ TableRow level locking mechanism is still available – although proper MVCC usage will provide performance benefits.
  • 8. Partitioning – Table Inheritance ▪ Support of basic table partitioning via the table inheritance concept. – Includes known partitioning benefits: ▪ Improved heavy load query performance (on a single partition). ▪ Sequential scan of a partition instead of index usage. ▪ Bulk loads and deletes accomplished by adding or removing partitions. ▪ Infrequent data can be migrated to a cheaperslower storage solution. – Range Partitioning: ▪ Table partitioned into “ranges” defined by a singleset key column (e.g. dates). – List Partitioning: ▪ Table partitioned into a list of discrete values as partitioning keys. – Hundred partitions is an acceptable limit, thousands of partitions will crucially harm performance.
  • 9. Useful Data Types ▪ Date and Time – Date, Time, TimeStamp and TimeStamp with zone. – Converted to and from Unix time. – Supports the INTERVAL type. – Very convenient casting and conversion to text. – Performance wise searching and sorting algorithms (including zoneoffset). ▪ INTERVAL – representation of a period of time. – Possible negative interval values (e.g. year ago). – Intuitive arithmetic and persistence of time durations – Easy casting and converting to relevant types. – Performance wise searching and sorting algorithms on intervals.
  • 10. Useful Data Types Cont. ▪ Array – supported as first-class datatype (actual field in a table). – Contain any datatype (sub arrays too). – Parameters to functions as an array. – Usages – Functions results, aggregations, getset array of data infrom the application. ▪ Range – Supported as first-class datatype. – Put range on TIME, INT or NUMERIC as a single data value. – Possible dedicated indexes to support queries utilizing ranges. – Exposed methods to define custom ranges.
  • 11. Useful Data Types Cont. ▪ JSON – full support along with large dedicated set of utility functions. – Known JSONJSONB benefits – data transfer and integration standard. – Transformation fromto types and tables. – Retrieval and construction of JSON data. – Parsing, casting and conversion. ▪ HSTORE – Fast key-value store as a datatype. – NoSQL capabilities – flexibility of schema-less data store. – Still ACID compliant. – Interchange data between JSON and HSTORE.
  • 12. Useful Data Types Cont. ▪ XML – Supported as a first-class datatype. – Check well formedness + type-safe operations. – Querying using Xpath. – Producing XML content, Predicates, Processing, Mapping tables to XML etc.
  • 13. PostGIS ▪ Fully featured, reliable geospatial database project base on GiST (Following ISO OGC) ▪ SQL types and functions to manage vector geometries (spatial data). ▪ Capabilities: – Support for three dimensional data. – Support for geospatial formats (KML, GeoJSON) – Processing and analytics functions for vector and raster data. – Map “rastering” and geo queries. – Geo searches and reverse geo searches. ▪ Huge popularity and respect extension module – compered to ArcGIS
  • 14. Full Text Search ▪ Online indexing of data and relevance ranking for database searches. ▪ Good Enough: – Stemming – Ranking – Multilingual – Fuzzy searches (misspelling) Accent.
  • 15. Server Side Programming ▪ Super Extensible – functions, data types, procedural languages, operators, aggregates etc. – Embedding Functions and Stored Procedures using procedural – PL/pgSQL, PL/Tcl, PL/Perl, PL/Python ▪ Triggers – tables, views and foreign tables. ▪ Event Triggers – database global trigger. ▪ Rule System – Query modification based on given rules.
  • 16. Backup and Restore ▪ Extremely flexible dump utility – migration, replication and backups becomes more reliable, controllable and configurable. – Compressed format or plain SQL (human readable). – Single table or whole database cluster. ▪ Approaches: – SQL Dump – file with generated SQL commands. On restore the backed up commands will be replayed. – File system level backup – direct copy of PostgreSQL data files. Restore will include reattaching the data files. – Continuous archiving – backing up Write Ahead Log (WAL) files. On restore log commands will be replayed.
  • 17. High Availability, Load Balancing and Replication Feature Shared Disk Failover File System Replication Transaction Log Shipping Trigger-Based Master-Standby Replication Statement-Based Replication Middleware Asynchronous Multimaster Replication Synchronous Multimaster Replication Most Common Implementation NAS DRBD Streaming Repl. Slony pgpool-II Bucardo Communication Method shared disk disk blocks WAL table rows SQL table rows table rows and row locks No special hardware required X X X X X X Allows multiple master servers X X X No master server overhead X X X No waiting for multiple servers X with sync off X X Master failure will never lose data X X with sync on X X Standby accept read-only queries with hot X X X X Per-table granularity X X X No conflict resolution necessary X X X X X
  • 18. Sharding and Replication ▪ Pure Sharding: – pg_shard – popular sharding extension for PostgreSQL. ▪ Running on Linux! – BDR/UDR Project – Bi-Directional Replication which adds multi-master replication to PostgreSQL. ▪ Running on Linux! Migration to windows only in a non-near future. ▪ Forked of the main PostgreSQL source. – Postgres-XL – all purpose fully ACID open source scale-out db solution. ▪ Running on Linux! ▪ Forked of the main PostgreSQL source.
  • 19. Sharding and Replication Cont. ▪ Via Replication: – Hot Standby – Reducing read loads from Master to slaves (horizontal scale). – Streaming (or Bucardo, or other possible option) replication to slaves. – Load balancing “write” queries to Master, “read” queries to slaves.
  • 20. PostgreSQL and Big Data ▪ PostgreSQL was used a decade before Hadoop launched, for large data volumes and complex analytics (as the only pure open source). ▪ Today heavily used in mid-sized warehouses and data-marts (1-10 TB). ▪ Source of code for many big data systems: – Netezza (IBM). – Greenplum (Pivotal) – Open Source Massively Parallel Data Warehouse. – PipelineDB – open source, run SQL queries continuously on streaming data. – EnterpriseDB and CitusDB (commercial license) – fully scaled out Postgres. – Redshift (Amazon). ▪ PostgreSQL project continuously provide new features and better performance to support big data usage.
  • 21. PostgreSQL and Big Data – Features ▪ Serious NoSQL database competitor. – JSONB advanced features and ongoing massive development plan . – Extensions that provide NoSQL like API. ▪ Faster Sorts – text and long numeric sorting improvements. ▪ TABLESAMPLE – result set of pseudo-random number of rows to provide a data glimpse for further analysis. ▪ Cubes, Rollups and Grouping Sets – summarizing and exploring huge data sets in the OLAP way. ▪ BRIN indexes – much faster, suits for TBs size tables on incrementally increasing value fields (like timestamps or integers).
  • 22. PostgreSQL and Big Data – Features Cont. ▪ Foreign Data Wrappers – linking external data (for querying like local) for hybrid solutions. – Foreign schema import. – JOIN pushdowns ▪ Vacuum (garbage collection – deleting) – became parallel with multi-process mode (maintaining several large tables at once). ▪ Scaling UP – Multicore scalability improvements.
  • 23. Enterprise Wise ▪ Open Source ▪ Reliability ▪ Authentication ▪ Logging ▪ Documentation ▪ Support ▪ Maintenance
  • 24. Open Source ▪ Available under the open source license – PostgreSQL License. ▪ Using, modifying and distributing in any openclose form. ▪ Extending and patching the relational database per projectclient etc. ▪ Variety of modules, extensions and tools based on its open source license.
  • 25. Reliability ▪ PostgreSQL is relatively bug-free (compared to MSSQL). ▪ Very large community reporting, fixingworkarounds bugs. ▪ Constantly growing community
  • 26. Authentication ▪ Trust Authentication. ▪ Password Authentication. ▪ GSSAPISSPI Authentication – using Kerberos. ▪ Ident Authentication. ▪ Peer Authentication. ▪ LDAP Authentication ▪ RADIUS Authentication. ▪ Certificate Authentication. ▪ Pluggable Authentication Modules.
  • 27. Logging ▪ Logs in one place. – Unlike MSSQL – error logs, event log, profiler log, agent log… ▪ Easily configurable logging level. ▪ Easily redirect to CSV files and shipped to tables. ▪ Easily redirect to System Log, Windows Event Log. ▪ Logs are human readable with a great sysadmin value.
  • 28. Documentation ▪ There is nothing more to add than a link: http://www.postgresql.org/docs/
  • 29. Support ▪ Community based support – seems like a fast one too. ▪ Numerous companies specialized in enterprise support: http://www.postgresql.org/support/professional_support/ ▪ Enterprise database management companies like: EnterpriseDB ▪ Total Cost of Ownership is significantly lower even with enterprise support. (Based on reports. e.g. Gartner 2015).
  • 30. vs. MySQL ▪ ACID fully! compliant. ▪ Subqueries and Joins. ▪ Better locking mechanism. ▪ JSONJSONB support. ▪ NoSQL and Key-Value store. ▪ Advanced GIS abilities. ▪ Full Text Search abilities. ▪ Advanced and attractive data types. ▪ Way better and useful extensibility patterns. ▪ Licensing issues.
  • 31. vs. PostgreSQL ▪ Partitioning based on table inheritance (Pros. and Cons.) ▪ Can be an overkill in case of simple read- heavy operations. (Improved in newer versions). ▪ Replication and Clustering (especially multi-master). Not “there” yet, but on a right track. ▪ Popularity – not as popular as MySQL (for example) but gains popularity constantly, as opposite to MySQL. ▪ Expertise issues – different syntax and administration (compared to MSSQL).