SlideShare une entreprise Scribd logo
1  sur  41
Application
Development and
Database Choices:
Postgres Support for
non Relational Data
EDB CTO Team
December 2020
Slides and recording will be made available
Submit questions via Zoom – will be answering at end
Welcome – Housekeeping Items
This talk will cover the advanced features of
Postgres that make it the most-loved RDBMS
by developers and a great choice for non-
relational workloads.
Portions of this presentation were taken from https://momjian.us/presentations
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.4
Agenda
The “Post” Relational Database
1.Postgres has won
2.Document-centric applications
3.Geographic Information Systems (GIS)
4.Business intelligence
5.Central data centers
6.Server-side languages
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.5
It is the most loved RDMS. Postgres is widely
adopted, is globally developed by hundreds of
people and is continually innovating.
1. Postgres Has Won
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.6
PostgreSQL Won
If you bet… you bet on PostgreSQL
Most Loved DatabaseMost Commonly Used Database Postgres Popularity
Source: Stack Overflow Developer Survey, 2019 Source: DB-Engines.com, 2020
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.7
Postgres as a service offering on all major clouds
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.8
Over 180 new features every year
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.9
Over 300 people contribute to each release
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.10
• 9.6 Parallel Query
• 10 Partitioning and Logical Replication
• 11 Transaction controlled stored procedures and Just In Time (JIT) Compilation
• 12 Pluggable Storage and Partitioning at Scale
• 13 Incremental Sort and Advanced Indexing and performance
About features
More recent release have taken on the more challenging features
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.11
• Strong support for the SQL Standard
• The optimizer has attracted top academics and practitioners
• Advanced features such as window functions
• The source for many commercial relational databases is Postgres and database add-ons
• True ACID compliance
A great relational database
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.12
Many Databases leverage Postgres
And … many more !!!
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.13
Postgres was designed from the start to be
extensible. This makes it a great choice for
non-relational (No SQL) applications.
2. Document-Centric Applications
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.14
• Full is naturally integrated with ANSI SQL in Postgres
• JSON and SQL queries use the same language, the same planner, and the same ACID compliant
transaction framework
• JSON and HSTORE are elegant and easy to use extensions of the underlying object-relational
model
JSON and ANSI SQL - A natural fit
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.15
JSON Examples
CREATE TABLE semi_structured_data (object JSONB);
….
{"name": "Apple Phone", "type": "phone", "brand": "ACME", "price": 200, "available": true,
"warranty_years": 1}
…
INSERT INTO semi_structured_data (object) VALUES
(’ { "name": "Apple Phone",
"type": "phone",
"brand": "ACME",
"price": 200,
"available": true,
"warranty_years": 1
} ')
Create a table JSONB Field
Simple JSON Data
Element
Insert this data element into the table
semi_structured_objects
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.16
{
"firstName": "John", // String Type
"lastName": "Smith",
"isAlive": true, // Boolean
"age": 25, // Number Type
"height_cm": 167.6,
"address": { // Object Type
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": "10021-3100"
},
"phoneNumbers": [ // Object Array
{
"type": "home", "number": "212 555-1234"
},
{
"type": "office", "number": "646 555-4567"
}
],
"children": [],
"spouse": null
}
}
JSON Data Type Example
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.17
products=# insert into semi_structured_objects values('{ "firstName": "John", "lastName": "Smith", "isAlive": true, "age": 25,
"height_cm": 167.6,
"address": {
"streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021-3100"
},
"phoneNumbers": [
{
"type": "home", "number": "212 555-1234"
},
{
"type": "office", "number": "646 555-4567"
}
],
"children": [],
"spouse": null
}
');
products=# select * from semi_structured_objects ;
{"name": "Apple Phone", "type": "phone", "brand": "ACME", "price": 200, "available": true, "warranty_years": 1}
{"age": 25, "spouse": null, "address": {"city": "New York", "state": "NY", "postalCode": "10021-3100", "streetAddress": ...
Can store different objects in same field
Different ROWs with different
attributes.
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.18
products=# select * from product;
weight | sku | name | manufacturer | instock | price
--------+-----+---------------+--------------+---------+---------
0.5 | 1 | Apple iPhone | Apple | t | $950.00
0.3 | 2 | Apple Watch | Apple | t | $220.00
0.2 | 3 | Apple earpods | Apple | t | $220.00
3 | 4 | Macbook Pro | Apple | t | $220.00
products=# select to_json(r) from (select sku as id, name as prod_name from product) r;
--------------------------------------
{"id":1,"prod_name":"Apple iPhone"}
{"id":2,"prod_name":"Apple Watch"}
{"id":3,"prod_name":"Apple earpods"}
{"id":4,"prod_name":"Macbook Pro"}
(4 rows)
Transform tables to JSON Format
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.19
products=# select * from semi_structured_objects ;
{"name": "Apple Phone", "type": "phone", "brand": "ACME", "price": 200, "available": true, "warranty_years": 1}
{"age": 25, "spouse": null, "address": {"city": "New York", "state": "NY", "postalCode": "10021-3100", "streetAddress": ...
products=# select object->>'name' as "Product Name" from semi_structured_objects where object->>'brand'='ACME';
Product Name
--------------
Apple Phone
(1 row)
products=#
SQL constructs to query the JSON DATA
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.20
JSON and ANSI SQL Example
SELECT DISTINCT
product_type,
data->>'brand' as Brand,
data->>'available' as Availability
FROM json_data
JOIN product
ON (product.product_type=semi_structured_objects.object->>'name')
WHERE semi_structured_objects.object->>'available'=true;
product_type | brand | availability
---------------------------+-----------+--------------
AC3 Phone | ACME | true
ANSI SQL
JSON
No need for programmatic logic to combine SQL and NoSQL in the
application – Postgres does it all
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.21
Performance Comparison: PostgreSQL 11/MongoDB 4.0
● Benchmarks published in June 2019 (follow up to similar analysis in 2014)
● Executed by ongres.com
● Using m5.4xlarge (16 vcores) on AWS EC2
● Details at (including the code and the engine to verify the findings)
http://info.enterprisedb.com/Performance-Benchmarks-PostgreSQL-vs-MongoDB.html
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.22
Performance Comparison: PostgreSQL 11/MongoDB 4.0
OLTP (sysbench) - Many Small Transactions - Large Data Set
PGBouncer (connection pooler) is key to
manage highly concurrent access
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.23
PostGIS is one of the most popular geospatial
database offerings in the market. Turning
Postgres into one of the most popular and
powerful geospatial database is free and
simple.
3. Geographic Information Systems (GIS)
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.24
Power through extensibility — Geo spatial
Postgres=# create EXTENSION postgis;
CREATE EXTENSION
Now have one of the world’s most popular
Geospatial Databases built on well established
industry standards.
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.25
PostGIS enables a new type of analysis
● What is the largest city with 100 miles of the Grand Canyon?
● How many households are within 1 mile of this fault line?
● If we relocate, the office how does the average commute distance change?
● How many cities within 150KM of Tampa have median income over $50,000.00?
● What truck drove the greatest distance yesterday?
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.26
PostGIS enables a new type of analysis
CREATE TABLE public.interesting_cities
(
id integer,
name character varying(100),
location geometry(Point,4326),
medium_hval money,
int population,
PRIMARY KEY (id)
)
A type introduced by
PostGIS
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.27
Analysis can now involve spatial references
-- How many Meters are between Boston (TOM) and Philadelphia (BRUCE)?
select ST_Distance (ST_Transform ((select location from interesting_cities
where name ='Boston'), 3587),
ST_Transform((select location from interesting_cities
where name = 'Philadelphia'), 3587));
st_distance
--------------------
431332.35327121057
(1 row)
ST_Distance and ST_Transform
are functions introduced by PostGIS
extension.
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.28
Can use Spatial AND Traditional analysis tools
-- Interesting cities within 150 KM of Boston with the 10 lowest medium home prices
select name , medium_hval, location from interesting_cities where
(select ST_Distance (ST_Transform (location, 3587),
ST_Transform( ( select location from interesting_cities
where name = 'Boston'), 3587) ) ) < 150000
ORDER BY medium_hval limit 10;
Spatial Query
Traditional RDBMS expression
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.29
PgAdmin 4 is part of PostGIS eco-system
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.30
Postgres has advanced functionality for
business intelligence.
4. Business Intelligence
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.31
Variable from first
expression passed to next
expression. (and again to
third expression)
Business Intelligence — Advanced CTE Features
WITH source (order_id) AS (
DELETE FROM orders WHERE name = ’my order’ RETURNING order_id
), source2 AS (
DELETE FROM items USING source WHERE source.order_id =
items.order_id )
INSERT INTO old_orders SELECT order_id FROM source;
Delete a given order,all the items associated with order and place order in a historical table.
Less code to maintain than on any other database
Fewer round trips with the server than on any other database
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.32
Business Intelligence — Windows Functions
SELECT depname, empno, salary, rank() OVER (PARTITION BY depname ORDER BY salary DESC)
FROM empsalary;
depname | empno | salary | avg
-----------+-------+--------+-----------------------
develop | 11 | 5200 | 5020.0000000000000000
develop | 7 | 4200 | 5020.0000000000000000
develop | 8 | 6000 | 5020.0000000000000000
develop | 10 | 5200 | 5020.0000000000000000
personnel | 5 | 3500 | 3700.0000000000000000
personnel | 2 | 3900 | 3700.0000000000000000
sales | 3 | 4800 | 4866.6666666666666667
sales | 1 | 5000 | 4866.6666666666666667
sales | 4 | 4800 | 4866.666666666666667
(9 rows)
compare each employee's salary with the average salary in his or her department
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.33
Business Intelligence — Specialized Indexes
Specialized Indexes for all data types and access patterns
Index Type Optimized For
B-Tree Range queries with low selectivity and largely unique
values. The traditional database index.
HASH Equality lookups on large datasets (key / value store)
use cases.
GiST Unstructured Data i.e. Geo Spatial Types
GIN JSON Data, Full Text Search, JSONB Data
SP-GiST SP-GIST is ideal for indexes whose keys have many
duplicate prefixes
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.34
Business Intelligence — Specialized Indexes
Specialized Indexes for non-relational data
Index Type Optimized For
BRIN Time series data, multi-terabyte tables
PARTIAL When only a specific set of values will be looked up
COVERING For access patterns to unindex values navigated to
by an index.
EXPRESSION Allow for variances in keys
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.35
Postgres can function as a central integration
point for your data center using Foreign Data
Wrappers.
5. Central Data Center
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.36
Power through extensibility — Foreign Data Wrappers
postgres=# create extension postgres_fdw;
CREATE EXTENSION
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.37
Foreign Data Wrappers
CREATE SERVER postgres_server FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host ’localhost’, dbname
’fdw_test’);
create SERVER oracle_server foreign data wrapper oracle_fdw options (dbserver
'//<oracle_servefr_IP>/<sid>' );
CREATE SERVER mongo_server FOREIGN DATA WRAPPER mongo_fdw OPTIONS (address '127.0.0.1', port '27017');
CREATE SERVER hadoop_server FOREIGN DATA WRAPPER hdfs_fdw OPTIONS (host '127.0.0.1');
CREATE SERVER mysql_server FOREIGN DATA WRAPPER mysql_fdw OPTIONS (host '127.0.0.1', port '3306');
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.38
Foreign Data Wrapper Access
Application Stack
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.39
Postgres has server-side language support for
almost all developers.
6. Server-Side Languages
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.40
Server-Side Programming Languages
• PL/Java
• PL/Python
• PL/R
• PL/pgSQL (like PL/SQL)
• PL/Ruby
• PL/Scheme
• PL/sh
• PL/Tcl
• PL/v8 (JavaScript)
• SPI (C)
CREATE LANGUAGE plpython3u;
CREATE OR REPLACE FUNCTION pymax (a integer,
b integer) RETURNS integer AS
$$
if a > b:
return a
return b
$$ LANGUAGE plpython3u;
SELECT pymax(12, 3);
pymax
-------
12
(1 row)
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.41
Learn More
Other resources
Thank You
Next Webinar: December 16
Postgres Enterprise Manager 8.0:
Something For Everyone
Postgres Pulse EDB Youtube
Channel

Contenu connexe

Tendances

EDB 13 - New Enhancements for Security and Usability - APJ
EDB 13 - New Enhancements for Security and Usability - APJEDB 13 - New Enhancements for Security and Usability - APJ
EDB 13 - New Enhancements for Security and Usability - APJEDB
 
Large Table Partitioning with PostgreSQL and Django
 Large Table Partitioning with PostgreSQL and Django Large Table Partitioning with PostgreSQL and Django
Large Table Partitioning with PostgreSQL and DjangoEDB
 
Migration DB2 to EDB - Project Experience
 Migration DB2 to EDB - Project Experience Migration DB2 to EDB - Project Experience
Migration DB2 to EDB - Project ExperienceEDB
 
Using PEM to understand and improve performance in Postgres: Postgres Tuning ...
Using PEM to understand and improve performance in Postgres: Postgres Tuning ...Using PEM to understand and improve performance in Postgres: Postgres Tuning ...
Using PEM to understand and improve performance in Postgres: Postgres Tuning ...EDB
 
PostgreSQL as a Strategic Tool
PostgreSQL as a Strategic ToolPostgreSQL as a Strategic Tool
PostgreSQL as a Strategic ToolEDB
 
New Approaches to Migrating from Oracle to Enterprise-Ready Postgres in the C...
New Approaches to Migrating from Oracle to Enterprise-Ready Postgres in the C...New Approaches to Migrating from Oracle to Enterprise-Ready Postgres in the C...
New Approaches to Migrating from Oracle to Enterprise-Ready Postgres in the C...EDB
 
Keynote: The Postgres Ecosystem
Keynote: The Postgres EcosystemKeynote: The Postgres Ecosystem
Keynote: The Postgres EcosystemEDB
 
Why Care Risk Choose PostgreSQL
Why Care Risk Choose PostgreSQLWhy Care Risk Choose PostgreSQL
Why Care Risk Choose PostgreSQLEDB
 
Using PEM to understand and improve performance in Postgres: Postgres Tuning ...
Using PEM to understand and improve performance in Postgres: Postgres Tuning ...Using PEM to understand and improve performance in Postgres: Postgres Tuning ...
Using PEM to understand and improve performance in Postgres: Postgres Tuning ...EDB
 
NoSQL and Spatial Database Capabilities using PostgreSQL
NoSQL and Spatial Database Capabilities using PostgreSQLNoSQL and Spatial Database Capabilities using PostgreSQL
NoSQL and Spatial Database Capabilities using PostgreSQLEDB
 
EDB Postgres Platform 11 Webinar
EDB Postgres Platform 11 WebinarEDB Postgres Platform 11 Webinar
EDB Postgres Platform 11 WebinarEDB
 
New enhancements for security and usability in EDB 13
New enhancements for security and usability in EDB 13New enhancements for security and usability in EDB 13
New enhancements for security and usability in EDB 13EDB
 
Postgres Databases in Minutes with the EDB Postgres Cloud Database Service
Postgres Databases in Minutes with the EDB Postgres Cloud Database ServicePostgres Databases in Minutes with the EDB Postgres Cloud Database Service
Postgres Databases in Minutes with the EDB Postgres Cloud Database ServiceEDB
 
Oracle Migration to Postgres in the Cloud
Oracle Migration to Postgres in the CloudOracle Migration to Postgres in the Cloud
Oracle Migration to Postgres in the CloudEDB
 
Migrate Today: Proactive Steps to Unhook from Oracle
Migrate Today: Proactive Steps to Unhook from OracleMigrate Today: Proactive Steps to Unhook from Oracle
Migrate Today: Proactive Steps to Unhook from OracleEDB
 
Postgres Foreign Data Wrappers
Postgres Foreign Data Wrappers  Postgres Foreign Data Wrappers
Postgres Foreign Data Wrappers EDB
 
Database@Home - Data Driven : Loading, Indexing, and Searching with Text and ...
Database@Home - Data Driven : Loading, Indexing, and Searching with Text and ...Database@Home - Data Driven : Loading, Indexing, and Searching with Text and ...
Database@Home - Data Driven : Loading, Indexing, and Searching with Text and ...Tammy Bednar
 
Making Postgres Central in Your Data Center
Making Postgres Central in Your Data CenterMaking Postgres Central in Your Data Center
Making Postgres Central in Your Data CenterEDB
 
PostgreSQL 13 is Coming - Find Out What's New!
PostgreSQL 13 is Coming - Find Out What's New!PostgreSQL 13 is Coming - Find Out What's New!
PostgreSQL 13 is Coming - Find Out What's New!EDB
 

Tendances (20)

EDB 13 - New Enhancements for Security and Usability - APJ
EDB 13 - New Enhancements for Security and Usability - APJEDB 13 - New Enhancements for Security and Usability - APJ
EDB 13 - New Enhancements for Security and Usability - APJ
 
Large Table Partitioning with PostgreSQL and Django
 Large Table Partitioning with PostgreSQL and Django Large Table Partitioning with PostgreSQL and Django
Large Table Partitioning with PostgreSQL and Django
 
Migration DB2 to EDB - Project Experience
 Migration DB2 to EDB - Project Experience Migration DB2 to EDB - Project Experience
Migration DB2 to EDB - Project Experience
 
Using PEM to understand and improve performance in Postgres: Postgres Tuning ...
Using PEM to understand and improve performance in Postgres: Postgres Tuning ...Using PEM to understand and improve performance in Postgres: Postgres Tuning ...
Using PEM to understand and improve performance in Postgres: Postgres Tuning ...
 
PostgreSQL as a Strategic Tool
PostgreSQL as a Strategic ToolPostgreSQL as a Strategic Tool
PostgreSQL as a Strategic Tool
 
New Approaches to Migrating from Oracle to Enterprise-Ready Postgres in the C...
New Approaches to Migrating from Oracle to Enterprise-Ready Postgres in the C...New Approaches to Migrating from Oracle to Enterprise-Ready Postgres in the C...
New Approaches to Migrating from Oracle to Enterprise-Ready Postgres in the C...
 
Keynote: The Postgres Ecosystem
Keynote: The Postgres EcosystemKeynote: The Postgres Ecosystem
Keynote: The Postgres Ecosystem
 
Why Care Risk Choose PostgreSQL
Why Care Risk Choose PostgreSQLWhy Care Risk Choose PostgreSQL
Why Care Risk Choose PostgreSQL
 
Using PEM to understand and improve performance in Postgres: Postgres Tuning ...
Using PEM to understand and improve performance in Postgres: Postgres Tuning ...Using PEM to understand and improve performance in Postgres: Postgres Tuning ...
Using PEM to understand and improve performance in Postgres: Postgres Tuning ...
 
NoSQL and Spatial Database Capabilities using PostgreSQL
NoSQL and Spatial Database Capabilities using PostgreSQLNoSQL and Spatial Database Capabilities using PostgreSQL
NoSQL and Spatial Database Capabilities using PostgreSQL
 
EDB Postgres Platform 11 Webinar
EDB Postgres Platform 11 WebinarEDB Postgres Platform 11 Webinar
EDB Postgres Platform 11 Webinar
 
New enhancements for security and usability in EDB 13
New enhancements for security and usability in EDB 13New enhancements for security and usability in EDB 13
New enhancements for security and usability in EDB 13
 
Postgres Databases in Minutes with the EDB Postgres Cloud Database Service
Postgres Databases in Minutes with the EDB Postgres Cloud Database ServicePostgres Databases in Minutes with the EDB Postgres Cloud Database Service
Postgres Databases in Minutes with the EDB Postgres Cloud Database Service
 
Oracle Migration to Postgres in the Cloud
Oracle Migration to Postgres in the CloudOracle Migration to Postgres in the Cloud
Oracle Migration to Postgres in the Cloud
 
Migrate Today: Proactive Steps to Unhook from Oracle
Migrate Today: Proactive Steps to Unhook from OracleMigrate Today: Proactive Steps to Unhook from Oracle
Migrate Today: Proactive Steps to Unhook from Oracle
 
Postgres Foreign Data Wrappers
Postgres Foreign Data Wrappers  Postgres Foreign Data Wrappers
Postgres Foreign Data Wrappers
 
HTAP Queries
HTAP QueriesHTAP Queries
HTAP Queries
 
Database@Home - Data Driven : Loading, Indexing, and Searching with Text and ...
Database@Home - Data Driven : Loading, Indexing, and Searching with Text and ...Database@Home - Data Driven : Loading, Indexing, and Searching with Text and ...
Database@Home - Data Driven : Loading, Indexing, and Searching with Text and ...
 
Making Postgres Central in Your Data Center
Making Postgres Central in Your Data CenterMaking Postgres Central in Your Data Center
Making Postgres Central in Your Data Center
 
PostgreSQL 13 is Coming - Find Out What's New!
PostgreSQL 13 is Coming - Find Out What's New!PostgreSQL 13 is Coming - Find Out What's New!
PostgreSQL 13 is Coming - Find Out What's New!
 

Similaire à Application Development & Database Choices: Postgres Support for non Relational Data

NoSQL on ACID: Meet Unstructured Postgres
NoSQL on ACID: Meet Unstructured PostgresNoSQL on ACID: Meet Unstructured Postgres
NoSQL on ACID: Meet Unstructured PostgresEDB
 
Do More with Postgres- NoSQL Applications for the Enterprise
Do More with Postgres- NoSQL Applications for the EnterpriseDo More with Postgres- NoSQL Applications for the Enterprise
Do More with Postgres- NoSQL Applications for the EnterpriseEDB
 
Docker Summit MongoDB - Data Democratization
Docker Summit MongoDB - Data Democratization Docker Summit MongoDB - Data Democratization
Docker Summit MongoDB - Data Democratization Chris Grabosky
 
Making Sense of Schema on Read
Making Sense of Schema on ReadMaking Sense of Schema on Read
Making Sense of Schema on ReadKent Graziano
 
Tugdual Grall - From SQL to NoSQL in less than 40 min - NoSQL matters Paris 2015
Tugdual Grall - From SQL to NoSQL in less than 40 min - NoSQL matters Paris 2015Tugdual Grall - From SQL to NoSQL in less than 40 min - NoSQL matters Paris 2015
Tugdual Grall - From SQL to NoSQL in less than 40 min - NoSQL matters Paris 2015NoSQLmatters
 
Enterprise Postgres
Enterprise PostgresEnterprise Postgres
Enterprise PostgresOracle Korea
 
Online | MongoDB Atlas on GCP Workshop
Online | MongoDB Atlas on GCP Workshop Online | MongoDB Atlas on GCP Workshop
Online | MongoDB Atlas on GCP Workshop Natasha Wilson
 
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...Codemotion
 
tranSMART Community Meeting 5-7 Nov 13 - Session 2: MongoDB: What, Why And When
tranSMART Community Meeting 5-7 Nov 13 - Session 2: MongoDB: What, Why And WhentranSMART Community Meeting 5-7 Nov 13 - Session 2: MongoDB: What, Why And When
tranSMART Community Meeting 5-7 Nov 13 - Session 2: MongoDB: What, Why And WhenDavid Peyruc
 
Simplifying & accelerating application development with MongoDB's intelligent...
Simplifying & accelerating application development with MongoDB's intelligent...Simplifying & accelerating application development with MongoDB's intelligent...
Simplifying & accelerating application development with MongoDB's intelligent...Maxime Beugnet
 
ICONUK 2016: REST Assured, Freeing Your Domino Data Has Never Been That Easy!
ICONUK 2016: REST Assured, Freeing Your Domino Data Has Never Been That Easy!ICONUK 2016: REST Assured, Freeing Your Domino Data Has Never Been That Easy!
ICONUK 2016: REST Assured, Freeing Your Domino Data Has Never Been That Easy!Serdar Basegmez
 
SQL for JSON: Rich, Declarative Querying for NoSQL Databases and Applications 
SQL for JSON: Rich, Declarative Querying for NoSQL Databases and Applications SQL for JSON: Rich, Declarative Querying for NoSQL Databases and Applications 
SQL for JSON: Rich, Declarative Querying for NoSQL Databases and Applications Keshav Murthy
 
Webinar: How Banks Use MongoDB as a Tick Database
Webinar: How Banks Use MongoDB as a Tick DatabaseWebinar: How Banks Use MongoDB as a Tick Database
Webinar: How Banks Use MongoDB as a Tick DatabaseMongoDB
 
Introducing Azure DocumentDB - NoSQL, No Problem
Introducing Azure DocumentDB - NoSQL, No ProblemIntroducing Azure DocumentDB - NoSQL, No Problem
Introducing Azure DocumentDB - NoSQL, No ProblemAndrew Liu
 
Where are yours vertexes and what are they talking about?
Where are yours vertexes and what are they talking about?Where are yours vertexes and what are they talking about?
Where are yours vertexes and what are they talking about?Roberto Franchini
 
MongoDB.local DC 2018: Tutorial - Data Analytics with MongoDB
MongoDB.local DC 2018: Tutorial - Data Analytics with MongoDBMongoDB.local DC 2018: Tutorial - Data Analytics with MongoDB
MongoDB.local DC 2018: Tutorial - Data Analytics with MongoDBMongoDB
 
Java/Scala Lab: Борис Трофимов - Обжигающая Big Data.
Java/Scala Lab: Борис Трофимов - Обжигающая Big Data.Java/Scala Lab: Борис Трофимов - Обжигающая Big Data.
Java/Scala Lab: Борис Трофимов - Обжигающая Big Data.GeeksLab Odessa
 
Benefits of Using MongoDB Over RDBMSs
Benefits of Using MongoDB Over RDBMSsBenefits of Using MongoDB Over RDBMSs
Benefits of Using MongoDB Over RDBMSsMongoDB
 

Similaire à Application Development & Database Choices: Postgres Support for non Relational Data (20)

NoSQL on ACID: Meet Unstructured Postgres
NoSQL on ACID: Meet Unstructured PostgresNoSQL on ACID: Meet Unstructured Postgres
NoSQL on ACID: Meet Unstructured Postgres
 
Do More with Postgres- NoSQL Applications for the Enterprise
Do More with Postgres- NoSQL Applications for the EnterpriseDo More with Postgres- NoSQL Applications for the Enterprise
Do More with Postgres- NoSQL Applications for the Enterprise
 
Docker Summit MongoDB - Data Democratization
Docker Summit MongoDB - Data Democratization Docker Summit MongoDB - Data Democratization
Docker Summit MongoDB - Data Democratization
 
Making Sense of Schema on Read
Making Sense of Schema on ReadMaking Sense of Schema on Read
Making Sense of Schema on Read
 
Tugdual Grall - From SQL to NoSQL in less than 40 min - NoSQL matters Paris 2015
Tugdual Grall - From SQL to NoSQL in less than 40 min - NoSQL matters Paris 2015Tugdual Grall - From SQL to NoSQL in less than 40 min - NoSQL matters Paris 2015
Tugdual Grall - From SQL to NoSQL in less than 40 min - NoSQL matters Paris 2015
 
Enterprise Postgres
Enterprise PostgresEnterprise Postgres
Enterprise Postgres
 
Online | MongoDB Atlas on GCP Workshop
Online | MongoDB Atlas on GCP Workshop Online | MongoDB Atlas on GCP Workshop
Online | MongoDB Atlas on GCP Workshop
 
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
 
tranSMART Community Meeting 5-7 Nov 13 - Session 2: MongoDB: What, Why And When
tranSMART Community Meeting 5-7 Nov 13 - Session 2: MongoDB: What, Why And WhentranSMART Community Meeting 5-7 Nov 13 - Session 2: MongoDB: What, Why And When
tranSMART Community Meeting 5-7 Nov 13 - Session 2: MongoDB: What, Why And When
 
Simplifying & accelerating application development with MongoDB's intelligent...
Simplifying & accelerating application development with MongoDB's intelligent...Simplifying & accelerating application development with MongoDB's intelligent...
Simplifying & accelerating application development with MongoDB's intelligent...
 
ICONUK 2016: REST Assured, Freeing Your Domino Data Has Never Been That Easy!
ICONUK 2016: REST Assured, Freeing Your Domino Data Has Never Been That Easy!ICONUK 2016: REST Assured, Freeing Your Domino Data Has Never Been That Easy!
ICONUK 2016: REST Assured, Freeing Your Domino Data Has Never Been That Easy!
 
SQL for JSON: Rich, Declarative Querying for NoSQL Databases and Applications 
SQL for JSON: Rich, Declarative Querying for NoSQL Databases and Applications SQL for JSON: Rich, Declarative Querying for NoSQL Databases and Applications 
SQL for JSON: Rich, Declarative Querying for NoSQL Databases and Applications 
 
MongoDB
MongoDBMongoDB
MongoDB
 
Webinar: How Banks Use MongoDB as a Tick Database
Webinar: How Banks Use MongoDB as a Tick DatabaseWebinar: How Banks Use MongoDB as a Tick Database
Webinar: How Banks Use MongoDB as a Tick Database
 
Introducing Azure DocumentDB - NoSQL, No Problem
Introducing Azure DocumentDB - NoSQL, No ProblemIntroducing Azure DocumentDB - NoSQL, No Problem
Introducing Azure DocumentDB - NoSQL, No Problem
 
Where are yours vertexes and what are they talking about?
Where are yours vertexes and what are they talking about?Where are yours vertexes and what are they talking about?
Where are yours vertexes and what are they talking about?
 
MongoDB.local DC 2018: Tutorial - Data Analytics with MongoDB
MongoDB.local DC 2018: Tutorial - Data Analytics with MongoDBMongoDB.local DC 2018: Tutorial - Data Analytics with MongoDB
MongoDB.local DC 2018: Tutorial - Data Analytics with MongoDB
 
MongoDB Meetup
MongoDB MeetupMongoDB Meetup
MongoDB Meetup
 
Java/Scala Lab: Борис Трофимов - Обжигающая Big Data.
Java/Scala Lab: Борис Трофимов - Обжигающая Big Data.Java/Scala Lab: Борис Трофимов - Обжигающая Big Data.
Java/Scala Lab: Борис Трофимов - Обжигающая Big Data.
 
Benefits of Using MongoDB Over RDBMSs
Benefits of Using MongoDB Over RDBMSsBenefits of Using MongoDB Over RDBMSs
Benefits of Using MongoDB Over RDBMSs
 

Plus de EDB

Cloud Migration Paths: Kubernetes, IaaS, or DBaaS
Cloud Migration Paths: Kubernetes, IaaS, or DBaaSCloud Migration Paths: Kubernetes, IaaS, or DBaaS
Cloud Migration Paths: Kubernetes, IaaS, or DBaaSEDB
 
Die 10 besten PostgreSQL-Replikationsstrategien für Ihr Unternehmen
Die 10 besten PostgreSQL-Replikationsstrategien für Ihr UnternehmenDie 10 besten PostgreSQL-Replikationsstrategien für Ihr Unternehmen
Die 10 besten PostgreSQL-Replikationsstrategien für Ihr UnternehmenEDB
 
Migre sus bases de datos Oracle a la nube
Migre sus bases de datos Oracle a la nube Migre sus bases de datos Oracle a la nube
Migre sus bases de datos Oracle a la nube EDB
 
EFM Office Hours - APJ - July 29, 2021
EFM Office Hours - APJ - July 29, 2021EFM Office Hours - APJ - July 29, 2021
EFM Office Hours - APJ - July 29, 2021EDB
 
Benchmarking Cloud Native PostgreSQL
Benchmarking Cloud Native PostgreSQLBenchmarking Cloud Native PostgreSQL
Benchmarking Cloud Native PostgreSQLEDB
 
Las Variaciones de la Replicación de PostgreSQL
Las Variaciones de la Replicación de PostgreSQLLas Variaciones de la Replicación de PostgreSQL
Las Variaciones de la Replicación de PostgreSQLEDB
 
Is There Anything PgBouncer Can’t Do?
Is There Anything PgBouncer Can’t Do?Is There Anything PgBouncer Can’t Do?
Is There Anything PgBouncer Can’t Do?EDB
 
Data Analysis with TensorFlow in PostgreSQL
Data Analysis with TensorFlow in PostgreSQLData Analysis with TensorFlow in PostgreSQL
Data Analysis with TensorFlow in PostgreSQLEDB
 
Practical Partitioning in Production with Postgres
Practical Partitioning in Production with PostgresPractical Partitioning in Production with Postgres
Practical Partitioning in Production with PostgresEDB
 
A Deeper Dive into EXPLAIN
A Deeper Dive into EXPLAINA Deeper Dive into EXPLAIN
A Deeper Dive into EXPLAINEDB
 
IOT with PostgreSQL
IOT with PostgreSQLIOT with PostgreSQL
IOT with PostgreSQLEDB
 
A Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQLA Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQLEDB
 
Psql is awesome!
Psql is awesome!Psql is awesome!
Psql is awesome!EDB
 
Comment sauvegarder correctement vos données
Comment sauvegarder correctement vos donnéesComment sauvegarder correctement vos données
Comment sauvegarder correctement vos donnéesEDB
 
Cloud Native PostgreSQL - Italiano
Cloud Native PostgreSQL - ItalianoCloud Native PostgreSQL - Italiano
Cloud Native PostgreSQL - ItalianoEDB
 
Cloud Native PostgreSQL - APJ
Cloud Native PostgreSQL - APJCloud Native PostgreSQL - APJ
Cloud Native PostgreSQL - APJEDB
 
Best Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQLBest Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQLEDB
 
EDB Postgres & Tools in a Smart City Project
EDB Postgres & Tools in a Smart City ProjectEDB Postgres & Tools in a Smart City Project
EDB Postgres & Tools in a Smart City ProjectEDB
 
All you need to know about CREATE STATISTICS
All you need to know about CREATE STATISTICSAll you need to know about CREATE STATISTICS
All you need to know about CREATE STATISTICSEDB
 
Cloud Native PostgreSQL
Cloud Native PostgreSQLCloud Native PostgreSQL
Cloud Native PostgreSQLEDB
 

Plus de EDB (20)

Cloud Migration Paths: Kubernetes, IaaS, or DBaaS
Cloud Migration Paths: Kubernetes, IaaS, or DBaaSCloud Migration Paths: Kubernetes, IaaS, or DBaaS
Cloud Migration Paths: Kubernetes, IaaS, or DBaaS
 
Die 10 besten PostgreSQL-Replikationsstrategien für Ihr Unternehmen
Die 10 besten PostgreSQL-Replikationsstrategien für Ihr UnternehmenDie 10 besten PostgreSQL-Replikationsstrategien für Ihr Unternehmen
Die 10 besten PostgreSQL-Replikationsstrategien für Ihr Unternehmen
 
Migre sus bases de datos Oracle a la nube
Migre sus bases de datos Oracle a la nube Migre sus bases de datos Oracle a la nube
Migre sus bases de datos Oracle a la nube
 
EFM Office Hours - APJ - July 29, 2021
EFM Office Hours - APJ - July 29, 2021EFM Office Hours - APJ - July 29, 2021
EFM Office Hours - APJ - July 29, 2021
 
Benchmarking Cloud Native PostgreSQL
Benchmarking Cloud Native PostgreSQLBenchmarking Cloud Native PostgreSQL
Benchmarking Cloud Native PostgreSQL
 
Las Variaciones de la Replicación de PostgreSQL
Las Variaciones de la Replicación de PostgreSQLLas Variaciones de la Replicación de PostgreSQL
Las Variaciones de la Replicación de PostgreSQL
 
Is There Anything PgBouncer Can’t Do?
Is There Anything PgBouncer Can’t Do?Is There Anything PgBouncer Can’t Do?
Is There Anything PgBouncer Can’t Do?
 
Data Analysis with TensorFlow in PostgreSQL
Data Analysis with TensorFlow in PostgreSQLData Analysis with TensorFlow in PostgreSQL
Data Analysis with TensorFlow in PostgreSQL
 
Practical Partitioning in Production with Postgres
Practical Partitioning in Production with PostgresPractical Partitioning in Production with Postgres
Practical Partitioning in Production with Postgres
 
A Deeper Dive into EXPLAIN
A Deeper Dive into EXPLAINA Deeper Dive into EXPLAIN
A Deeper Dive into EXPLAIN
 
IOT with PostgreSQL
IOT with PostgreSQLIOT with PostgreSQL
IOT with PostgreSQL
 
A Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQLA Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQL
 
Psql is awesome!
Psql is awesome!Psql is awesome!
Psql is awesome!
 
Comment sauvegarder correctement vos données
Comment sauvegarder correctement vos donnéesComment sauvegarder correctement vos données
Comment sauvegarder correctement vos données
 
Cloud Native PostgreSQL - Italiano
Cloud Native PostgreSQL - ItalianoCloud Native PostgreSQL - Italiano
Cloud Native PostgreSQL - Italiano
 
Cloud Native PostgreSQL - APJ
Cloud Native PostgreSQL - APJCloud Native PostgreSQL - APJ
Cloud Native PostgreSQL - APJ
 
Best Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQLBest Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQL
 
EDB Postgres & Tools in a Smart City Project
EDB Postgres & Tools in a Smart City ProjectEDB Postgres & Tools in a Smart City Project
EDB Postgres & Tools in a Smart City Project
 
All you need to know about CREATE STATISTICS
All you need to know about CREATE STATISTICSAll you need to know about CREATE STATISTICS
All you need to know about CREATE STATISTICS
 
Cloud Native PostgreSQL
Cloud Native PostgreSQLCloud Native PostgreSQL
Cloud Native PostgreSQL
 

Dernier

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 

Dernier (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

Application Development & Database Choices: Postgres Support for non Relational Data

  • 1. Application Development and Database Choices: Postgres Support for non Relational Data EDB CTO Team December 2020
  • 2. Slides and recording will be made available Submit questions via Zoom – will be answering at end Welcome – Housekeeping Items
  • 3. This talk will cover the advanced features of Postgres that make it the most-loved RDBMS by developers and a great choice for non- relational workloads. Portions of this presentation were taken from https://momjian.us/presentations
  • 4. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.4 Agenda The “Post” Relational Database 1.Postgres has won 2.Document-centric applications 3.Geographic Information Systems (GIS) 4.Business intelligence 5.Central data centers 6.Server-side languages
  • 5. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.5 It is the most loved RDMS. Postgres is widely adopted, is globally developed by hundreds of people and is continually innovating. 1. Postgres Has Won
  • 6. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.6 PostgreSQL Won If you bet… you bet on PostgreSQL Most Loved DatabaseMost Commonly Used Database Postgres Popularity Source: Stack Overflow Developer Survey, 2019 Source: DB-Engines.com, 2020
  • 7. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.7 Postgres as a service offering on all major clouds
  • 8. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.8 Over 180 new features every year
  • 9. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.9 Over 300 people contribute to each release
  • 10. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.10 • 9.6 Parallel Query • 10 Partitioning and Logical Replication • 11 Transaction controlled stored procedures and Just In Time (JIT) Compilation • 12 Pluggable Storage and Partitioning at Scale • 13 Incremental Sort and Advanced Indexing and performance About features More recent release have taken on the more challenging features
  • 11. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.11 • Strong support for the SQL Standard • The optimizer has attracted top academics and practitioners • Advanced features such as window functions • The source for many commercial relational databases is Postgres and database add-ons • True ACID compliance A great relational database
  • 12. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.12 Many Databases leverage Postgres And … many more !!!
  • 13. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.13 Postgres was designed from the start to be extensible. This makes it a great choice for non-relational (No SQL) applications. 2. Document-Centric Applications
  • 14. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.14 • Full is naturally integrated with ANSI SQL in Postgres • JSON and SQL queries use the same language, the same planner, and the same ACID compliant transaction framework • JSON and HSTORE are elegant and easy to use extensions of the underlying object-relational model JSON and ANSI SQL - A natural fit
  • 15. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.15 JSON Examples CREATE TABLE semi_structured_data (object JSONB); …. {"name": "Apple Phone", "type": "phone", "brand": "ACME", "price": 200, "available": true, "warranty_years": 1} … INSERT INTO semi_structured_data (object) VALUES (’ { "name": "Apple Phone", "type": "phone", "brand": "ACME", "price": 200, "available": true, "warranty_years": 1 } ') Create a table JSONB Field Simple JSON Data Element Insert this data element into the table semi_structured_objects
  • 16. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.16 { "firstName": "John", // String Type "lastName": "Smith", "isAlive": true, // Boolean "age": 25, // Number Type "height_cm": 167.6, "address": { // Object Type "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021-3100" }, "phoneNumbers": [ // Object Array { "type": "home", "number": "212 555-1234" }, { "type": "office", "number": "646 555-4567" } ], "children": [], "spouse": null } } JSON Data Type Example
  • 17. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.17 products=# insert into semi_structured_objects values('{ "firstName": "John", "lastName": "Smith", "isAlive": true, "age": 25, "height_cm": 167.6, "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021-3100" }, "phoneNumbers": [ { "type": "home", "number": "212 555-1234" }, { "type": "office", "number": "646 555-4567" } ], "children": [], "spouse": null } '); products=# select * from semi_structured_objects ; {"name": "Apple Phone", "type": "phone", "brand": "ACME", "price": 200, "available": true, "warranty_years": 1} {"age": 25, "spouse": null, "address": {"city": "New York", "state": "NY", "postalCode": "10021-3100", "streetAddress": ... Can store different objects in same field Different ROWs with different attributes.
  • 18. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.18 products=# select * from product; weight | sku | name | manufacturer | instock | price --------+-----+---------------+--------------+---------+--------- 0.5 | 1 | Apple iPhone | Apple | t | $950.00 0.3 | 2 | Apple Watch | Apple | t | $220.00 0.2 | 3 | Apple earpods | Apple | t | $220.00 3 | 4 | Macbook Pro | Apple | t | $220.00 products=# select to_json(r) from (select sku as id, name as prod_name from product) r; -------------------------------------- {"id":1,"prod_name":"Apple iPhone"} {"id":2,"prod_name":"Apple Watch"} {"id":3,"prod_name":"Apple earpods"} {"id":4,"prod_name":"Macbook Pro"} (4 rows) Transform tables to JSON Format
  • 19. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.19 products=# select * from semi_structured_objects ; {"name": "Apple Phone", "type": "phone", "brand": "ACME", "price": 200, "available": true, "warranty_years": 1} {"age": 25, "spouse": null, "address": {"city": "New York", "state": "NY", "postalCode": "10021-3100", "streetAddress": ... products=# select object->>'name' as "Product Name" from semi_structured_objects where object->>'brand'='ACME'; Product Name -------------- Apple Phone (1 row) products=# SQL constructs to query the JSON DATA
  • 20. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.20 JSON and ANSI SQL Example SELECT DISTINCT product_type, data->>'brand' as Brand, data->>'available' as Availability FROM json_data JOIN product ON (product.product_type=semi_structured_objects.object->>'name') WHERE semi_structured_objects.object->>'available'=true; product_type | brand | availability ---------------------------+-----------+-------------- AC3 Phone | ACME | true ANSI SQL JSON No need for programmatic logic to combine SQL and NoSQL in the application – Postgres does it all
  • 21. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.21 Performance Comparison: PostgreSQL 11/MongoDB 4.0 ● Benchmarks published in June 2019 (follow up to similar analysis in 2014) ● Executed by ongres.com ● Using m5.4xlarge (16 vcores) on AWS EC2 ● Details at (including the code and the engine to verify the findings) http://info.enterprisedb.com/Performance-Benchmarks-PostgreSQL-vs-MongoDB.html
  • 22. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.22 Performance Comparison: PostgreSQL 11/MongoDB 4.0 OLTP (sysbench) - Many Small Transactions - Large Data Set PGBouncer (connection pooler) is key to manage highly concurrent access
  • 23. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.23 PostGIS is one of the most popular geospatial database offerings in the market. Turning Postgres into one of the most popular and powerful geospatial database is free and simple. 3. Geographic Information Systems (GIS)
  • 24. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.24 Power through extensibility — Geo spatial Postgres=# create EXTENSION postgis; CREATE EXTENSION Now have one of the world’s most popular Geospatial Databases built on well established industry standards.
  • 25. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.25 PostGIS enables a new type of analysis ● What is the largest city with 100 miles of the Grand Canyon? ● How many households are within 1 mile of this fault line? ● If we relocate, the office how does the average commute distance change? ● How many cities within 150KM of Tampa have median income over $50,000.00? ● What truck drove the greatest distance yesterday?
  • 26. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.26 PostGIS enables a new type of analysis CREATE TABLE public.interesting_cities ( id integer, name character varying(100), location geometry(Point,4326), medium_hval money, int population, PRIMARY KEY (id) ) A type introduced by PostGIS
  • 27. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.27 Analysis can now involve spatial references -- How many Meters are between Boston (TOM) and Philadelphia (BRUCE)? select ST_Distance (ST_Transform ((select location from interesting_cities where name ='Boston'), 3587), ST_Transform((select location from interesting_cities where name = 'Philadelphia'), 3587)); st_distance -------------------- 431332.35327121057 (1 row) ST_Distance and ST_Transform are functions introduced by PostGIS extension.
  • 28. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.28 Can use Spatial AND Traditional analysis tools -- Interesting cities within 150 KM of Boston with the 10 lowest medium home prices select name , medium_hval, location from interesting_cities where (select ST_Distance (ST_Transform (location, 3587), ST_Transform( ( select location from interesting_cities where name = 'Boston'), 3587) ) ) < 150000 ORDER BY medium_hval limit 10; Spatial Query Traditional RDBMS expression
  • 29. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.29 PgAdmin 4 is part of PostGIS eco-system
  • 30. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.30 Postgres has advanced functionality for business intelligence. 4. Business Intelligence
  • 31. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.31 Variable from first expression passed to next expression. (and again to third expression) Business Intelligence — Advanced CTE Features WITH source (order_id) AS ( DELETE FROM orders WHERE name = ’my order’ RETURNING order_id ), source2 AS ( DELETE FROM items USING source WHERE source.order_id = items.order_id ) INSERT INTO old_orders SELECT order_id FROM source; Delete a given order,all the items associated with order and place order in a historical table. Less code to maintain than on any other database Fewer round trips with the server than on any other database
  • 32. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.32 Business Intelligence — Windows Functions SELECT depname, empno, salary, rank() OVER (PARTITION BY depname ORDER BY salary DESC) FROM empsalary; depname | empno | salary | avg -----------+-------+--------+----------------------- develop | 11 | 5200 | 5020.0000000000000000 develop | 7 | 4200 | 5020.0000000000000000 develop | 8 | 6000 | 5020.0000000000000000 develop | 10 | 5200 | 5020.0000000000000000 personnel | 5 | 3500 | 3700.0000000000000000 personnel | 2 | 3900 | 3700.0000000000000000 sales | 3 | 4800 | 4866.6666666666666667 sales | 1 | 5000 | 4866.6666666666666667 sales | 4 | 4800 | 4866.666666666666667 (9 rows) compare each employee's salary with the average salary in his or her department
  • 33. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.33 Business Intelligence — Specialized Indexes Specialized Indexes for all data types and access patterns Index Type Optimized For B-Tree Range queries with low selectivity and largely unique values. The traditional database index. HASH Equality lookups on large datasets (key / value store) use cases. GiST Unstructured Data i.e. Geo Spatial Types GIN JSON Data, Full Text Search, JSONB Data SP-GiST SP-GIST is ideal for indexes whose keys have many duplicate prefixes
  • 34. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.34 Business Intelligence — Specialized Indexes Specialized Indexes for non-relational data Index Type Optimized For BRIN Time series data, multi-terabyte tables PARTIAL When only a specific set of values will be looked up COVERING For access patterns to unindex values navigated to by an index. EXPRESSION Allow for variances in keys
  • 35. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.35 Postgres can function as a central integration point for your data center using Foreign Data Wrappers. 5. Central Data Center
  • 36. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.36 Power through extensibility — Foreign Data Wrappers postgres=# create extension postgres_fdw; CREATE EXTENSION
  • 37. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.37 Foreign Data Wrappers CREATE SERVER postgres_server FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host ’localhost’, dbname ’fdw_test’); create SERVER oracle_server foreign data wrapper oracle_fdw options (dbserver '//<oracle_servefr_IP>/<sid>' ); CREATE SERVER mongo_server FOREIGN DATA WRAPPER mongo_fdw OPTIONS (address '127.0.0.1', port '27017'); CREATE SERVER hadoop_server FOREIGN DATA WRAPPER hdfs_fdw OPTIONS (host '127.0.0.1'); CREATE SERVER mysql_server FOREIGN DATA WRAPPER mysql_fdw OPTIONS (host '127.0.0.1', port '3306');
  • 38. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.38 Foreign Data Wrapper Access Application Stack
  • 39. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.39 Postgres has server-side language support for almost all developers. 6. Server-Side Languages
  • 40. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.40 Server-Side Programming Languages • PL/Java • PL/Python • PL/R • PL/pgSQL (like PL/SQL) • PL/Ruby • PL/Scheme • PL/sh • PL/Tcl • PL/v8 (JavaScript) • SPI (C) CREATE LANGUAGE plpython3u; CREATE OR REPLACE FUNCTION pymax (a integer, b integer) RETURNS integer AS $$ if a > b: return a return b $$ LANGUAGE plpython3u; SELECT pymax(12, 3); pymax ------- 12 (1 row)
  • 41. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.41 Learn More Other resources Thank You Next Webinar: December 16 Postgres Enterprise Manager 8.0: Something For Everyone Postgres Pulse EDB Youtube Channel