Header
Home lang-de lang-en
Home

Software Entwicklung
Lösungen
Referenzen

Consulting
Ericsson PPX (Nortel Passport)
Backup/Restore Konzepte

download
xml2database

Kontakt
Impressum

xml2database



xml2database_overview.png

xml2database ist ein flexibler, konfigurierbarer und leistungsstarker Konverter sehr grossen Mengen (>GByte) an XML Rohdaten für den schnellen Import in Datenbanken ermöglicht. Eine dynamische Konfigurationssprache erlaubt die schnelle Anpassung/Erzeugung von Messungen die in Datenbanktabellen abgebildet werden. Änderungen in der Benamung von XML Attributen können innerhalb des Konverters abgefangen werden, so dass eine einmal etablierte Datenbanktabelle nicht geändert werden muss falls sich ein Attributsname auf dem XML generierenden Subsystem geändert hat. Dies spart Kosten und Ihre Zeit!

Sie haben die Demo Version getestet und möchten eine Produktivversion erwerben bzw. Anpassungen der Software, Tests auf ihrem Referenzsystem oder Konfigurationsdateien für ihre XML Rohdaten/Datenbanktabellen erstellen lassen?

Treten sie mit uns in Verbindung:

AD-xml2database.jpeg

Kostenloser download der Demo Software:

Linux Version X86:
OpenSolaris 10 / X86 - distributions Paket: xml2database-OpenSolaris-V0.8.1.tar.gz
OpenSolaris 10 / X86 - demo binary only: xml2database-OpenSolaris-V0.8.1-demo

linux / X86 - distributions Paket: xml2database-linux-V0.8.1.tar.gz
linux / X86 - demo binary only: xml2database-linux-V0.8.1-demo

Handbook: xml2database_user_handbook.pdf

Benutze Technologien:
  • C/C++
  • Qt Bibliothek
  • flex/bison
  • Regular Expression
  • Unix Subprocesse
  • Unix named pipes

Verfügbare Plattformen:
  • Solaris 9 / Sparc
  • OpenSolaris 10 / Sparc
  • Linux / X86

Installation

  • neuen Unix user anlegen z.B. xml2db
  • Einloggen unter dem neuen Account
  • das tar Paket extrahieren: tar xvf xml2database-linux-x.y.z.tar.gz
  • Erster Test im bin Unterverzeichnis: ./bin/xml2database -v aufrufen
    Die Ausgabe muss mit der Option -v Version der Software anzeigen
  • Mit dem Editor vi in der Datei bin/call_xml2database die environment Variable $HOME auf den Pfad des angelegten Users setzen. Z.B: "/home/xml2db"

Testlauf

  • Wechsel in das Wurzelverzeichnis des angelegten Users: z.B. cd /home/xml2db
  • Einspielen von Testdaten: cp Testdata/* input/
  • Erstellung eines ssh keys (siehe auch Handbuch "5.4. ssh key generation")
    ssh-keygen -t rsa
    cd .ssh
    cat id_dsa.pub >>authorized_keys2
  • Test des sftp Zugangs: sftp xml2db@localhost
    Der Verarbeitungs job call_xml2database führt einen automatischen sftp transfer durch und verlangt einen sftp Zugang
  • Start der Konvertierung: cd bin ; ./call_xml2database
    Die konvertierten Testdaten befinden sich im Verzeichnis fake_ftpserver

Sample configuration:

#
# Software testing
#
INPUTFILE "^TESTDATA.*\.xml$" {                                                           # data source
GENERATES MEASUREMENT {
        MEASUREMENTNAME "DEVELOPMENT_TEST1"                                               # name of the measurement
        GRANULARITY    15MIN                                                              # "15MIN"     -> "Q"
                                                                                          # "24H"        -> "D"
                                                                                          # "EVENT"   -> "E"
        MATCH {
            NEEDS "datarecord"->"shell"
        }
        
        COLUMNS {
            UTC_FILESTAMP                                                "UTCTIME"        # UTC from filename
            REGEXPATTRIBUTE( "Port", "Port ([0-9]*)/[0-9]*/[0-9]*" )     "Shelf"          # extract shelf
            REGEXPATTRIBUTE( "Port", "Port [0-9]*/([0-9]*)/[0-9]*" )     "Slot"           # extract slot
            REGEXPATTRIBUTE( "Port", "Port [0-9]*/[0-9]*/([0-9]*)" )     "Port"           # extract port
            CONVERTATTRIBUTE MS_TO_UTC(    "timeCaptured" )              "UTCTIME1"       # UTC time from milliseconds
            CONVERTATTRIBUTE MS_TO_LOCAL( "timeCaptured" )               "LTIME1"         # localtime from milliseconds
            CONVERTATTRIBUTE STRING_TO_UTC( "StartTime", 
                    "yyyy'-'MM'-'dd'T'hh':'mm':'ss'Z'" )                 "ISO_UTC_TIME"   # UTC time
            CONVERTATTRIBUTE STRING_TO_LOCAL( "StartTime", 
                    "yyyy'-'MM'-'dd'T'hh':'mm':'ss'Z'" )                 "ISO_LOCAL_TIME" # local time
            ATTRIBUTE( "receivedTotalOctets" )                           "RECEIVED"       #
            ATTRIBUTE( "transmittedTotalOctets" )                        "TRANSMITTED"    #
            BOOLATTRIBUTE( "bits"->"subattribute", "active" )            "IS_ACTIVE"      # 1 = if "active" else 0
            ARGATTRIBUTE( "attributeWithArgs", "arg1" )                  "ARGATTR1"
            ARGATTRIBUTE( "attributeWithArgs", "arg3" )                  "ARGATTR3"
        }
    }

    GENERATES MEASUREMENT {
        MEASUREMENTNAME "DEVELOPMENT_TEST2"                                               # Name der Messung
        GRANULARITY    24H                                                                # "15MIN"     -> "Q"
                                                                                          # "24H"        -> "D"
                                                                                          # "EVENT"   -> "E"
        MATCH {
            NEEDS "data"->"shell"->"bits"
        }
        
        COLUMNS {
            UTC_FILESTAMP                                                "UTCTIME"        # UTC from filename
            REGEXPATTRIBUTE( "Port", "Port ([0-9]*)/[0-9]*/[0-9]*" )     "Shelf"          # extract shelf
            REGEXPATTRIBUTE( "Port", "Port [0-9]*/([0-9]*)/[0-9]*" )     "Slot"           # extract slot
            REGEXPATTRIBUTE( "Port", "Port [0-9]*/[0-9]*/([0-9]*)" )     "Port"           # extract port
            CONVERTATTRIBUTE MS_TO_UTC(    "timeCaptured" )              "UTCTIME1"       # UTC time from milliseconds
            CONVERTATTRIBUTE MS_TO_LOCAL( "timeCaptured" )               "LTIME1"         # localtime from milliseconds
            CONVERTATTRIBUTE STRING_TO_UTC ( "ISO8601TIME", 
                    "yyyy'-'MM'-'dd'T'hh':'mm':'ss'Z'" )                 "ISO_UTC_TIME"   # UTC
            CONVERTATTRIBUTE STRING_TO_LOCAL( "ISO8601TIME", 
                    "yyyy'-'MM'-'dd'T'hh':'mm':'ss'Z'" )                 "ISO_LOCAL_TIME" # localtime
            BOOLATTRIBUTE( "bits"->"subattribute", "active" )            "IS_ACTIVE"      # 1 = if "active" else 0
            ATTRIBUTE( "transmittedTotalOctets" )                        "TRANSMITTED"    #
            ATTRIBUTE( "receivedTotalOctets" )                           "RECEIVED"       #
        }
    }
}