35
Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

Chancen und Wachstumsfelder für

PostgreSQL by

Deutschsprachige PostgreSQL Konferenz 2013Oberhausen

Harald Armin Massa

Page 2: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

Datenbanken seit 1984

Position – Value Datenbank aufC64 / VC1541

Harald Armin Massa2ndQuadrant

Page 3: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

ca. 1995...

Page 4: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa
Page 5: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

member of Python Software Foundation

Page 6: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

ich hätte mal eine ketzerische Frage an den PostGreSQL-Experten, wenn es recht ist? Ich würde gern gelegentlich eine der zahllosen Funktionen von PostGIS benutzen, ohne dafür erst eine leere Datenbank anlegen zu müssen. Ist das zu viel verlangt? …

Page 7: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

... Ausführung von Testscripts ...

...will ich eigentlich auf gar keinen Fall vorher erst einen DB-Benutzer oder irgendwelche Rechte anlegen müssen...

Page 8: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

from pymongo import MongoClientclient = MongoClient()

post = {"author": "Mike", "text": "My first blog post!", "tags": ["mongodb", "python", "pymongo"], }

posts = db.postspost_id = posts.insert(post)

Page 9: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

Wachstum – warum?

Quelle: http://simplydv.biz/

Quelle: emsps.com

Page 10: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

wo wachsen?

Quelle http://blog.internship-in-southafrica.de/tag/elefanten/

Quelle: elefanten-news.de

Page 11: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

„große Nutzer“

„kleine Nutzer“Einsteiger, neue Projekte

Page 12: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

Große Nutzer, viele Daten

● Unterbrechung richtig teuer● MinMax Indizes● Logical Changeset Replication● Barman (Backup & Disaster Revocery)● RLS

Page 13: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

Row Level Security

darf alles fürKunden Müller

darf alles fürKunden Huber

darf Strasse, PLZ, Ort ändern

darf nicht ändern Vorname, Name

Column Level Security Row Level Security

Page 14: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

RLS von Hand (Beispiele)1) per Viewcreate table kunden(id_kunde, namentext, adresstext);create table kunden_mueller (id_kunde);

create view kunden_je_mitarbeiter as select k.namentext, k.adresstext from kunden k join kunden_mueller km on (k.id_kunde=km.id_kunde);

2) Zugriff auf Daten nur über Stored Procedures

3) Zugriff nur über Anwendung

Page 15: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

Szenario

●Webdesignerin, macht hübsche Seite

●beginnt, HTML zu schreiben

●findet PHP „Serienbriefe für Website“

●Und speichert dann <irgendwas> in <irgendeiner> Datenbank

Page 16: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

connect zu PostgreSQL

➔Konfigurationsdatei an unterschiedlichsten Stellen, je nach Paketierung➔Defaults der Distrubition?➔oft "kein listen an TCP-Ports"➔Einstellung in pg_hba.conf: Kenntnisse in CIDR➔Networking-kenntnisse➔Authentifiziereung jenseits von Passwort?

Page 17: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

Ideen

Beginner-Modus?

VirtualMachine Image mit PostgreSQL, Python, Ruby, PHP...?

Page 18: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

Zugriff ohne Nutzer ?

Applikations-User

session-pooling pg_bouncer – Mirror der Nutzertabelle

Page 19: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

from pymongo import MongoClientclient = MongoClient()

post = {"author": "Mike", "text": "My first blog post!", "tags": ["mongodb", "python", "pymongo"], }

posts = db.postsposts.find_one({"author": "Mike"})

Page 20: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

Verbindung . Datenbanktreiber

MongoDB / Python:

Query in der MongoDB-Console war gültiger Python-Codefür den pyMongo-Treiber

Page 21: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

Verbindung. Datenbanktreiber

MongoDB

Herrschaft über Datenbanktreiber

PostgreSQLODBC, JDBC – Seitenprojekte

psycopg2

Datenbankunabhängige Programmierung?ORM

Page 22: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

Datenbankschema

Quele: Wikipedia

Page 23: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

Datenbankschema

Einzig PostgreSQL kann

BEGIN;DROP TABLE ALLERWICHTIGSTEDATEN;ROLLBACK;

(transactional DDL)

Page 24: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

Datenbankschema

Page 25: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

Datenbankschema

alter table person drop column myspace;

(gab es bei 7.2 noch nicht!)

Page 26: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

Datenbankschema

alter table person add column facebook(text);

Page 27: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

Datenbankschema

Deployment?Development → Test → Staging → Production?

Änderungen als SQL Statements in DateienDateien in RCS

Page 28: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

Datenbankschema - jsonCREATE TABLE tuwienosql( id_t serial NOT NULL, dokument json, CONSTRAINT tuwienosql_pkey PRIMARY KEY (id_t));

INSERT INTO tuwienosql( dokument) VALUES ('{"tiername":"Goofy", "ohren":"lang"}');

[…]

CREATE FUNCTION xtraktname (mydokument json) returns text [...];CREATE INDEX tuwieno_idx ON tuwienosql(xtraktname (dokument));

[…]

ALTER TABLE tuwienosql ADD COLUMN tiername text;

Page 29: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

Ideen

Versions-Handling von Schemata in der Datenbank (Diff, Revision, Set to Revision)

multiple Schema-Varianten parallel:

connect to database personal with version <versionskennung>

Page 30: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

Wachstumsfeld

Page 31: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

quelle: theverge.com

Page 32: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

Erst wenn alle Software frei ist,

alle Marketing Abteilungen GNU/Linux statt Linux sagen

und EMACs der einzige Editor ist

wird Richard Stallmann den Cheatcode für den Weltfrieden rausrücken.

Page 33: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

weg dorthin?

technische Herausforderungen Windows

soziale Herausforderungen?

2nd Class ?

Page 34: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

PostgreSQL on Windows

Python-Windows-Installercode

~600 Zeilen Python für einen Windows-Installer

Page 35: Chancen und Wachstumsfelder für PostgreSQL · Chancen und Wachstumsfelder für PostgreSQL by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa

Zeit für Fragenund Anregungen

Harald Armin Massa2ndQuadrant