Open Source im professionellen Einsatz
Linux-Magazin 03/2015
© mopic, 123RF

© mopic, 123RF

Datenanalyse mit R und Python

Schweifen selten ab

Die statistische Programmiersprache R seziert eine Datenbasis nach allen Regeln der Kunst. Eingebettet in Python und unterstützt von diversen Webtechnologien bereitet sie aber auch Daten passend für den Webbrowser auf – im Beispiel solche zur Laufbahn von Kometen.

409

Der Mehrwert umfangreicher Daten zeigt sich erst bei einer eingehenden Datenanalyse. Die Open-Source-Sprache R [1] erweist sich hierbei als leistungsstarkes Tool, um eine vorliegende Datenbasis qualitativ und quantitativ nach allen Regeln der Statistik zu beurteilen. Doch R kann noch mehr: Eingebettet in die Skriptsprache Python [2] lässt es sich auch mit Mehrwert in Webanwendungen einsetzen.

Der vorliegende Artikel demonstriert den Einsatz anhand einer Beispielanwendung, in der es darum geht, Kometendaten auszuwerten. Ein Apache-Webserver visualisiert zu diesem Zweck mit Hilfe von Webtechnologien wie HTML, Javascript, Jquery [3] und CSS3 die Ergebnisse statistischer Reports, die Python in Kombination mit R und der Datenbank Mongo DB [4] erstellt. Konkret erzeugen die Python-Skripte verschiedene Reports, die sie aus Daten über Kometenlaufbahnen generieren.

Kometenhaft

Abbildung 1 demonstriert, wie der Reportgenerator der Beispielanwendung die Kometendaten in Firefox unter Ubuntu 12.04 anzeigt. Über die obere Auswahlliste wählt der Nutzer eine Reportvariante aus. Klickt er auf »Senden« , setzt Javascript eine HTTP-Anfrage an den Apache-Webserver ab, der daraufhin den Report erstellen lässt. Das erledigen Python-Skripte, die wiederum auf R zurückgreifen.

Abbildung 1: Die Kometendaten-Anwendung im Praxiseinsatz unter Firefox.

Die Python-Skripte laden zunächst die Kometendaten in eine Mongo-DB-Datenbank. Dann lesen sie diese aus und erzeugen mit Hilfe von R den angefragten Report in Form einer Grafik, die als PNG-Datei in einem öffentlichen Verzeichnis des Webservers landet. Der sendet die URL als Antwort auf die HTTP-Anfrage an den Browser zurück. Letzterer wertet die Antwort mit Javascript-Unterstützung aus und lädt die zugehörige Grafik im Ausgabebereich über »img« -Tags nach.

Webserver

Über die Direktiven in Listing 1 bereitet ein Entwickler zunächst den Webserver Apache unter Ubuntu 12.04 auf den Einsatz der Beispielanwendung vor. Das Skript aus dem Listing kopiert er dazu mit Rootrechten in den Pfad »/etc/apache2/site-available/rconf« . Der Befehl »sudo a2ensite« bindet es in die Konfiguration des Webservers ein, über »sudo service apache restart« aktiviert der Entwickler die erweiterte Konfiguration, indem er den Webserver neu startet.

Listing 1

apache.conf

01   Listen 8080
02   <VirtualHost *:8080>
03    DocumentRoot /home/pa/www
04    <Directory /home/pa/www>
05     Options +ExecCGI
06     AddHandler cgi-script .py
07    </Directory>
08   </VirtualHost>

Die Beispielanwendung erreichen Nutzer dann über die URL »http://localhost:8080« . Zeile 1 lässt Apache auf dem Port »8080« lauschen, die Zeilen 2 bis 8 behandeln die eingehenden HTTP-Anfragen. Die Zeilen 5 und 6 erlauben es, Python-Skripte über die CGI-Schnittstelle des Webservers auszuführen, wenn sie sich im Wurzelverzeichnis »/home/pa/www« befinden.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 7 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Web-Beschleunigung

    Nach der Ajax-Revolution im Browser steht eine Modernisierung der Server-Seite an. Auch dort sollen asynchrone Requests zu schnelleren und besser skalierenden Webanwendungen führen. Der Jetty-Server hat dazu Continuations implementiert, Cometd bietet einen Standard.

  • Python

    Einsteigerfreundlich, schnell zu lernen und flexibel: Die Skriptsprache Python genießt trotz des vermeintlich gefährlichen Namens einen guten Ruf. Dank zahlreicher Module und einfacher Syntax reichen für Datei-Operationen, Ein- und Ausgaben und selbst fürs Monitoring eines Servers wenige Zeilen Code.

  • Online-Seminare zu MongoDB kostenlos

    Die Firma 10gen bietet drei kostenlose Online-Videokurse für die NoSQL-Datenbank MongoDB an, von denen der erste am Montag startet.

  • React

    Vom Unternehmen Facebook kommt das quelloffene Javascript-Framework React, das Weboberflächen geschickt mit Datenschätzen verknüpft. Insbesondere die Renderfunktion macht sich dabei nützlich.

  • Mongo DB

    Mongo DB ist ein Musterexemplar unter den NoSQL-Datenbanken: Die Open-Source-Software hat zeitgemäße Features wie Replikation, Failover und Sharding bereits eingebaut. Der Autor setzt die Datenbank schon seit 2009 produktiv ein und breitet seinen Erfahrungsschatz aus.

comments powered by Disqus

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.