- Our Services -
Postgresql
What is PostgreSQL?

PostgreSQL is a powerful, open source object-relational database system that uses and extends the SQL language combined with many features that safely store and scale the most complicated data workloads. The origins of PostgreSQL date back to 1986 as part of the POSTGRES project at the University of California at Berkeley and has more than 30 years of active development on the core platform.

PostgreSQL has earned a strong reputation for its proven architecture, reliability, data integrity, robust feature set, extensibility, and the dedication of the open source community behind the software to consistently deliver performant and innovative solutions. PostgreSQL runs on all major operating systems, has been ACID-compliant since 2001, and has powerful add-ons such as the popular PostGIS geospatial database extender. It is no surprise that PostgreSQL has become the open source relational database of choice for many people and organisations.

Why use PostgreSQL?

PostgreSQL comes with many features aimed to help developers build applications, administrators to protect data integrity and build fault-tolerant environments, and help you manage your data no matter how big or small the dataset. In addition to being free and open source, PostgreSQL is highly extensible. For example, you can define your own data types, build out custom functions, even write code from different programming languages without recompiling your database!

Data Types

  • Primitives: Integer, Numeric, String, Boolean
  • Structured: Date/Time, Array, Range, UUID
  • Document: JSON/JSONB, XML, Key-value (Hstore)
  • Geometry: Point, Line, Circle, Polygon
  • Customizations: Composite, Custom Types

Data Integrity

  • UNIQUE, NOT NULL
  • Primary Keys
  • Foreign Keys
  • Exclusion Constraints
  • Explicit Locks, Advisory Locks

Concurrency, Performance

  • Indexing: B-tree, Multicolumn, Expressions, Partial
  • Advanced Indexing: GiST, SP-Gist, KNN Gist, GIN, BRIN, Covering indexes, Bloom filters
  • Sophisticated query planner / optimizer, index-only scans, multicolumn statistics
  • Transactions, Nested Transactions (via savepoints)
  • Multi-Version concurrency Control (MVCC)
  • Parallelization of read queries and building B-tree indexes
  • Table partitioning
  • All transaction isolation levels defined in the SQL standard, including Serializable
  • Just-in-time (JIT) compilation of expressions

Reliability, Disaster Recovery

  • Write-ahead Logging (WAL)
  • Replication: Asynchronous, Synchronous, Logical
  • Point-in-time-recovery (PITR), active standbys
  • Tablespaces

Security

  • Authentication: GSSAPI, SSPI, LDAP, SCRAM-SHA-256, Certificate, and more
  • Robust access-control system
  • Column and row-level security
  • Multi-factor authentication with certificates and an additional method

Extensibility

  • Stored functions and procedures
  • Procedural Languages: PL/PGSQL, Perl, Python (and many more)
  • SQL/JSON path expressions
  • Foreign data wrappers: connect to other databases or streams with a standard SQL interface
  • Customizable storage interface for tables
  • Many extensions that provide additional functionality, including PostGIS

Internationalisation, Text Search

  • Support for international character sets, e.g. through ICU collations
  • Case-insensitive and accent-insensitive collations
  • Full-text search

PostgreSQL has been proven to be highly scalable both in the sheer quantity of data it can manage and in the number of concurrent users it can accommodate. There are active PostgreSQL clusters in production environments that manage many terabytes of data, and specialized systems that manage petabytes.

Session 1

  • Introduction to Google Cloud
  • On Premise vs the Cloud
  • Create an instance of Postgresql on Google cloud
  • PostgreSQL Architecture

Section 2

  • Installation
  • Log files
  • Enable Archiving
  • Password management – avoid hard cording, reset forgotten password
  • User Management.
  • Backups and Recovery

Section 3

  • Backups
  • PostgreSQL Configuration – Find non default settings
  • Clustering table using index
  • Moving data around and between tablespaces
  • Per User and Per database config parameters
  • System catalog
  • Tablespaces

Section 4

  • Utilities – psql and pgbadger
  • Commands – COPY, EXPLAIN
  • INDEXES – when to implement
  • Data partitioning – PARTMAN and Declarative Partition
  • Extensions – pg_repack, plprofiler and postgis
  • Streaming replication

Section 5

  • PG Bouncer – Connection Pooler
  • Performance Tuning using Query Logging
  • PG backrest
  • Understanding logs with PGBadger
  • Postgresql minor and major upgrade
  • Function queries

Section 6

  • Streaming replication after creating another instance on Google Cloud
  • Ora2PG
  • PGAdmin
  • PG Pool Installation Setup
  • Database Corruption

Section 6

  • Oracle to Postgres Tips
  • Useful Links and how to use them
  • Monitoring
  • Troubleshooting pg errors

Section 6

  • Linux for Postgres
  • Important Scripts
  • Important Commands
  • CentOS and Ubuntu
  • Postgres, Google Cloud, Linux Wrap up

Let’s Get Started