WSR

Eine NoSQL-Datenbank für numerische Daten

Peter J. Holzer
WSR
hjp@wsr.ac.at

Geschichte: 1973

Geschichte: 1992

Jetztzeit: 2011

Ein Schritt zurück: FIW (2007)

Datenmodell - naiv

Value Reporter Partner NACE Flow Unit Beschäftigungsverhältnis Geschlecht Source Period . . . . . . . . . . . . . . . . . .
2391 Wien 21 Personen Unselbständig weiblich HSV 2008M01 . . . . . . . . . . . . . . . . . .
2418 Wien 21 Personen Unselbständig weiblich HSV 2008M02 . . . . . . . . . . . . . . . . . .
2419 Wien 21 Personen Unselbständig weiblich HSV 2008M03 . . . . . . . . . . . . . . . . . .
873538.93 Austria Germany 21 Export 1000 € COMEXT 1995 . . . . . . . . . . . . . . . . . .
788461.86 Austria Germany 21 Export 1000 € COMEXT 1996 . . . . . . . . . . . . . . . . . .
745836.8 Austria Germany 21 Export 1000 € COMEXT 1997 . . . . . . . . . . . . . . . . . .
697264.7 Austria Germany 21 Import 1000 € COMEXT 1995 . . . . . . . . . . . . . . . . . .
631038.2 Austria Germany 21 Import 1000 € COMEXT 1996 . . . . . . . . . . . . . . . . . .
670684.75 Austria Germany 21 Import 1000 € COMEXT 1997 . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Datenmodell (Directed Graph)

Datenmodell

Umsetzung

Architektur

Datenmodell

Ja, aber

PostgreSQL

NoSQL

NIH

N I H
Not Invented Here

Anforderungen

Queries

Architektur

Datentypen

Data

Filename
⌊ datapoint_id / CHUNK_SIZE ⌋ + ".dp"
Syntax
Data_File       ::= DataPointRecord*

DataPointRecord ::= DataPointMagic Length DataPointId
                    ChangeRecord
                    ValueRecord? CoordRecord*

ChangeRecord    ::= UserId Timestamp

ValueRecord     ::= DOUBLE_VALUE Double
                  | SCALEDINT_VALUE ScaledInt
		  | STRING_VALUE String
		  | TIME_T_VALUE time_t32LE
		  | TIME_T_PERIOD_VALUE time_t32LE time_t32LE

CoordRecord    ::= DATASET_COORD DataSetId
                 | DOUBLE_COORD DataSetId Double
		 | SCALEDINT_COORD DataSetId ScaledInt
		 | STRING_COORD DataSetId String
		 | TIME_T_COORD DataSetId time_t32LE
		 | TIME_T_PERIOD_COORD DataSetId time_t32LE time_t32LE
		 | ANNOTATION_COORD AnnotationId

DataSet

Metadaten

Filename
dataset_id + ".meta"
Syntax
DataSetMetaFile     ::= DataSetChangeRecord*

DataSetChangeRecord ::= DataSetChangeMagic Length ChangeRecord 
                        (
			  NAME String
			  DESCRIPTION LanguageTag String
			  DOWNLINK CoordType CoordRecord
			  UPLINK CoordType CoordRecord
			  ACE AccessControlEntry
			  ANNOTATION AnnotationId
			)*

DataSetChangeMagic  ::= OVERWRITE | ADD | DELETE

Index

Filename
dataset_id + ".jb"
Syntax
Serialisierte Judy-Bitmap, erster Index absolut, alle weiteren relativ. Alle Werte varuint-kodiert.

Annotation

Metadaten

Filename
annotation_id + ".meta"
Syntax
AnnotationMetaFile     ::= AnnotationChangeRecord*

AnnotationChangeRecord ::= AnnotationChangeMagic Length ChangeRecord 
                        (
			  TITLE String |
			  LANGUAGE LanguageTag |
			  MIMETYPE CoordType CoordRecord |
			  URL ByteString |
			  CONTENT ByteString |
			  ACE AccessControlEntry
			)*

AnnotationChangeMagic  ::= OVERWRITE | ADD | DELETE

Content

Filename
SHA-256 Summe (hex) des Inhalts, Im Meta-File als relativer file:-URL gespeichert.
Inhalt
Der Inhalt der Annotation :-). Wird nur für lange Annotations verwendet, kurze können direkt im Meta-File gespeichert werden.

Status

Fragen

 
?