Inhaltsverzeichnis

 

1             Geodaten (Erzeugen des NDF) 2

1.1      Die Importdaten (gepackt) 2

1.2      Das SQL/NCL Importskript 2

1.3      Der Datenimport (Zeitmessung) 3

1.4      Größe und Inhalt des NDF_ 4

1.5      Zum Vergleich die Importdaten (CSV) ungepackt 5

2             Auswertung Geodaten_ 6

2.1      das SQL-Skript 6

2.2      Ausführungszeiten_ 6

2.2.1       reader 32 Bit Version_ 6

2.2.2       Zum Vergleich ndreader 64-bit Version_ 7

2.2.3       NDF ohne Hash-Prüfsumme_ 8

2.3      Einfluss Speicher-Tuning Parameter 8

2.4      Server 9

 

 

 

 

1             Geodaten (Erzeugen des NDF)

Die hier verwendeten Daten stammen aus dem "openStreetMap" Projekt. Für den Test wurden diese Daten zuerst in CSV-Format konvertiert. Die Daten werden per SQL-Loadbefehl in ein NDF importiert, im ganzen ca. 7 Millionen Datensätze.

Da sich diese Daten extrem packen lassen, lesen wir mit dem ndwriter direkt aus den gepackten (gzip) Dateien.

Im folgenden listen wir jeweils direkt die Ausgabe der unix/linux System-Kommandos ls,du und times.

Eine ausführliche Beschreibung der verwendeten Importbefehle finden Sie im ndwriter Manual

Als Einführung in den ndwriter empfehlen wir das ndwriter Tutorial.

 

1.1         Die Importdaten (gepackt)

karis@dragonfly:~/nadas/data/germany> ls -lht

total 79M

-rw-r--r-- 1 karis users 7.7M 2008-02-07 15:49 waytags.csv.gz

-rw-r--r-- 1 karis users 7.6M 2008-02-07 15:49 ways.csv.gz

-rw-r--r-- 1 karis users   46 2008-02-07 15:49 waysegs.csv.gz

-rw-r--r-- 1 karis users  64M 2008-02-07 15:49 nodes.csv.gz

-rw-r--r-- 1 karis users   62 2008-02-07 15:49 segments.csv.gz

 

1.2         Das SQL/NCL Importskript

karis@dragonfly:~/nadas/sql> cat dbgeos_dec.sql

 

-- die geos datenbank

set timing on

set feedback on

create schema geos;

 

create table geos.nodes

(

   id int,

   lat dec(10,7),

   lon dec(10,7),

   tstamp  varchar(80),

   taglist    varchar(500)

 );

 

create table geos.ways

(

   id int,

   tstamp varchar(50),

   taglist varchar(500)

 );

 

create table geos.waytags

(

   id int,

   tag varchar(500),

   val varchar(500)

 );

 

 load data command 'zcat data/germany/nodes.csv.gz'

 into table geos.nodes

 fields terminated by ','

 lines terminated by '\n'

 ignore 1  lines

;

 

commit work;

 

 

 load data command 'zcat data/germany/ways.csv.gz'

 into table geos.ways

 fields terminated by ','

 lines terminated by '\n'

 ignore 1 lines

;

 

commit work;

 

 

 load data command 'zcat data/germany/waytags.csv.gz'

 into table geos.waytags

 fields terminated by ','

 lines terminated by '\n'

 ignore 1 lines

;

 

commit work;

 

1.3         Der Datenimport (Zeitmessung)

 

karis@dragonfly:~/nadas> time ./ndwriter -v -sgeos -aW -f sql/dbgeos_dec.sql xtest xyz bin/nd.cxx

 

nadas writer, Copyright KARIS AG 2007, all rights reserved

code_set: UTF-8

2008-02-12 12:56:21

2008-02-12 12:56:21

2008-02-12 12:56:21

2008-02-12 12:56:21

number of input line(s) processed  4618673

table GEOS.NODES : number of record(s) inserted  4618673

2008-02-12 12:56:33

commit all tables

2008-02-12 12:57:03

number of input line(s) processed  574063

table GEOS.WAYS : number of record(s) inserted  574063

2008-02-12 12:57:04

commit all tables

2008-02-12 12:57:07

number of input line(s) processed  1725098

table GEOS.WAYTAGS : number of record(s) inserted  1725098

2008-02-12 12:57:09

commit all tables

2008-02-12 12:57:14

 

program terminated normally

 

real    0m56.757s

user    0m57.008s

sys     0m1.708s

 

1.4         Größe und Inhalt des NDF

 

karis@dragonfly:~/nadas> ls -lh nadas.ndf

-rw-r--r-- 1 karis users 291M 2008-02-12 12:57 nadas.ndf

karis@dragonfly:~/nadas> echo describe stat | ./ndreader

 

nadas reader, Copyright KARIS AG 2007, all rights reserved

[V:1.0]

code_set: UTF-8

 

SQL:

 

QUALIFIED_COLUMNNAME  REC_COUNT  NULL_COUNT  DUPL_COUNT

---------------------------------------------------------

GEOS.NODES.ID :       4618673    0           0

GEOS.NODES.LAT :      4618673    0           392811

GEOS.NODES.LON :      4618673    0           328035

GEOS.NODES.TAGLIST :  3476229    1142444     3410166

GEOS.NODES.TSTAMP :   4618673    0           3345291

GEOS.WAYS.ID :        574063     0           0

GEOS.WAYS.TAGLIST :   574026     37          340170

GEOS.WAYS.TSTAMP :    574063     0           193458

GEOS.WAYTAGS.ID :     1725098    0           1151072

GEOS.WAYTAGS.TAG :    1725084    14          1724513

GEOS.WAYTAGS.VAL :    1724714    384         1624982

 

SQL:

1.5         Zum Vergleich die Importdaten (CSV) ungepackt

karis@dragonfly:~/nadas/data/germany/unpack> ls -lh

total 387M

-rw-r--r-- 1 karis users 298M 2008-02-12 13:03 nodes.csv

-rw-r--r-- 1 karis users   29 2008-02-12 13:03 segments.csv

-rw-r--r-- 1 karis users  46M 2008-02-12 13:03 ways.csv

-rw-r--r-- 1 karis users   18 2008-02-12 13:03 waysegs.csv

-rw-r--r-- 1 karis users  44M 2008-02-12 13:03 waytags.csv

 

 

2             Auswertung Geodaten

Im Folgenden wird wiederholt dieses SQL-Skript verwendet, um die Auswirkung einiger Systemparameter zu demonstrieren.

2.1         das SQL-Skript

karis@dragonfly:~/nadas/sqlread> cat griesheim.sql

set format  auto

set heading on

set pagesize 40

set timing on

set nullprint on

select lon,lat,substr(taglist,1,50)  from nodes where

       taglist  like '%amenity%' icase

          and

          lon between

              8.52 and 8.59

          and lat between

              49.7 and 49.95

       order by taglist desc;

 

2.2         Ausführungszeiten

2.2.1     ndreader 32 Bit Version

Das NDF wird mit einer stand-alone Version des ndreaders geladen und geprüft und dann das obige SQL-Skript ausgeführt.

Das Skript selektiert anhand von drei Kriterien etwa 40 Datensätze aus der Tabelle "nodes" mit 4,6 Mio Einträgen.

 

karis@dragonfly:~/nadas> time ./ndreader -sgeos -f sqlread/griesheim.sql

 

nadas reader, Copyright KARIS AG 2007, all rights reserved

[V:1.0]

code_set: UTF-8

 

LON          LAT          column[3]

-----------------------------------------------------------------------------

   8.5493981!  49.8599717!religion=christian;amenity=place_of_worship;denomi

   8.5630758!  49.8605401!religion=christian;amenity=place_of_worship;denomi

   8.5602145!  49.8684044!recycling:glass_bottles=yes;created_by=Potlatch 0.

   8.5690557!  49.9066603!name=Zum Waldblick;created_by=Potlatch 0.4b;amenit

   8.5863678!  49.9001260!name=Restaurant Weidehof;created_by=Potlatch 0.4b;

   8.5862390!  49.9016242!name=Katholische Kirche Weiterstadt;created_by=Pot

   8.5746948!  49.9063894!name=Albrecht-Dürer-Schule;created_by=Potlatch 0.

   8.5865909!  49.9002311!created_by=Potlatch 0.4b;amenity=telephone

   8.5720598!  49.9045652!created_by=Potlatch 0.4b;amenity=parking

   8.5733644!  49.9067653!created_by=Potlatch 0.4b;amenity=parking

   8.5649183!  49.8605637!amenity=townhall;name=Rathaus Griesheim;created_by

   8.5789616!  49.9260106!amenity=telephone;created_by=JOSM

   8.5741800!  49.8859500!amenity=shelter;note=Schutzhütte Brunnenschneise/

   8.5841221!  49.9069138!amenity=school;created_by=JOSM

   8.5793763!  49.9276077!amenity=school;created_by=JOSM

   8.5791897!  49.9081720!amenity=restaurant;name=Zur schönen Aussicht;crea

   8.5787348!  49.9344467!amenity=restaurant;name=SKG Vereinsheim;created_by

   8.5784934!  49.9041742!amenity=recycling;created_by=JOSM

   8.5888571!  49.9079953!amenity=recycling;created_by=JOSM

   8.5831935!  49.9281992!amenity=recycling;created_by=JOSM

   8.5645691!  49.8610710!amenity=pub;name=Linie 9;created_by=JOSM

   8.5635008!  49.8935189!amenity=prison;source=yahoo sat;name=JVA Weitersta

   8.5738851!  49.7341831!amenity=pharmacy;created_by=JOSM

   8.5647165!  49.8613723!amenity=parking;created_by=JOSM

   8.5792783!  49.9094115!amenity=parking;created_by=JOSM

   8.5756932!  49.9048673!amenity=parking;created_by=JOSM

   8.5758896!  49.9058364!amenity=parking;created_by=JOSM

   8.5828464!  49.9321507!amenity=parking;created_by=JOSM

   8.5834095!  49.9283220!amenity=parking;created_by=JOSM

   8.5797027!  49.9273804!amenity=kiosk;created_by=JOSM

   8.5834880!  49.9280731!amenity=kindergarten;created_by=JOSM

   8.5537608!  49.8689032!amenity=fuel;name=Shell;created_by=JOSM

   8.5643098!  49.8702638!amenity=fuel;created_by=JOSM

   8.5825963!  49.9284085!amenity=fire_station;name=Freiwillige Feuerwehr Sc

   8.5899358!  49.9297770!amenity=biergarten;name=Nickelsmühle;created_by=P

   8.5795807!  49.9279207!amenity=bank;name=Vereinigte Volksbank;created_by=

   8.5753140!  49.7364489!amenity=atm;created_by=JOSM

2008-02-12 13:32:57

 

real    0m4.958s

user    0m4.492s

sys     0m0.460s

 

2.2.2     Zum Vergleich ndreader 64-bit Version

Die gleiche Abfrage mit einer 64-Bit Version des ndreaders ausgeführt.

 

karis@dragonfly:~/nadas> time ./ndreader -sgeos -f sqlread/griesheim.sql -ox.o

 

nadas reader, Copyright KARIS AG 2007, all rights reserved

[V:1.0]

code_set: UTF-8

2008-02-12 13:51:38

 

real    0m2.287s

user    0m1.808s

sys     0m0.476s

 

2.2.3     NDF ohne Hash-Prüfsumme

 

Wie verändert sich die Ausführungszeit, wenn das gleiche NDF ohne Püfsummen erzeugt wird? (ndwriter Option -c)

 

time ./ndreader -sgeos -f sqlread/griesheim.sql -ox.o

 

nadas reader, Copyright KARIS AG 2007, all rights reserved

[V:1.0]

code_set: UTF-8

2008-02-12 13:55:44

 

real    0m1.045s

user    0m0.680s

sys     0m0.364s

 

Hinweis: Aus Gründen der Übersichtlichkeit, werden hier und im Folgenden die Ausgabe in eine Datei umgeleitet (-ox.o). Bei insgesamt 40 Ausgabezeilen, sollte das keinen wesentlichen Einfluss auf die Zeiten haben.

 

2.3         Einfluss Speicher-Tuning Parameter

Wie verändern sich die Ausführungszeiten, wenn der Hauptspeicherbedarf des ndreader minimiert wird?

 

Hinweis: Defaults sind -y1 , -x1 (vgl. ndreader Handbuch)

 

karis@dragonfly:~/nadas> time ./ndreader -y0 -sgeos -f sqlread/griesheim.sql -ox.o

 

nadas reader, Copyright KARIS AG 2007, all rights reserved

[V:1.0]

code_set: UTF-8

2008-02-12 14:19:36

 

real    0m0.808s

user    0m0.688s

sys     0m0.124s

karis@dragonfly:~/nadas> time ./ndreader -y2  -sgeos -f sqlread/griesheim.sql -ox.o

 

nadas reader, Copyright KARIS AG 2007, all rights reserved

[V:1.0]

code_set: UTF-8

2008-02-12 14:20:12

 

real    0m11.469s

user    0m3.432s

sys     0m8.021s

karis@dragonfly:~/nadas> time ./ndreader -y0 -x1  -sgeos -f sqlread/griesheim.sql -ox.o

 

nadas reader, Copyright KARIS AG 2007, all rights reserved

[V:1.0]

code_set: UTF-8

2008-02-12 14:20:30

 

real    0m2.920s

user    0m0.688s

sys     0m0.408s

karis@dragonfly:~/nadas> time ./ndreader -y2 -x1  -sgeos -f sqlread/griesheim.sql -ox.o

 

nadas reader, Copyright KARIS AG 2007, all rights reserved

[V:1.0]

code_set: UTF-8

2008-02-12 14:20:53

 

real    0m11.942s

user    0m3.672s

sys     0m8.237s

karis@dragonfly:~/nadas>

KARIS AG, 2007, alle Rechte vorbehalten.

 

3             Server-System

Verwendet wurde der (damalige) Einstiegsserver der DellPoweredge Reihe.

 

Dell PowerEdge SC440 Xeon 2.40 GHz, 4GB

  openSUSE 10.3 (X86-64)

  Linux 2.6.22

 

 

 

kontakt impressum nutzungsbedingungen datenschutz lizenz