Odysseus

This is the official support forum for Odysseus

Newsletter

General announcements regarding Odysseus usage and development can be found here
User avatar
ckuka
Posts: 35
Joined: Tue Jul 29, 2014 10:55 am
Location: Shanghai, P.R. China/中国上海
Contact:

Newsletter

Postby ckuka » Mon May 11, 2015 6:33 pm

17.04.2015

- Optimierung von MEP-Ausdrücken/Prädikaten
- Neue Dashboard-Parts
- Evaluation der Speicher- und CPU-Auslastung

Optimierung von MEP-Ausdrücken/Prädikaten
----------------------------------------------------
In Odysseus-Script kann nun über den Parameter /OPTIMIZE_PREDICATE true/ eine Optimierung von MEP-Ausdrücken und Prädikaten aktiviert werden. Hierbei werden die MEP-Ausdrücke, welche etwa bei Select- und Join-Operatoren im Relational- und Key-Value-Modell verwendet werden, durch unterschiedliche Regeln (De Morgan, Quine-McCluskey) optimiert. Hierzu werden die Ausdrücke zunächst vereinfacht, Redundanzen entfernt und in ihre konjunktive Normalform umgeformt. Des Weiteren wird die Reihenfolge der einzelnen Terme nach ihrer Komplexität (soweit diese in den MEP-Funktionen angegeben ist) sortiert. Wer hierzu mehr wissen möchte, kann sich das Tutorial zu MEP-Funktionen [1] durchlesen. Eine Beschreibung der Einstellung und entsprechendes Beispiel, sowie weitere Odysseus-Script Parameter finden sich auf [2].

Neue Dashboard-Parts
----------------------------------------------------
In dem Bundle /de.uniol.inf.is.odysseus.rcp.dashboard.canvas/ gibt es ein paar neue Dashboard-Parts zur Visualisierung von Stromdaten in Odysseus-Studio. Zu den neuen Dashboard-Parts zählen:
- Liquid Gauge: Kann zur Füllstandanzeige verwendet werden.
- Voronoi-Diagramm: Zur Anzeige der Datenstrom Elemente als Voronoi-Regionen
- Color Chart: Zur 2-dimensionalen farblichen Darstellung der Stromelemente, etwa als Heat-Map, wenn die Frequenz bereits im Datenstrom enthalten ist.
- Quad Tree: Kann zur Visualisierung der Aufteilung einer 2-dimensionalen Fläche durch die Stromelemente verwendet werden
- Compass: Zur Anzeige von Himmelsrichtungen
- Wheel (sowie Kombinationen mit anderen Visualisierungen): Hierbei handelt es sich um ein Art Line-Chart, wobei die Werte in einer Polardarstellung gezeichnet werden. Eignet sich für die kompakte Darstellung von Zeitreihen. Screenshots der einzelnen Dashboard-Parts finden sich auf [3].


Evaluation der Speicher- und CPU-Auslastung
----------------------------------------------------
Über das Evaluations-Feature ist es nun auch möglich, Speicher- und CPU-Auslastung zu messen und entsprechende Charts als PNG, JPG, PDF und GNUPlot (für LaTeX geeignet) zu erstellen. Informationen hierzu findet ihr auf [4].

[1] http://odysseus.offis.uni-oldenburg.de:8090/display/ODYSSEUS/MEP+Functions
[2] http://odysseus.offis.uni-oldenburg.de:8090/display/ODYSSEUS/Odysseus+Script#OdysseusScript-#OPTIMIZE_PREDICATES
[3] http://odysseus.offis.uni-oldenburg.de:8090/display/ODYSSEUS/Types+of+DashboardParts
[4] http://odysseus.offis.uni-oldenburg.de:8090/display/ODYSSEUS/Evaluation+Feature
kind regards / 祝好
Christian Kuka

User avatar
ckuka
Posts: 35
Joined: Tue Jul 29, 2014 10:55 am
Location: Shanghai, P.R. China/中国上海
Contact:

Newsletter Mai

Postby ckuka » Sun May 31, 2015 4:52 pm

31.05.2015

- Metadaten
- Listen als Datentypen
- NoSQL als Quelle und Senke
- Fehlende Dokumentation

Metadata
----------------------------------------------------
Bisher mussten die Metadaten immer über Odysseus Script in der gleichen Datei angegeben werden. Seit kurzem können nun die Metadaten direkt in der Definition der Quelle angegeben werden. Hierzu existiert nun der Parameter "metaattribute" für den Access-Operator über den in einer Liste die gewünschten Metadaten wie etwa /TimeInterval/, /Latency/ oder /SystemLoad/ angegeben werden können.

Beispiel:
input = ACCESS({
source='source',
wrapper='GenericPull',
transport='file',
protocol='CSV',
dataHandler='Tuple',
metaattribute=['TimeInterval'],
options=[['filename', '${BUNDLE-ROOT}/input.csv']],
schema=[['timestamp', 'STARTTIMESTAMP'], ['x', 'Double'], ['y', 'Double']]})

In diesem Beispiel wird das Tupel entsprechend durch die Zeitintervall-Metadaten erweitert.

Um innerhalb einer Anfrage auf Metadaten zuzugreifen, können nun auch über den Namen und das Attribut direkt auf die Metadaten-Werte zugegriffen werden. Die Verwendung von speziellen Operatoren wie etwa /TimestampToPayload/ und /LatencyToPayload/ entfällt somit.

Beispiel:
output = MAP({
expressions = [
['TimeInterval.start','start'],
['TimeInterval.end','end']
]
},
input
)

Hierbei wird auf das Attribut "start" und "end" des Zeitintervall-Metadatums zugegriffen.


Listen als Datentypen
----------------------------------------------------
Seit Anfang Mai besteht die Möglichkeit auch Listen innerhalb von Ausdrücken zu verarbeiten. Dabei können Listen mit einander konkatiniert und subtrahiert werden, sowie gefiltert und abgebildet werden. Filter und Abbildung stellen dabei selbst wieder Ausdrücke dar und werden zu Beginn, beim Eintreffen des ersten Tupels, geparst.

Beispiel:
data = MAP({
expressions = [
['ToList(3.0, 4.0, 5.0)','list']
]
},
input
)
output = MAP({
expressions = [
['list+list','plus'],
['list-list','minus'],
['filter(list, "x > 3.0")','filter'],
['foreach(list, "x + 3.0")','foreach']

]
},
data
)

Ausgabe:
[3.0, 4.0, 5.0, 3.0, 4.0, 5.0] | [] | [4.0, 5.0] | [6.0, 7.0, 8.0]


NoSQL als Quelle und Senke
----------------------------------------------------
Über die Operatoren MONGODBSOURCE und MONGODBSINK können nun Daten aus der dokumentenorientierten Datenbank MongoDB[1] gelesen bzw. abgespeichert werden. Bisher werden hierzu allerdings nur KeyValue-Objekte unterstützt.


Fehlende Dokumentation
----------------------------------------------------
Im Odysseus CheatSheet[2], welches nach jedem Build neu generiert wird, werden alle Operatoren und MEP-Funktionen im aktuellen Build aufgelistet. Hierbei sind allerdings nicht alle Operatoren und Funktion im Wiki entsprechend dokumentiert. Daher der Aufruf: "Bitte dokumentiert". Das hat nicht nur den Vorteil, dass jeder die implementierten Operatoren und Funktionen im eigenen Projekt nutzen kann, es verhindert auch doppelte Arbeit, weil bestehende Funktionalitäten schneller gefunden und nicht aus Unwissenheit erneut implementiert werden.


[1] https://www.mongodb.org/
[2] http://odysseus.offis.uni-oldenburg.de/download/documentation/cheatsheet/cheatsheet.pdf
kind regards / 祝好
Christian Kuka

User avatar
Marco Grawunder
Posts: 264
Joined: Tue Jul 29, 2014 10:29 am
Location: Oldenburg, Germany
Contact:

Re: Newsletter

Postby Marco Grawunder » Mon Jun 01, 2015 10:15 am

Bzgl. der Metadaten: Man kann auch weiterhin #METADATA verwenden. Es werden aber die Metadaten verwendet, die bei der Definition der Quelle vorhanden sind (vorher wurden (meistens) die der Anfrage verwendet, falls das getrennt war)


phpbb 3.1 style demo

Return to “Announcements”

Who is online

Users browsing this forum: No registered users and 1 guest