Nutzerforum - PostgreSQL



Ähnliche Dokumente
Datenbanken 1. Einführung und Zugänge für die eingesetzten Resourcen. ISWeb - Information Systems & Semantic Web University of Koblenz Landau, Germany

Informatik 12 Datenbanken SQL-Einführung

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Arbeiten mit einem lokalen PostgreSQL-Server

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

Zugriff auf Firebird-Datenbanken mit PHP. Daniel de West DB-Campus-Treffen 15. Januar 2004

PHP und MySQL. Integration von MySQL in PHP. Zellescher Weg 12 Willers-Bau A109 Tel Michael Kluge (michael.kluge@tu-dresden.

Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB. Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5.

Bibliografische Informationen digitalisiert durch

Umzug der Datenbank Firebird auf MS SQL Server

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

PostgreSQL unter Debian Linux

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Abfragen: Grundbausteine

Whitepaper. Produkt: combit Relationship Manager. Einbindung externer FiBu-/Warenwirtschaftsdaten. combit GmbH Untere Laube Konstanz

E-Commerce: IT-Werkzeuge. Web-Programmierung. Kapitel 6: Datenbankabfragen mit SQL und PHP. Stand: Übung WS 2014/2015

Grundlagen Datenbanken Sommersemester 2008

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

PostgreSQL in großen Installationen

SQL-Toolboxbeispielmandant Dokumentation

Datenbank - Teil 3. Ziele: Eine Datenbank anlegen mit SQL. Daten eingeben mit SQL. Abfragen stellen mit SQL und PHP.

SQL - Übungen Bearbeitung der Datenbank Personal (1)

SQL-Injection. Seite 1 / 16

ecaros2 - Accountmanager

Abfrage-Befehle in MySQL -diverse Funktionen -

samrestore - restore your SAM-FS files

Informatik für Ökonomen II Übung 0

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Programm Beschreibung

Übung 7 DBMS-FUNKTIONALITÄTEN UND DATENIMPORT

Administrator-Anleitung

datenfabrik. Validieren von -Adressen 1

SQL Teil 2. SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Komplexer SELECT-Ausdruck

Entwicklungsumgebung für die Laborübung

Auswahlabfragen mit ACCESS

Bedarfsmeldungen für Studentische Hilfskräfte und Tutoren erstellen und ändern

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS Metadaten

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen.

Datenbanken Microsoft Access 2010

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

07. Kapitel: Abfragen erstellen Geschätzter Zeitaufwand: 45 Minuten

PostgreSQL auf Debian System

MIN oder MAX Bildung per B*Tree Index Hint

Whitepaper. Produkt: combit Relationship Manager / address manager. Integration der Ansicht "Adressen" in eigene Solution

MySQL Queries on "Nmap Results"

Interaktive Webseiten mit PHP und MySQL

Externe Authentifizierung. Externe Authentifizierung IACBOX.COM. Version Deutsch

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

Installationshinweise Linux Edubuntu 7.10 bei Verwendung des PC-Wächter

Whitepaper. Produkt: combit Relationship Manager. Einbindung externer FiBu-/Warenwirtschaftsdaten. combit GmbH Untere Laube Konstanz

Installationsanweisung editit

Verknüpfte Daten abfragen mit SPARQL. Thomas Tikwinski, W3C.DE/AT

PHP + MySQL. Die MySQL-Datenbank. Hochschule Karlsruhe Technik & Wirtschaft Internet-Technologien T3B250 SS2014 Prof. Dipl.-Ing.

ISA Server 2004 Protokollierung - Von Marc Grote. Die Informationen in diesem Artikel beziehen sich auf:

Aktuelle Entwicklungen

Datenbanken für Online Untersuchungen

MS Access 2010 Kompakt

SEMINAR Modifikation für die Nutzung des Community Builders

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

Prozedurale Datenbank- Anwendungsprogrammierung

Die bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert.

SQL structured query language

Durchführung von Webprojekten. PHP und MySQL

7. Übung - Datenbanken

Datenmanagement in Android-Apps. 16. Mai 2013

1. EINLEITUNG 2. GLOBALE GRUPPEN Globale Gruppen anlegen

desk.modul : ABX-Lokalisierung

Internet online Update (Mozilla Firefox)

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Inhaltsverzeichnis. 1 Hallo 13

Grundlagen der Informatik 2

105.3 SQL-Datenverwaltung

Shopware-Plugin. Statusverwaltung. Version RHIEM Intermedia GmbH. General Manager: Franz Rhiem Dr.-Ing Stefan Rhiem René Tanzer

Übungsblatt 8- Lösungsvorschlag

P&P Software - Adressexport an Outlook 05/29/16 14:44:26

Der SD-Kartenslot befindet sich an der rechten Gehäuseseite unterhalb der rechteckigen hellgrauen Gummiabdeckung.

Datacenter-Workshop Mobile Access to NetApp FAS TU Chemnitz, Universitätsrechenzentrum. Datacenter-Workshop. Mobile Access to NetApp FAS.

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien

Kompaktes Datenbank-Wissen rund um die Datenbank-Programmierung mit Transact-SQL

Dialyse Benchmark - Online so funktioniert s

Aufgaben zu XPath und XQuery

Persona-SVS e-sync GUI/Client Installation

Anleitung zur Einrichtung einer ODBC Verbindung zu den Übungsdatenbanken

Leere Zeilen aus Excel-Dateien entfernen

TISIS - Industrie 4.0. Ereignis, Ort, Datum

Indexing und Performance Tuning

Datenbanken. Ein DBS besteht aus zwei Teilen:

Arbeitsgruppen innerhalb der Website FINSOZ e.v.

Vertretungsplan: Anbindung an Untis und DaVinci Lernmanagementsystem wtkedu

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

CLR-Integration im SQL-Server. Alexander Karl

Serverbetrieb überwachen Prozesse Protokolldateien. MySQL 4, 5. Kapitel 11: Logfiles. Marcel Noe

1.3 Erster Start des Aufmaß-Moduls und Anlegen der Datenbank

5 Zweisprachige Seiten

Schuljahreswechsel im Schul-Webportal

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Transkript:

Nutzerforum - PostgreSQL Der Datenbankdienst des URZ bekommt Nachwuchs Andreas Heik, Daniel Schreiber TU-Chemnitz, Universitätsrechenzentrum 22. April 2015 1 / 26

Datenbankdienste des URZ MySQL-Datenbankdienst Datenbankdienst um 1999/2000 etabliert 555 aktive Datenbanken belegen 35 GB 1 Datenbanken als shared service auf einem virtuellen Server mit 8 CPUs und 12 GB RAM MySQL 5.1.x unter Scientific Linux 6 zentrale Systempflege (LADM) (Betriebssystem und Datenbanksoftware) tägliche Datensicherung (mysqldump) 1 Stand: 04/2015 2 / 26

PostgreSQL - Motivation Motivation für PostgreSQL Anfragen aus Nutzerkreis Eigenbedarf im URZ und ZUV ausgereifte, stabile Datenbanksoftware OpenSource Lizenz uneingeschränkt nutzbar 06/2014 HiWi-Projekt ausgeschrieben 3 / 26

Entwicklungsziele Entwicklungsziele Datenbankservice auf Basis von PostgreSQL (ähnlich dem MySQL-Datenbankservice) einfacher Zugang, einfache Benutzung (automatisiertes Anlegen von Datenbanken und Datenbankbenutzern) Integration in IdM-Portal: Beauftragung und Modifikation Verwaltung (Ressourcenverantwortlicher, Laufzeit,... ) Freigabe der Ressourcen Betrieb eines zentralen Servers im URZ 4 / 26

technische Basis technische Basis PostgreSQL 9.4 Softwareupdates von http://www.postgresql.org/ Datenbanken als shared service auf einem virtuellen Server mit 2 CPUs und 8 GB RAM unter Scientific Linux 6 (LADM) Service Monitoring auf Basis von xymon tägliche Datensicherung Replikation zu Slave-System 5 / 26

Datenbank beauftragen Datenbank beauftragen zentraler Dienst des URZ mit Fokus auf Forschung und Lehre (keine kommerzielle Nutzung) Nutzerkreis: Studenten und Mitarbeiter Beauftragung im IdM-Portal: https://idm.hrz.tu-chemnitz.de/user/ minimale Parameterabfrage (Name, Beschreibung, Ablaufdatum) schreibberechtigter Datenbanknutzer aus DB-Name gebildet optional: leseberechtigter Datenbanknutzer Datenbankpassworte werden vom IdM nach aktuellen Sicherheitsrichtlinien erzeugt und einmalig angezeigt 6 / 26

Nutzungshinweise Nutzungshinweise Datenbankressourcen sind befristet (Verlängerung der Laufzeit im IdM-Portal) Sperrung der Ressource am Laufzeitende Löschen der Ressource 60 Tage nach Sperrung shared service - Datenbanken teilen sich einen DB-Server Datenvolumen und Abfragefrequenz berücksichten keine IP-basierte Beschränkung im Campusnetz (bisher häufigste Fehlerursache) Tipp: für nichtpersönliche Datenbankprojekte zusätzlichen Ressourcenverantwortlichen oder IdM-Gruppe festlegen 7 / 26

Nutzungshinweise Verbesserungen von PostgreSQL viel mehr Standard SQL als MySQL Statistik basierter Optimierer Window functions Rekursive Abfragen Nutzerdefinierte Funktionen Nutzerdefinierte Aggregate Trigger feuern immer (standardkonform) Volle Freiheit bei LIMIT, OFFSET, Subselects, ORDER BY Partielle Indizes 8 / 26

Datensicherung Datensicherung tägliche Datensicherung aller Datenbanken ab 0:15 Uhr (mittels pg_dump) Aufbewahrung der Dumps nach Vorgaben des RSYNC Backup-Dienstes (6 Monate, davon 12 wöchentliche und 28 tägliche Dumps) Restorefall: Auslieferung von Datenbank-Dumps an Ressourcenverantwortliche Restore mittels pg_restore Einspielen eines Datenbank-Dumps auf Wunsch durch URZ Havariefall: Aktivierung des Slave-Systems, Umschalten des DNS-Alias (kein automatischer Prozess) 9 / 26

Clientenunterstützung Clientenunterstützung Verbindungsinformationen werden im IdM-Portal angezeigt Kommandozeile: psql grafisches Werkzeug: pgadmin3 Webanwendungen: php, pg_connect() Treiber für verschiedene Programmiersprachen (PyGreSQL, python-psycopg2,... ) SDBC-Treiber (LibreOffice Integration) ODBC, JDBC-Treiber 10 / 26

Clientenunterstützung Demo Datenbank beauftragen Daten laden pgadmin3 PHP SQL 11 / 26

Clientenunterstützung psql Interaktiver SQL Prompt \? psql Hilfe \h SQL Hilfe \e letzen Befehl bearbeiten \d Tabellen anzeigen \i Code aus Datei laden und ausführen CSV Daten laden: \copy t_oil from t_oil.csv with delimiter, 12 / 26

Clientenunterstützung PHP PSQL // Verbindungsaufbau und Auswahl der Datenbank $dbconn = pg_connect("host=pgsql.hrz dbname=mydb user=mydb_rw password=****") or die( Verbindungsaufbau fehlgeschlagen:. pg_last_error()); // SQL-Abfrage $query = SELECT * FROM authors ; $result = pg_query($query) or die( Abfrage fehlgeschlagen:. pg_last_error()); // Ergebnisse HTML-formatiert ausgeben echo "<table>\n"; while ($line = pg_fetch_array($result, null, PGSQL_ASSOC)) { echo "\t<tr>\n"; foreach ($line as $col_value) { echo "\t\t<td>$col_value</td>\n"; } echo "\t</tr>\n"; } echo "</table>\n"; // Speicher freigeben pg_free_result($result); // Verbindung schliessen pg_close($dbconn); 13 / 26

Clientenunterstützung Fallstricke für MySQL-Nutzer Quoting: " Bezeichner, Text GROUP BY: Alle Spalten müssen angegeben werden, wenn kein Aggregat kein AUTO_INCREMENT Datentyp SERIAL verwenden CHECK Klauseln werden angewendet mysql -u psql -U Sortierung NULL-Werte per Default anders. PostgreSQL: NULLS LAST LIKE ist case sensitive. Alternative ILIKE in MySQL OR, Standard SQL Textverknüpfung 14 / 26

SQL SQL Basics SELECT * FROM t_oil; country year production --------------+------+------------- Saudi Arabia 1980 3623400 Saudi Arabia 1981 3582475 Saudi Arabia 1982 2366295 Saudi Arabia 1983 1856390... Saudi Arabia 2013 3538000 USA 1980 3146502 USA 1981 3128780 USA 1982 3156885... 15 / 26

SQL SQL Basics s e l e c t sum(production), country from t_oil group by country; sum country ----------+-------------- 84529125 USA 96284029 Saudi Arabia (2 Zeilen) 16 / 26

SQL SQL Basics s e l e c t year/10*10, country, sum(production) from t_oil group by country, year/10 order by year/10, country;?column? country sum ----------+--------------+---------- 1980 Saudi Arabia 21415949 1980 USA 31101036 1990 Saudi Arabia 29292522 1990 USA 24490633 2000 Saudi Arabia 31738128 2000 USA 19782289 2010 Saudi Arabia 13837430 2010 USA 9155167 17 / 26

SQL Group Filter s e l e c t year, sum(production) filter (WHERE country= Saudi Arabia ) as "SA", sum(production) filter (WHERE country= USA ) as USA from t_oil group by year order by 1; year SA usa ------+---------+--------- 1980 3623400 3146502 1981 3582475 3128780 1982 2366295 3156885 1983 1856390 3171120... 18 / 26

SQL Daten generieren s e l e c t * from generate_series( 2014-01-01 ::date, 2014-01-31 ::date, 1 days :: i n t e r v a l ); generate_series ------------------------ 2014-01-01 00:00:00+01 2014-01-02 00:00:00+01 2014-01-03 00:00:00+01 2014-01-04 00:00:00+01... 2014-01-31 00:00:00+01 (31 Zeilen) 19 / 26

SQL Daten generieren s e l e c t g.g::date from generate_series( 2014-01-01 ::date, 2014-01-31 ::date, 2 weeks :: i n t e r v a l ) as g; g ------------ 2014-01-01 2014-01-15 2014-01-29 20 / 26

SQL Daten generieren (rekursiv) WITH RECURSIVE x(i) AS ( VALUES(0) UNION ALL SELECT i + 1 FROM x WHERE i < 10 ) SELECT * from x; i ---- 0 1 2... 8 9 10 (11 Zeilen) 21 / 26

SQL Daten generieren (rekursiv) WITH RECURSIVE t(a,b) AS ( VALUES(0,1) UNION ALL SELECT greatest(a,b), a + b AS a FROM t WHERE b < 10 ) s e l e c t a from t; a --- 0 1 1 2 3 5 8 (7 Zeilen) 22 / 26

SQL Nutzerdefinierte Funktionen CREATE OR REPLACE FUNCTION fib(f i n t e g e r ) RETURNS SETOF i n t e g e r LANGUAGE SQL AS $$ WITH RECURSIVE t(a,b) AS ( VALUES(0,1) UNION ALL SELECT greatest(a,b), a + b AS a FROM t WHERE b < $1 ) SELECT a FROM t; $$; select * from fib(10); fib ----- 0 1... 23 / 26

SQL Window Functions s e l e c t year, country, production, (first_value(t_oil) over w).production, (first_value(t_oil) over w). year as max_year from t_oil window w as (partition by year/10, country o r d e r by production desc) order by country, year; year country production production max_year ------+--------------+------------+------------+---------- 1980 Saudi Arabia 3623400 3623400 1980 1981 Saudi Arabia 3582475 3623400 1980... 1997 Saudi Arabia 3052142 3061950 1998 1998 Saudi Arabia 3061950 3061950 1998 1999 Saudi Arabia 2859187 3061950 1998... 1985 USA 3274415 3274415 1985 1986 USA 3168200 3274415 1985... 24 / 26

Ende Hilfe https://www.tu-chemnitz.de/urz/storage/db/ http://www.postgresql.org/docs/9.4/interactive/ index.html https://wiki.postgresql.org/wiki/main_page http://php.net/manual/de/book.pgsql.php support@hrz.tu-chemnitz.de 25 / 26

Ende Nutzerforum - PostgreSQL VIELEN DANK FÜR IHRE AUFMERKSAMKEIT! 26 / 26