Montag, 29. April 2013

Ant Echo mit Timestamp

Für einige Analysen ist es hilfreich wenn die Ausgaben mit einem Zeitstempel versehen sind, dies ist besonders wichtig bei zeitkritischen oder parallelen Aufgaben. Leider gibt Ant mit dem Echo Task kein  Timestamp mit aus. Die lässt sich durch ein Ant Marco lösen:
<macrodef name="echot">
    <text name="text"/>
    <attribute name="level" default="warning"/>
    <sequential>
      <tstamp>
        <format property="current.time" pattern="yyyy-MM-dd HH:mm:ss" />
      </tstamp>
      <echo level="@{level}" message="${current.time} @{text}" />
    </sequential>
</macrodef>
Danach kann das Timestamped Echo in Ant wie der normale Echo Task verwendet werden:
 <echot level="info">Start</echot>

Samstag, 27. April 2013

Software Agenten

Wer erinnert sich noch an den Hype um Softwareagenten. Und wie jeder Hype platzet auch diese Blase. Doch heute sind Softwareagent Alltag ohne das es jemand gemerkt hätte. Hadoop, MongoDB, BOINC und andere Software sind von ihren Eigenschaften her Softwareagenten, die zentral gesteuert werden. Merke, nicht der Hype ist wichtig, sondern die Kernidee. Selbst wenn der Hype schon vergessen ist, so leben die Ideen oft weiter, meist jedoch in geänderter Form.

Dienstag, 16. April 2013

Was ist ein Hidden Backup?

In der Softwareentwicklung dienen Datenbank zur Persistierung von Daten eines Programms. Neben dem normalen Programmablauf werden Datenbanken als Quelle für Reports und Data Warehouses genutzt. Reports oder Analysen haben in der Regel erzeugen eine hohe Last auf der Datenbank, die dazu führen kann, dass die eigentliche Software stark ausgebremst wird. Um diesen Effekt zu eliminieren kann man auf Hidden Backups zurückgreifen.  Ein Hidden Backup ist eine Replikation einer Datenbank, die nicht als normale Datenbank für die Software zu Verfügung steht. Sie wird nur für Analysezwecke genutzt und kann von der Dimensionierung auch anders geschnitten sein.

Eine besondere Form des Hidden Backups ist das Delayed Hidden Backup. Hier wird die Replikation zusätzlich verzögert, z.B. um mehrere Stunden. Eine Delayed Hidden Backup dient als Desaster Backup, dass für den Fall das z.B. eine neue Softwareversion die Datenbankinhalte zerstört. In diesem Fall kann wird die primäre Datenbank abgeschaltet und die alte Software mit dem Delayed Hidden Backup in Betrieb genommen. Zusätzlich kann das Delayed Hidden Backup fürs Reporting oder für teure (BI) Analysen genutzt werden.

Die einfachste Möglichkeit eine Delayed Hidden Backup zu erstellen ist, eine Backup der primären Datenbank zu machen und auf einem separaten Server einzuspielen. MongoDB biete eine einfache Konfiguration für die Einrichtung eines Delayed Hidden Backups.

Hidden Backups verbessern die Performance und in Form des des Delayed Backups wird zusätzlich die Robustheit des Gesamtsystems verbessert.

Samstag, 6. April 2013

R in Version 3.0.0 erschienen

Es ist kaum zu glauben, aber mit der Version R 3.0.0 ist seit langer Zeit ein Major-Release für R erschienen (Link). Aus meiner Sicht sind die es trotz des Major Releases eher evolutionäre Änderungen, die einige Unschöne Dinge und Limits beseitigen. An einigen Stellen wurden für größere bzw. längere Daten geändert (Vektoren, RAM) die Performance nur leicht verbessert. Ich gehe davon aus, dass R bei normalen Aufgaben auch jetzt nicht besser mit der Anzahl der Prozessoren skalieren wird.

Mittwoch, 3. April 2013

SPLUNK Rest API Probleme

Das Splunk ein prima Werkzeug ist, ist keine Frage nur leider gibt es paar wesentliche Einschränkungen in Bezug auf Spluks' Rest API (Version Splunk 5.0.2):

  • Dokumentation des REST API ist fehlerhaft.
  • Java Wrapper fürs REST API ist fehlerhaft und damit sinnlos.
  • Die Suchergebnisse unterscheiden sich zwischen dem REST API und dem Web GUI (Link) und in der Web GUI fehlerfreie Anfragen führen zu einem leeren Ergebnis und zu keinem Fehler und machmal Splunk Debug-Ausgaben.
  • Fehlerhafte REST Suchen liefern leere Ergebnisse wenn das Ausgabeformat CSV ist.
  • REST Suchen mit dem Ausgabeformat CSV liefern auch interne Felder zurück. Splunk interne Werte beginnen mit einem Unterstriche (_time, _span, ...).
  • DieFormatierung des Zeitstempels ist zwischen REST API und Web GUI unterschiedlich.
Alle diese Punkte verhindern eine einfache Integration von Splunk in bestehende Umgebungen. Schade, weil Splunk ein sonst guten Eindruck macht. Übrigens verwendet die Web GUI nicht die REST Schnittstelle von Splunk, was gut zu den unterschiedlichen Suchergebnissen passt.

Ach so liebe Splunkies, ich warte immer noch auf mein T-Shirt.