nosql mit postgresblogs.gm.fh-koeln.de/faeskorn/files/2015/05/c2b_fh... · 2020-03-12 · nosql mit...

17
Tag der Datenbanken NoSQL mit Postgres 15. Juni 2015 Damian Gawenda Dipl.-Wirt.-Inform.

Upload: others

Post on 21-Jun-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: NoSQL mit Postgresblogs.gm.fh-koeln.de/faeskorn/files/2015/05/c2b_FH... · 2020-03-12 · NoSQL mit Postgres Damian Gawenda 15.06.15 Seite: 8 Warum NoSQL? lNoSQL bedeutet „Not-Only

Tag der Datenbanken

NoSQL mit Postgres15. Juni 2015

Damian GawendaDipl.-Wirt.-Inform.

Page 2: NoSQL mit Postgresblogs.gm.fh-koeln.de/faeskorn/files/2015/05/c2b_FH... · 2020-03-12 · NoSQL mit Postgres Damian Gawenda 15.06.15 Seite: 8 Warum NoSQL? lNoSQL bedeutet „Not-Only

NoSQL mit Postgres

Damian Gawenda 15.06.15 Seite: 2

Agenda

l Vorstellungl Marktübersichtl Warum PostgreSQL?l Warum NoSQL?l Beispielanwendung

Page 3: NoSQL mit Postgresblogs.gm.fh-koeln.de/faeskorn/files/2015/05/c2b_FH... · 2020-03-12 · NoSQL mit Postgres Damian Gawenda 15.06.15 Seite: 8 Warum NoSQL? lNoSQL bedeutet „Not-Only

NoSQL mit Postgres

Damian Gawenda 15.06.15 Seite: 3

Vorstellung

Damian GawendaDipl.-Wirt.-Inform.

[1990] Erste Programmiererfahrung[seit 2004] Software Entwickler[seit 2007] Dozent für IT-Themen[seit 2009] Unternehmensberater[Feb.2015] Gründung City2Be GmbH

www.city2be.net

Page 4: NoSQL mit Postgresblogs.gm.fh-koeln.de/faeskorn/files/2015/05/c2b_FH... · 2020-03-12 · NoSQL mit Postgres Damian Gawenda 15.06.15 Seite: 8 Warum NoSQL? lNoSQL bedeutet „Not-Only

NoSQL mit Postgres

Damian Gawenda 15.06.15 Seite: 4

Page 5: NoSQL mit Postgresblogs.gm.fh-koeln.de/faeskorn/files/2015/05/c2b_FH... · 2020-03-12 · NoSQL mit Postgres Damian Gawenda 15.06.15 Seite: 8 Warum NoSQL? lNoSQL bedeutet „Not-Only

NoSQL mit Postgres

Damian Gawenda 15.06.15 Seite: 5

Marktübersicht – Top10

Ranking Methode nach „current popularity“ vial Google Trends, Bing, Stack Overflow, DBA Stack Exchange, Twitter, LinkedIn, Indeed u.a.

l Quelle: http://db-engines.com/en/ranking

Page 6: NoSQL mit Postgresblogs.gm.fh-koeln.de/faeskorn/files/2015/05/c2b_FH... · 2020-03-12 · NoSQL mit Postgres Damian Gawenda 15.06.15 Seite: 8 Warum NoSQL? lNoSQL bedeutet „Not-Only

NoSQL mit Postgres

Damian Gawenda 15.06.15 Seite: 6

Trend – OpenSource vs. Commercial

l Quelle: http://db-engines.com/en/ranking_osvsc

Page 7: NoSQL mit Postgresblogs.gm.fh-koeln.de/faeskorn/files/2015/05/c2b_FH... · 2020-03-12 · NoSQL mit Postgres Damian Gawenda 15.06.15 Seite: 8 Warum NoSQL? lNoSQL bedeutet „Not-Only

NoSQL mit Postgres

Damian Gawenda 15.06.15 Seite: 7

Warum PostgreSQL?

lFree und Open-Source (ORDBMS)l Keine Lizenzkosten

lEnterprise-Features, vergleichbar mit Oracle und DB2l "Best Kept Enterprise Database Secret."

lZuverlässig, stabil und sehr performantl „companies report that PostgreSQL has never, ever crashed for them in several years“

lCross platforml Läuft auf Linux, Windows, FreeBSD, Solaris und Mac OS

lCustom Languages, Extensions und NoSQL-Featuresl Python, Ruby, R, PLV8 uva.

Page 8: NoSQL mit Postgresblogs.gm.fh-koeln.de/faeskorn/files/2015/05/c2b_FH... · 2020-03-12 · NoSQL mit Postgres Damian Gawenda 15.06.15 Seite: 8 Warum NoSQL? lNoSQL bedeutet „Not-Only

NoSQL mit Postgres

Damian Gawenda 15.06.15 Seite: 8

Warum NoSQL?

lNoSQL bedeutet „Not-Only SQL“Gemeint sind: cloud databases, non-relational databases, Big Data databases

lBestens geeignet für große, unstrukturierte Datenmengen l Schnelles Design > Fehlertoleranzl Wachsende Strukturen > horizontale u. Vertikale Skalierungl Sehr viele Clients > Verfügbarkeitl Echtzeit-Verbindungen > Performance

l“If your data isn’t growing then neither is your business”

Page 9: NoSQL mit Postgresblogs.gm.fh-koeln.de/faeskorn/files/2015/05/c2b_FH... · 2020-03-12 · NoSQL mit Postgres Damian Gawenda 15.06.15 Seite: 8 Warum NoSQL? lNoSQL bedeutet „Not-Only

NoSQL mit Postgres

Damian Gawenda 15.06.15 Seite: 9

Wer nutzt NoSQL?

Page 10: NoSQL mit Postgresblogs.gm.fh-koeln.de/faeskorn/files/2015/05/c2b_FH... · 2020-03-12 · NoSQL mit Postgres Damian Gawenda 15.06.15 Seite: 8 Warum NoSQL? lNoSQL bedeutet „Not-Only

NoSQL mit Postgres

Damian Gawenda 15.06.15 Seite: 10

SQL vs. NoSQL

Relationales SQL Not-Only SQL

+ Konsistenz + Skalierbarkeit

+ Sicherheit + Performance

+ Etabliert + Verfügbarkeit

+ Transaktionssicher + Fehlertoleranz

Wir wollen alle Vorteile!

Page 11: NoSQL mit Postgresblogs.gm.fh-koeln.de/faeskorn/files/2015/05/c2b_FH... · 2020-03-12 · NoSQL mit Postgres Damian Gawenda 15.06.15 Seite: 8 Warum NoSQL? lNoSQL bedeutet „Not-Only

NoSQL mit Postgres

Damian Gawenda 15.06.15 Seite: 11

Lösung: Relationale DB + NoSQL

Page 12: NoSQL mit Postgresblogs.gm.fh-koeln.de/faeskorn/files/2015/05/c2b_FH... · 2020-03-12 · NoSQL mit Postgres Damian Gawenda 15.06.15 Seite: 8 Warum NoSQL? lNoSQL bedeutet „Not-Only

NoSQL mit Postgres

Damian Gawenda 15.06.15 Seite: 12

Postgres 9.4: JSON Datentyp

l JavaScript Object Notation (JSON), also JavaScript Syntaxl Data Interchange Format: RFC 7159

lBasic Elements:Object {“key“: “value“, “key2“: “value2“ }List [“string“, 5, 3.14, true, “noch eine Zeichenkette“]

lBeispiel:[{

"id": 1, "name": "Peter"}, { "id": 2, "name": "Susi"

}]

Page 13: NoSQL mit Postgresblogs.gm.fh-koeln.de/faeskorn/files/2015/05/c2b_FH... · 2020-03-12 · NoSQL mit Postgres Damian Gawenda 15.06.15 Seite: 8 Warum NoSQL? lNoSQL bedeutet „Not-Only

NoSQL mit Postgres

Damian Gawenda 15.06.15 Seite: 13

Relational + NoSQL (Implementierung)

/* DDL EXAMPLE RELATIONAL TABLE */CREATE TABLE my_REL_data (

company_id SERIAL CONSTRAINT myRELdata_pk PRIMARY KEY,company TEXT NOT NULL, street TEXT NOT NULL, zip TEXT NOT NULL, place TEXT NOT NULL, phone TEXT NOT NULL, email TEXT NOT NULL, homepage TEXT NOT NULL,created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP

);

/* DDL EXAMPLE WITH JSON*/CREATE TABLE my_API_data (

data_id INTEGER CONSTRAINT myAPIdata_pk PRIMARY KEY,raw_data JSON, /* or JSONB */created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP

);

Page 14: NoSQL mit Postgresblogs.gm.fh-koeln.de/faeskorn/files/2015/05/c2b_FH... · 2020-03-12 · NoSQL mit Postgres Damian Gawenda 15.06.15 Seite: 8 Warum NoSQL? lNoSQL bedeutet „Not-Only

NoSQL mit Postgres

Damian Gawenda 15.06.15 Seite: 14

NoSQL Tabelle befüllen

/* DML/DQL EXAMPLE WITH JSON*/INSERT INTO my_API_data (data_id, raw_data)

SELECT id, row_to_json(d)FROM (

SELECT company_id AS id, company, street, zip, place, phone, email, homepageFROM my_REL_data

) d ;

Page 15: NoSQL mit Postgresblogs.gm.fh-koeln.de/faeskorn/files/2015/05/c2b_FH... · 2020-03-12 · NoSQL mit Postgres Damian Gawenda 15.06.15 Seite: 8 Warum NoSQL? lNoSQL bedeutet „Not-Only

NoSQL mit Postgres

Damian Gawenda 15.06.15 Seite: 15

Befüllen automatisieren/* TRIGGER */CREATE TRIGGER my_copy_TRGAFTER INSERT OR UPDATE ON my_REL_data FOR EACH ROW EXECUTE PROCEDURE my_copy_FUNC(); /* TRIGGER FUNCTION TO FILL TO API */CREATE OR REPLACE FUNCTION my_copy_FUNC() RETURNS trigger AS $$BEGIN

IF (TG_OP = 'INSERT') THENinsert into my_API_data (data_id, raw_data)select id, row_to_json(d)From (

select company_id as id, company, street, zip, place, phone, email, homepage

from my_REL_data where company_id = NEW.company_id) d ;ELSE /* UPDATE .. */END IF;RETURN NEW;

END;$$ LANGUAGE plpgsql;

Page 16: NoSQL mit Postgresblogs.gm.fh-koeln.de/faeskorn/files/2015/05/c2b_FH... · 2020-03-12 · NoSQL mit Postgres Damian Gawenda 15.06.15 Seite: 8 Warum NoSQL? lNoSQL bedeutet „Not-Only

NoSQL mit Postgres

Damian Gawenda 15.06.15 Seite: 16

Zusammenfassung

lPostgreSQL als die Alternative zu kommerziellen DBMS

lNot-Only SQL als Lösung für das heutige u. zukünftige Daten-Zeitalter

lEs lassen sich Vorteile aus beiden Welten (Relationale DB + NoSQL) vereinen.

Page 17: NoSQL mit Postgresblogs.gm.fh-koeln.de/faeskorn/files/2015/05/c2b_FH... · 2020-03-12 · NoSQL mit Postgres Damian Gawenda 15.06.15 Seite: 8 Warum NoSQL? lNoSQL bedeutet „Not-Only

Vielen Dank für Ihre Aufmerksamkeit!

Damian GawendaDipl.-Wirt.-Inform.

City2Be GmbHMartinstr. 5a51645 Gummersbach

Tel. 02261-609 [email protected]

www.city2be.net