Kartographierung von Businessdaten
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 84 | |
Author | ||
License | CC Attribution 3.0 Unported: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/53877 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
| |
Keywords |
6
10
12
17
26
32
39
40
45
46
54
58
61
72
74
76
78
84
00:00
Tap (transformer)Lecture/ConferenceMeeting/Interview
00:42
Meeting/Interview
01:02
Open sourceDemosceneOutlookmakeInformationDemosceneStatistikerSoftware developerRoute of administrationComputer animation
02:58
3 (number)Computer fileExplosionTable (information)GUI widgetReal numberVortexRing (mathematics)Computer animation
04:45
CladeComputer fileExplosionDiagramVortexPoint (geometry)Table (information)Computer animation
05:38
Side channel attacksedResonanceExplosionInformationTable (information)FunktionalitätComputer animation
06:09
IP addressInformationComputer animation
06:44
DemosceneExplosionDemosceneSystem administratorComputer animation
07:22
Component-based software engineeringACCESS <Programm>Open sourceInternetdienstPyramid (geometry)APIPostgreSQLCodeSQLParsingTable (information)Stress (mechanics)Route of administrationLösung <Mathematik>Point (geometry)Direction (geometry)BALL <Programm>Norm <Mathematik>InformationQuery languageComputer fileExplosionSimilarity (geometry)MetadataOpen sourceYES <Computer>Set (mathematics)Mountain passParameter (computer programming)Ende <Graphentheorie>DatabaseIdeal (ethics)Component-based software engineeringProduct (category theory)Inflection pointDatenintegrationStatisticsVirtual memoryTexture mappingSalem, IllinoisPhysical quantityPostgreSQLPyramid (geometry)Online helpComputer animation
15:03
Inflection pointInformationCodeComponent-based software engineeringConfiguration spacemakeVisualization (computer graphics)Open sourceComputer data loggingWordWeb pageDatabaseMoment (mathematics)CodeData conversionInformationRow (database)Configuration spaceWebsiteEmailComponent-based software engineeringLecture/ConferenceMeeting/Interview
Transcript: German(auto-generated)
00:11
Willkommen zurück hier auf der Bühne 2 zu unserem letzten Vortrag hier aus der Session. Wie bereits bekannt, wenn ihr Fragen habt, ich habe das vorhin wieder vergessen zu sagen, wenn ihr Fragen habt, schreibt das sehr gerne in den Fragentapp direkt rein,
00:23
damit wir nach dem Vortrag auf die Fragen eingehen können. Jetzt im letzten Vortrag werden Marion und Benjamin etwas über Kartografierung von Business-Daten berichten. Viel Spaß, bis gleich.
00:43
Ich heiße Sie herzlich willkommen in der Präsentation über Kartografieren von Business-Daten. In dieser Präsentation möchten wir Ihnen ein Tool zeigen, welches wir für einen Kunden entwickelt haben, um Business-Daten in einen geografischen Kontext zu stellen.
01:04
Ganz kurz zu Wer sind wir? Die Präsentation werde ich zusammen mit Benjamin Gerber geben. Ich bin Marion Baumgartner und wir sind Softwareentwickler für die Firma Camp2Camp. Was erwartet Sie in dieser Präsentation?
01:24
Ganz kurz möchten wir Ihnen die Applikation in einer Demo vorstellen. Danach werden wir auf die Challenges eingehen, welche wir während der Entwicklung zu Gesicht bekommen haben. Zum Anschluss zeigen wir die Architektur und wie die Applikation aufgebaut ist.
01:44
Am Schluss zeigen wir ein paar Resultate, die aus der Applikation entstanden sind, was wir noch zu bauen haben und ganz am Schluss noch, was wir während der Entwicklung von der Applikation gelernt haben.
02:02
Vor der Demonstration hier noch eine kurze Motivation, weshalb wir die Applikation gebaut haben. Wie bereits erwähnt, wir haben Business-Daten in einer Rohform bekommen, um diese danach in eine geografische Karte darzustellen.
02:22
Das hilft der Firma, die die Applikation in Auftrag gegeben hat, um verschiedene Informationen und Rückschlüsse auf ihre Business zu ziehen. Nicht nur können Sie Wissen generieren und Statistiken generieren,
02:41
sondern auch wo Ihnen Daten fehlen und wo mehr Daten generiert werden können und wo Sie mehr Daten brauchen. Nun werden wir Ihnen eine kurze Demonstration über die ganze Applikation geben. Das ist unsere Anwendung.
03:02
Unsere Anwendung besteht aus mehreren Reports und wir beginnen mit dem Hauptreport, das Dashboard. Auf diesem Report haben wir mehrere Widgets, eine Diagramme über Umsatz,
03:22
eine andere über Top-Verkäufer, Top-Regionen, eine Pie-Chart über Produktkategorien und noch anderes. Und wir haben eine Karte. Auf dieser Karte haben wir eine Koroplet-Ebene. Wir haben nur eine Datei für zwei Länder.
03:44
Aber das ist mehr als nur eine Karte. Mit dieser Karte kann ich auch eine Region wählen und das aktualisiert dieses Widget. Aber ich kann auch in der Schweiz gehen, in dieses Land gehen
04:05
und alle Widgets zu aktualisieren mit nur der Datei der Schweiz. Ich kann auch eine Subregion, eine Karte wählen. Das ist ein geografisches Filter, aber wir haben auch einen Standard-Filter auf der linken Seite,
04:31
wie ein Filter über Kategorien, über Währung, andere über Daten usw.
04:41
Wir haben auch andere Reports. Dieses hat nur eine große Karte und eine Tabelle. Auf diesem Report haben wir vier Zoom-Stufen. Jetzt sind wir auf den Ländern, aber ich kann auch
05:03
in die Regionen gehen, danach in die Subregionen und an die Ende haben wir die Punkte. Jedes Punkt ist ein Geschäft und wir können direkt die Umsatz- oder andere Datei von diesem Geschäft sehen, ohne geografisches Filter, ohne geografische Gruppierungen.
05:32
Wir haben auch andere Reports ohne Karte, wie dieses. Auf diesem Report gibt es nur eine große Diagramm
05:43
und noch eine Tabelle. Das bedeutet, wir haben Reports ohne geografisches Filter, ohne geografische Informationen. Wir haben noch andere Reports mit anderen Kartenstilen oder anderen Funktionalitäten.
06:04
Und wir haben zwei spezielle Reports. Die erste ist die POI-Exception. Auf diesem Report gibt es auf jedem Geschäft eine geografische Information und eine Adresse.
06:26
Und wenn beide Informationen nicht überstimmt, wir haben ein Problem. Mit diesem Report können wir die Punkte sehen und danach korrigieren.
06:43
Und wir haben die System User Index Report. Auf diesem Report können wir sehen, welchen Bericht, welchen Report, von welchen Benutzer verwendet wird. Und wir können die Benutzung von der Anwendung analysieren.
07:04
Diese beiden Reports sind mehr für einen Administrator und das bedeutet, wir haben ein Rechtssystem für jedes Report.
07:21
Das ist alles für die Demo. Was ist die Herausforderung gewesen? Wir haben eine große Menge Geschäftsdatei mit geografischen Informationen. Diese Datei kommt direkt von Odoo und wir wollen diese Datei analysieren.
07:51
Wir haben einige Ideen. Wir machen eine kleine Anwendung, um diese Ideen zu probieren. Aber jedes Ideen gibt neue Ideen und neue Anforderungen.
08:06
Und das bedeutet, wir brauchen eine sehr hohe Flexibilität, um unsere Ideen zu unterstützen. Unsere Antwort ist eine brandneue Anwendung. Wir haben andere Produkte zu probieren,
08:25
aber die bestehenden Lösungen sind zu stark. Und mit Open Source können wir eine neue Anwendung entwickeln mit einer sehr hohen Flexibilität.
08:43
Nur dank Open Source können wir diese Anwendung in relativ kurzer Zeit entwickeln. Zur Architektur. Wir benutzen Python 3 mit Pyramid für den API.
09:02
Wir haben GeoAlchemy 2 mit Postgres und Postgis, um die Datei zu verwalten. Wir haben C2C WSG Utils, um eine WSG Anwendung zu haben. Das ist auch eine Open Source Bibliothek.
09:26
Den UI benutzt TypeScript mit Angular. Wir haben Open Layers, um die Karte zu verwalten. Und D3, um die Diagramme zu zeichnen.
09:42
Mit D3 haben wir eine kleine Bibliothek D3 Helper. Diese Bibliothek wurde für dieses Projekt entwickelt. Und D3 Helper vereinfacht die Benutzung von D3.
10:05
Leider ist das ganze Projekt nicht Open Source, aber mit D3 Helper können wir trotzdem von unserer Arbeit profitieren.
10:23
Ich möchte Ihnen nun kurz die Denormalisierung der Datenbank zeigen. Das benutzen wir. Es ist ein Schritt in der Datenintegration von den Daten, die wir bekommen, zu den Daten, die wir benutzen. Was wir haben, ist Daten in einer normalisierten Form.
10:44
Und was wir machen, ist, wir denormalisieren die Daten. Zum Beispiel wie hier, dass wir Abfragen direkt nur noch auf einer Tabelle machen müssen und nicht mehr als eine Tabelle abfragen müssen. Das Ziel ist, dass wir performante Abfragen machen können und nicht Zeit verlieren oder
11:07
Performance-Probleme bekommen mit der Abfrage und mit den Queries, die wir bauen müssen. Hier ein Beispiel, was gemacht wird. Wenn wir zum Beispiel die Shop-Tabelle nehmen, welche auf die Salespersonen-Tabelle referenziert, dann nehmen wir
11:27
nicht nur die ID in diese Tabelle rein, sondern wir holen uns auch gerade noch den Namen dazu. Somit reicht eine Tabelle, um die ganze Abfrage zu generieren.
11:40
Etwas ähnliches machen wir hier auch bei der Sales-Tabelle. Hier arbeiten wir nicht nur mit den Salespersonen, sondern zum Beispiel auch mit den Punkten, also mit den POIs. Wir schreiben die Name und die Aktivitäten auch in diese Tabelle. Das vereinfacht unsere Joints und was wir auch noch damit erreichen, ist, dass das Ganze etwas schneller wird, die Abfrage.
12:13
Die ganze Denormalisierung ist in einem Postgreskript geschrieben, sodass wir zu jeder Zeit, wenn wir
12:20
neue Daten bekommen, die in derselben Struktur sind wie bisher, die Daten neu generieren können. Ein zweiter Schritt, den wir mit den Daten machen, bevor wir sie in die Anwendung einpflegen, ist das Mapping von POIs in geografische Regionen.
12:47
Die POIs kommen mit Metadaten, aber auch mit geografischen Daten. Jeder POI ist wie ein Sales Store, der eine Longitude und eine Latitude als Date hat.
13:06
Wir nehmen diese POI und mappen sie in drei administrative Regionen, die Länder und dann zwei Subregionen. Daraus generieren wir eine denormalisierte POI-Tabelle, welche Informationen darüber hat, in
13:22
welchen Regionen sie sich befindet und in welchem Land sie sich befindet. Das hilft uns, um auch die POIs performant abzufragen, aber wir können auch Statistik daraus ziehen über ganze Regionen und die POIs, die sich in dieser Region finden.
13:48
Nun zu den Resultaten. Das Resultat, das wir hier präsentieren, ist eine flexible Applikation, welche auf Open Source-Daten basiert. Sie ist gut unterhaltbar und sie ist sehr anwenderfreundlich oder sie ist sehr stark angepasst, auf was die Anfrage von Kunden ist.
14:13
Und wir können sie erweitern in alle Richtungen.
14:20
Das Frontend ist Agnostik vom Backend und wir arbeiten mit Parametern und Komponenten, die wir so viel wie möglich wiederverwenden können. Was daraus herauskommt, ist die 3D Helper-Bibliothek, die Benjamin bereits erwähnt hat.
14:41
Und was wir früher noch hatten, war eine flexible SQL-Parser-Sprache, um vom Frontend und vom Backend zu trennen. Wegen neuen Sicherheitsanfragen mussten wir das leider aufgeben, weil es nicht mehr kompatibel war.
15:05
Was bleibt noch zu tun? Wir haben viele neue Reports, die jetzt in Zukunft noch eingebaut werden. Dann werden Features, wortlaufend, immer wieder verbessert.
15:22
Das POI-Allocation-System, das wir im Moment verwenden, möchten wir extrahieren und in einem globalen Kontext wiederverwendbar machen. Also auch, dass es offen zugänglich ist und für andere Projekte zugänglich ist und wiederverwendbar ist.
15:45
Dann haben wir noch Unterhaltsarbeiten, die immer anstehen. Und zum Schluss haben wir noch eine Arbeit, die darauf abzielt, die Datenbank zu trennen, welche wir benutzen für das Logging und die, die wir benutzen für die Daten.
16:05
Sodass das Logging nicht mehr in derselben Datenbank gemacht wird, wie die Datenabfragen. Während der ganzen Entwicklung von dieser Applikation haben wir sehr viel gelernt.
16:21
Zum einen, dass man möglichst viel Code teilen kann, auch wenn die Applikation eine private Applikation ist, die spezifisch für einen Kunden gebaut wird. Es gibt immer Teile, die man auslagern kann und das versuchen wir, wenn immer möglich auch umzusetzen.
16:44
Dann haben wir alleinstehende Komponenten, die konfigurierbar sind, programmiert, damit man sie möglichst oft wiederverwenden kann. Auch zum Teil einfach in der Applikation drin. Wir verwenden in dieser Applikation eine bibliothekunabhängige Strategie und der Hauptgrund dafür
17:06
ist, dass wir sehr flexibel sein müssen und auf neue Anforderungen antworten können. Das haben wir nur geschafft, indem wir nicht zu viele Bibliotheken benutzen, die uns dann einschränken in einem oder anderen Weg.
17:26
Am Schluss noch ein Punkt, der uns sehr geholfen hat, war, dass wir eine zentralisierte Konfiguration haben. Somit konnten wir uns sehr viel ersparen, dass wir Sachen neu oder zweimal bauen mussten.
17:40
Wir konnten es so wiederverwenden und flexibel einbauen in anderen Orten. Zum Schluss, als Zusammenfassung, wir haben die Applikation gebaut, als Antwort auf
18:00
eine Anfrage, geografische Daten oder Businessdaten in einen geografischen Kontext zu stellen. Wir haben möglichst viel Open Source benutzt, um flexibel zu sein und wir versuchen auch möglichst viel Open Source wieder zurückzugeben, dass es wiederverwendbar ist für alle.
18:31
An dieser Stelle möchten wir uns herzlich bedanken für die Aufmerksamkeit und wir sind offen für alle Fragen.
18:48
Vielen Dank, Marion. Vielen Dank, Benjamin, für euren Vortrag. Wir haben aktuell drei Fragen. Die Teilnehmer und Zuhörer können gerne noch weitere Fragen reinschreiben. Ansonsten fangen wir mal so langsam an, die Fragen abzuarbeiten.
19:03
Eine Frage wäre, wie werden die Businessdaten erhoben durch manuelle Zuarbeitung oder Zuarbeit des Nützers oder automatisiert? Könnt ihr da was zu sagen? Ja, die Frage kann ich gut beantworten. Also was wir im Prinzip bekommen von Kunden ist ein Datenpaket mit den ganzen Informationen und die Erhebung wird von Kunden selbst gemacht.
19:28
Aber sie werden im Prinzip erhoben durch manuelle Arbeit und dann bearbeitet mit Skript und dann bevor sie zu uns kommen und wir bearbeiten sie dann weiter.
19:43
Also es ist so ein bisschen beides. Spannend, weil so etwas finde ich immer. Ihr habt glaube ich auch so ein bisschen im Vortrag seid ihr darauf eingegangen. Was würdet ihr im Nachhinein so vom Gefühl her sagen? Was ist so ein bisschen die größere Herausforderung?
20:02
Die Daten, die ihr bekommt oder die ihr erhebt, diese aufzubereiten, dass sie überhaupt visualisiert werden können oder die eigentliche Visualisierung der Daten? Könnt ihr da was zu sagen? Also ich denke bis anhin war es sicher die größere Herausforderung, die Umsetzung und die Visualisierung, auch die Zusammenarbeit mit dem Kunden,
20:22
weil es war nicht immer ganz einfach. Wir haben mal etwas gemacht, dass wir verstanden haben, sie möchten es da und mit dem Lauf von der Zeit hat sich das dann doch nochmal geändert oder man hat sich abgesprochen, gefunden, ja es macht eigentlich keinen Sinn das so darzustellen. Im Moment sind wir gerade daran auch OSM-Daten aufzubereiten für die ganze geografische, also für die POI-Location.
20:52
Und das ist sicher auch eine sehr grosse Herausforderung, weil der Datensatz ist sehr gross und wir möchten da eigentlich nur die Grenzen.
21:03
Also im Zukunft ist sicher der größere Teil die Herausforderung für gute, präzise Grenzdaten und in der Vergangenheit war es mehr die Visualisierung der Daten.
21:20
Was man so gesehen hat, über die Web-Oberfläche oder die Webseite werden die Daten visualisiert oder veranschaulicht. Habt ihr irgendwie noch vorgesehen, dass irgendwie so eine Art PDF-Export zu machen, dass man das irgendwie weitergeben kann oder archivieren kann oder sowas in der Art? Das kann ich schon Worten. So wir haben nichts zu archiven, aber ja wir können schon mit die Browser-Print-Funktionalität drücken.
21:56
Wir haben eine Style-Shit, um eine gute Report zu haben mit die Browser-Print.
22:11
Aber das ist noch einfach und wir können noch diese Funktionalität verbessern.
22:22
Und wir haben einige Fragen, um das zu verbessern für neue Report. Marion, Benjamin, vielen Dank für euren Vortrag. Vielen Dank für das Beantworten der Fragen. Vielen Dank wie immer an die ganzen Helfer hier im Hintergrund. Wir haben jetzt eine Pause. Bis später, macht's gut.