| Home | Entdecken | Lernen | Testen | Service & News | Download | |||
Inhaltsverzeichnis
1.3 Der Datenimport (Zeitmessung)
1.5 Zum Vergleich die Importdaten (CSV) ungepackt
2.2.2 Zum Vergleich ndreader 64-bit Version
2.3 Einfluss Speicher-Tuning Parameter
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