Back to Basics-Webinar 5: Einführung in das Aggregation-FrameworkMongoDB
Dies ist das fünfte Webinar der Back to Basics-Serie, in dem Ihnen die Datenbank MongoDB genauer vorgestellt wird. Dieses Webinar bietet eine Einführung in das Aggregation-Framework.
Back to Basics – Webinar 2: Ihre erste MongoDB-AnwendungMongoDB
Dies ist das zweite Webinar der Back to Basics-Serie, in dem Ihnen die Datenbank MongoDB genauer vorgestellt wird. In diesem Seminar werden wir Ihnen zeigen, wie Sie in MongoDB eine einfache Blogging-Anwendung erstellen können.
Nach einer kurzen Einführung in verteilte Systeme zeige ich die Motivation für die Entstehung von NoSQL-Datenbanken auf. Ich stelle die Haupt-Kategorien der NoSQL-Datenbanken vor: Key-Value, Column Store, Graphen- und Dokumentenoriente Datenbanken. Danach gehe ich auf konkrete Datenbanken wie MongoDB, Neo4j und Redis ein.
Back to Basics-Webinar 5: Einführung in das Aggregation-FrameworkMongoDB
Dies ist das fünfte Webinar der Back to Basics-Serie, in dem Ihnen die Datenbank MongoDB genauer vorgestellt wird. Dieses Webinar bietet eine Einführung in das Aggregation-Framework.
Back to Basics – Webinar 2: Ihre erste MongoDB-AnwendungMongoDB
Dies ist das zweite Webinar der Back to Basics-Serie, in dem Ihnen die Datenbank MongoDB genauer vorgestellt wird. In diesem Seminar werden wir Ihnen zeigen, wie Sie in MongoDB eine einfache Blogging-Anwendung erstellen können.
Nach einer kurzen Einführung in verteilte Systeme zeige ich die Motivation für die Entstehung von NoSQL-Datenbanken auf. Ich stelle die Haupt-Kategorien der NoSQL-Datenbanken vor: Key-Value, Column Store, Graphen- und Dokumentenoriente Datenbanken. Danach gehe ich auf konkrete Datenbanken wie MongoDB, Neo4j und Redis ein.
Echtzeitvisualisierung von Twitter & CoOliver Lemm
The presentation was hold on APEX Connect 2016 in Berlin 26th of april together with Kai Donato. It demonstrates how to use the Twitter streaming api and visualize it by realtime in a graph using VivagraphJS.
LINQ - Einheitlicher Datenzugriff in .NETGFU Cyrus AG
Auch mit Objektorientierung gibt es immer noch eine große Kluft zwischen Programmen, die in einer Hochsprache geschrieben wurden und den Daten, die diese Programme bearbeiten.
In Hochsprachen wie C# oder VB verwenden Entwickler spezialisierte Datentypen, Objekte, Methodenaufrufe und hochgradig optimierte Compiler, während beim Datenzugriff alles auf ein paar Strings reduziert wird, die SQL-Abfragen beinhalten.
Entwickler arbeiten hierbei mit zwei total unterschiedlichen Paradigmen (Syntax von SQL und der bevorzugten Programmiersprache) sowie Typsystemen und konvertieren also ständig Daten zwischen zwei verschiedenen Domänen. Diese Unstimmigkeit ist Ursache für menschliche Fehler und verschwendet Zeit.
LINQ ist Microsoft Antwort auf dieses Dilemma. Die Veranstaltung zeigt die Konzepte und Möglichkeiten der neuen .NET-Schnittstelle.
Die Idee hinter LINQ
Die verschiedenen Varianten
- LINQ to Objects
- LINQ to SQL
- LINQ to DataSet
- LINQ to XML
- LINQ to Entity
- LINQ to .....
Kurze Syntax-Übersicht
Praktische Beispiele LINQ To Objects
Kurz-Video LINQ to SQL
Fazit und Ausblick
Graphing mit Graphite (Webinar vom 06.11.2013)NETWAYS
Graphite ist eine flexible, skalierbare und vor allem Schlanke Lösung für Graphing. Ob Nagios, Icinga, Icinga 2 oder andere Applikationen und Clients - über den TCP-Socket können binnen alle Performance-Daten abgeliefert werden und sind hierdurch umgehend im Webinterface vorhanden.
Natürlich eignet sich Graphite auch in verteilten Umgebung oder als Hochverfügbare Lösung.
Webinare
Archiv Link: https://www.netways.de/webinare/archiv/graphite_webinare/graphing_mit_graphite
Aktuell: https://www.netways.de/webinare/webinare_aktuell/
NETWAYS
Konferenzen: https://www.netways.de/events_schulungen/home/
Schulungen: https://www.netways.de/events_schulungen/schulungen/home/
Shop: https://shop.netways.de/
Blog: http://blog.netways.de/
Social Media
YouTube: https://www.youtube.com/channel/UC8nIBEFmjzXjXeJV_hkkeIQ
Facebook: https://www.facebook.com/netways
Google+: https://plus.google.com/+netways/
Twitter: https://twitter.com/netways
Wachsende Daten beanspruchen schnellere und klügere Systeme, um die Datenverarbeitung bewältigen zu können. Die zeitgemäße Antwort darauf lautet: Big Data mit NoSQL! MongoDB ist eine der beliebtesten NoSQL-Datenbanken und bietet dem .NET-Entwickler einige Vorteile gegenüber bekannter SQL-Datenbanken. Der MongoDB-Experte Gregor Biswanger zeigt in seiner Session dazu einen perfekten Überblick und einige Tipps zum Einstieg aus der Praxis.
Cloud Native & Java EE: Freund oder Feind?QAware GmbH
JavaLand 2017, Brühl: Vortrag von Josef Adersberger (@adersberger, CTO bei QAware)
Abstract:
Anwendungen nativ für den Betrieb in der Cloud auszulegen, ist der Architekturstil der Stunde: Microservices, 12-Factor Apps und Serverless-Architecturen sind en vogue. Daneben gibt es Java EE, das sich über Jahre bewährt hat beim Bau von Java-Anwendungen fürs Unternehmen. Java-EE-Anwendungen im modernen Cloud-Native-Stil zu entwickeln ist kein Widerspruch, sondern ein Zugewinn: Man kann damit Enterprise-Anwendungen bauen, die reif für die Cloud-Ära sind.
Der Vortrag zeigt am laufenden Beispiel, wie man eine Cloud-Native-Java-EE-Anwendung entwickelt und wie sich Java-EE-APIs wie JAX-RS, CDI und JPA integrieren mit Cloud-Native-Infrastruktur wie DC/OS, Kubernetes, Hystrix, Traefik, Consul und Docker. Dabei wird nicht nur blanke Technologie gezeigt, sondern auch das Thema Cloud Native Java EE auf Architekturebene betrachtet.
Anwendungen nativ für den Betrieb in der Cloud auszulegen, ist der Architekturstil der Stunde: Microservices, 12-Factor Apps und Serverless-Architecturen sind en vogue. Daneben gibt es Java EE, das sich über Jahre bewährt hat beim Bau von Java-Anwendungen fürs Unternehmen. Java-EE-Anwendungen im modernen Cloud-Native-Stil zu entwickeln- ist kein Widerspruch, sondern ein Zugewinn: Man kann damit Enterprise-Anwendungen bauen, die reif für die Cloud-Ära sind.
Der Vortrag zeigt am laufenden Beispiel, wie man eine Cloud-Native-Java-EE-Anwendung entwickelt und wie sich Java-EE-APIs wie JAX-RS, CDI und JPA integrieren mit Cloud-Native-Infrastruktur wie DC/OS, Kubernetes, Hystrix, Traefik, Consul und Docker. Dabei wird nicht nur blanke Technologie gezeigt, sondern auch das Thema Cloud Native Java EE auf Architekturebene betrachtet.
Data Scraping with Excel - Campixx 2013 - Maik SchmidtMaik Schmidt
Auf meiner Campixx Session habe ich gezeigt, wie man mit Hilfe von Excel und X-Path Daten aus dem Web scrapen kann. u.a. wurden gescraped: Standard KPIs, Malware Checker, Index Checker, Google SERPs, Google Suggest
Pandas und matplotlib im praktischen EinsatzThomas Koch
Präsentation auf dem PyBonn UserGroup Meeting am 27.02.2013 - Thema "Scientific Computing" - mit Vorträgen zu pandas und matplotlib.
Der Vortrag zeigt den praktischen Einsatz von pandas und matplotlib am Beispiel des Forschungsprojektes EnArgus.
Code Days 2019, München: Vortrag von Johannes Weigend (@JohannesWeigend, Technischer Geschäftsführer bei QAware)
=== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ===
Abstract:
Programmiersprachen für die Cloud - Java und Go im Vergleich
Java ist nach dem Tiobe Index 2018 unangefochten Platz 1 bei den weltweit eingesetzten Programmiersprachen. Java ist ausgereift, stabil und verfügt über ein immenses Open Source Ökosystem. Was will man mehr? Obwohl Java gerade für die Backend Entwicklung attraktiv ist, hat Google 2008 eine eigene Programmiersprache Open Source gestellt: Golang oder kurz Go. Der Vortrag beleuchtet die Stärken und Schwächen von Go gegenüber Java, gibt Hinweise für welche Projekte Go eine gute Alternative ist, und wie ein Best of Breed Ansatz aussehen kann. Interessant an Go ist, dass die Grundbausteine von Cloud Plattformen wie OpenShift oder die Google Container Plattform mit Go erstellt wurden. Docker, Kubernetes, Helm, Grafana oder Prometheus ‒ alles ist mit Go programmiert. Die Fragen aus der Sicht von Java-Experten sind: Was macht Go für die Cloud so interessant? Gibt es Funktionen, die Java Programmierer kennen sollten, und wenn ja, welche?
Was hat sich in den letzten Jahren in dem Ökösystem von Perl 5 getan? In dieser Präsentation stelle ich einige Themen vor.
Diese Präsention habe ich anlässlich der Wiederbelebung von Hamburg.pm am 5. September 2017 gehalten.
Never Code Alone: Von Symfony Forms zu einer SPA auf APIsStefan Adolf
Folien mit Einführung und Usecases für eine NCA-Session. Wir beginnen mit einer Symfony Forms-Applikation für eine simple Event-Verwaltung und wandeln sie sukzessive um zu einer React-SPA, die eine Symony-API verwendet.
Hier das Repository dafür: https://github.com/nevercodealone/ncaevent-remote-maerz-react
.NET Datenzugriff einfach und performant mit Micro O/R Mappern André Krämer
O/R Mapper, wie Microsofts Entity Framework oder NHibernate, haben enorm dazu beigetragen, den Datenzugriff in .NET-Applikationen für Entwickler zu vereinfachen. Ein wenig Linq genügt und schon "fliegen" die Daten aus der Datenbank in die Objekte im Quellcode. Doch was im Quellcode noch gut aussieht, lässt den Datenbankadministrator schaudern, sobald er einen Blick auf das automatisch generierte SQL-Statement wirft. All zu leicht schleichen sich nämlich Fehler ein, die zu unperformanten SQL-Statements führen. Und das alles nur, um Daten in Objekte zu packen. In dieser Session erfahren Sie, dass es auch anders geht. Mit dem Einsatz so genannter Micro ORMs, wie NPoco, haben Sie die Möglichkeit, hoch optimierte SQL-Statements gegen Ihre Datenbank abzufeuern und das Ergebnis automatisch in POCO-Klassen zu packen. Natürlich verlieren Sie dabei auch einige Features der "großen" ORMs. Welche das sind und ob Sie diese wirklich brauchen, zeige ich Ihnen in diesem Vortrag.
REST APIs liegen im Trend und werden daher in vielen Projekten eingesetzt. REST besitzt Schwächen, die bei falschem Einsatz schnell sichtbar werden. Dieser Vortrag zeigt die Probleme und Schächen von REST und beschreibt die Alternativen: GraphQL, JSON Path und GRPC.
The social graph of Facebook is the most popular application for a graph database. In addition, there are far more exciting applications, such as spatial data, financial trail, indexing, and others. If you combine different graphs, you are able to evaluate those together with the algorithms known from the graph theory. As a graph, a domain can often be easier and more natural designed. This talk introduces the topic of graph databases and shows how to implement mediated models with large, complex and highly connected data with Neo4j. Subsequently, topics like querying, indexing, import / export are considered as well.
Weitere ähnliche Inhalte
Ähnlich wie Daten natuerlich modellieren und verarbeiten mit Neo4j
Echtzeitvisualisierung von Twitter & CoOliver Lemm
The presentation was hold on APEX Connect 2016 in Berlin 26th of april together with Kai Donato. It demonstrates how to use the Twitter streaming api and visualize it by realtime in a graph using VivagraphJS.
LINQ - Einheitlicher Datenzugriff in .NETGFU Cyrus AG
Auch mit Objektorientierung gibt es immer noch eine große Kluft zwischen Programmen, die in einer Hochsprache geschrieben wurden und den Daten, die diese Programme bearbeiten.
In Hochsprachen wie C# oder VB verwenden Entwickler spezialisierte Datentypen, Objekte, Methodenaufrufe und hochgradig optimierte Compiler, während beim Datenzugriff alles auf ein paar Strings reduziert wird, die SQL-Abfragen beinhalten.
Entwickler arbeiten hierbei mit zwei total unterschiedlichen Paradigmen (Syntax von SQL und der bevorzugten Programmiersprache) sowie Typsystemen und konvertieren also ständig Daten zwischen zwei verschiedenen Domänen. Diese Unstimmigkeit ist Ursache für menschliche Fehler und verschwendet Zeit.
LINQ ist Microsoft Antwort auf dieses Dilemma. Die Veranstaltung zeigt die Konzepte und Möglichkeiten der neuen .NET-Schnittstelle.
Die Idee hinter LINQ
Die verschiedenen Varianten
- LINQ to Objects
- LINQ to SQL
- LINQ to DataSet
- LINQ to XML
- LINQ to Entity
- LINQ to .....
Kurze Syntax-Übersicht
Praktische Beispiele LINQ To Objects
Kurz-Video LINQ to SQL
Fazit und Ausblick
Graphing mit Graphite (Webinar vom 06.11.2013)NETWAYS
Graphite ist eine flexible, skalierbare und vor allem Schlanke Lösung für Graphing. Ob Nagios, Icinga, Icinga 2 oder andere Applikationen und Clients - über den TCP-Socket können binnen alle Performance-Daten abgeliefert werden und sind hierdurch umgehend im Webinterface vorhanden.
Natürlich eignet sich Graphite auch in verteilten Umgebung oder als Hochverfügbare Lösung.
Webinare
Archiv Link: https://www.netways.de/webinare/archiv/graphite_webinare/graphing_mit_graphite
Aktuell: https://www.netways.de/webinare/webinare_aktuell/
NETWAYS
Konferenzen: https://www.netways.de/events_schulungen/home/
Schulungen: https://www.netways.de/events_schulungen/schulungen/home/
Shop: https://shop.netways.de/
Blog: http://blog.netways.de/
Social Media
YouTube: https://www.youtube.com/channel/UC8nIBEFmjzXjXeJV_hkkeIQ
Facebook: https://www.facebook.com/netways
Google+: https://plus.google.com/+netways/
Twitter: https://twitter.com/netways
Wachsende Daten beanspruchen schnellere und klügere Systeme, um die Datenverarbeitung bewältigen zu können. Die zeitgemäße Antwort darauf lautet: Big Data mit NoSQL! MongoDB ist eine der beliebtesten NoSQL-Datenbanken und bietet dem .NET-Entwickler einige Vorteile gegenüber bekannter SQL-Datenbanken. Der MongoDB-Experte Gregor Biswanger zeigt in seiner Session dazu einen perfekten Überblick und einige Tipps zum Einstieg aus der Praxis.
Cloud Native & Java EE: Freund oder Feind?QAware GmbH
JavaLand 2017, Brühl: Vortrag von Josef Adersberger (@adersberger, CTO bei QAware)
Abstract:
Anwendungen nativ für den Betrieb in der Cloud auszulegen, ist der Architekturstil der Stunde: Microservices, 12-Factor Apps und Serverless-Architecturen sind en vogue. Daneben gibt es Java EE, das sich über Jahre bewährt hat beim Bau von Java-Anwendungen fürs Unternehmen. Java-EE-Anwendungen im modernen Cloud-Native-Stil zu entwickeln ist kein Widerspruch, sondern ein Zugewinn: Man kann damit Enterprise-Anwendungen bauen, die reif für die Cloud-Ära sind.
Der Vortrag zeigt am laufenden Beispiel, wie man eine Cloud-Native-Java-EE-Anwendung entwickelt und wie sich Java-EE-APIs wie JAX-RS, CDI und JPA integrieren mit Cloud-Native-Infrastruktur wie DC/OS, Kubernetes, Hystrix, Traefik, Consul und Docker. Dabei wird nicht nur blanke Technologie gezeigt, sondern auch das Thema Cloud Native Java EE auf Architekturebene betrachtet.
Anwendungen nativ für den Betrieb in der Cloud auszulegen, ist der Architekturstil der Stunde: Microservices, 12-Factor Apps und Serverless-Architecturen sind en vogue. Daneben gibt es Java EE, das sich über Jahre bewährt hat beim Bau von Java-Anwendungen fürs Unternehmen. Java-EE-Anwendungen im modernen Cloud-Native-Stil zu entwickeln- ist kein Widerspruch, sondern ein Zugewinn: Man kann damit Enterprise-Anwendungen bauen, die reif für die Cloud-Ära sind.
Der Vortrag zeigt am laufenden Beispiel, wie man eine Cloud-Native-Java-EE-Anwendung entwickelt und wie sich Java-EE-APIs wie JAX-RS, CDI und JPA integrieren mit Cloud-Native-Infrastruktur wie DC/OS, Kubernetes, Hystrix, Traefik, Consul und Docker. Dabei wird nicht nur blanke Technologie gezeigt, sondern auch das Thema Cloud Native Java EE auf Architekturebene betrachtet.
Data Scraping with Excel - Campixx 2013 - Maik SchmidtMaik Schmidt
Auf meiner Campixx Session habe ich gezeigt, wie man mit Hilfe von Excel und X-Path Daten aus dem Web scrapen kann. u.a. wurden gescraped: Standard KPIs, Malware Checker, Index Checker, Google SERPs, Google Suggest
Pandas und matplotlib im praktischen EinsatzThomas Koch
Präsentation auf dem PyBonn UserGroup Meeting am 27.02.2013 - Thema "Scientific Computing" - mit Vorträgen zu pandas und matplotlib.
Der Vortrag zeigt den praktischen Einsatz von pandas und matplotlib am Beispiel des Forschungsprojektes EnArgus.
Code Days 2019, München: Vortrag von Johannes Weigend (@JohannesWeigend, Technischer Geschäftsführer bei QAware)
=== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ===
Abstract:
Programmiersprachen für die Cloud - Java und Go im Vergleich
Java ist nach dem Tiobe Index 2018 unangefochten Platz 1 bei den weltweit eingesetzten Programmiersprachen. Java ist ausgereift, stabil und verfügt über ein immenses Open Source Ökosystem. Was will man mehr? Obwohl Java gerade für die Backend Entwicklung attraktiv ist, hat Google 2008 eine eigene Programmiersprache Open Source gestellt: Golang oder kurz Go. Der Vortrag beleuchtet die Stärken und Schwächen von Go gegenüber Java, gibt Hinweise für welche Projekte Go eine gute Alternative ist, und wie ein Best of Breed Ansatz aussehen kann. Interessant an Go ist, dass die Grundbausteine von Cloud Plattformen wie OpenShift oder die Google Container Plattform mit Go erstellt wurden. Docker, Kubernetes, Helm, Grafana oder Prometheus ‒ alles ist mit Go programmiert. Die Fragen aus der Sicht von Java-Experten sind: Was macht Go für die Cloud so interessant? Gibt es Funktionen, die Java Programmierer kennen sollten, und wenn ja, welche?
Was hat sich in den letzten Jahren in dem Ökösystem von Perl 5 getan? In dieser Präsentation stelle ich einige Themen vor.
Diese Präsention habe ich anlässlich der Wiederbelebung von Hamburg.pm am 5. September 2017 gehalten.
Never Code Alone: Von Symfony Forms zu einer SPA auf APIsStefan Adolf
Folien mit Einführung und Usecases für eine NCA-Session. Wir beginnen mit einer Symfony Forms-Applikation für eine simple Event-Verwaltung und wandeln sie sukzessive um zu einer React-SPA, die eine Symony-API verwendet.
Hier das Repository dafür: https://github.com/nevercodealone/ncaevent-remote-maerz-react
.NET Datenzugriff einfach und performant mit Micro O/R Mappern André Krämer
O/R Mapper, wie Microsofts Entity Framework oder NHibernate, haben enorm dazu beigetragen, den Datenzugriff in .NET-Applikationen für Entwickler zu vereinfachen. Ein wenig Linq genügt und schon "fliegen" die Daten aus der Datenbank in die Objekte im Quellcode. Doch was im Quellcode noch gut aussieht, lässt den Datenbankadministrator schaudern, sobald er einen Blick auf das automatisch generierte SQL-Statement wirft. All zu leicht schleichen sich nämlich Fehler ein, die zu unperformanten SQL-Statements führen. Und das alles nur, um Daten in Objekte zu packen. In dieser Session erfahren Sie, dass es auch anders geht. Mit dem Einsatz so genannter Micro ORMs, wie NPoco, haben Sie die Möglichkeit, hoch optimierte SQL-Statements gegen Ihre Datenbank abzufeuern und das Ergebnis automatisch in POCO-Klassen zu packen. Natürlich verlieren Sie dabei auch einige Features der "großen" ORMs. Welche das sind und ob Sie diese wirklich brauchen, zeige ich Ihnen in diesem Vortrag.
REST APIs liegen im Trend und werden daher in vielen Projekten eingesetzt. REST besitzt Schwächen, die bei falschem Einsatz schnell sichtbar werden. Dieser Vortrag zeigt die Probleme und Schächen von REST und beschreibt die Alternativen: GraphQL, JSON Path und GRPC.
Ähnlich wie Daten natuerlich modellieren und verarbeiten mit Neo4j (20)
The social graph of Facebook is the most popular application for a graph database. In addition, there are far more exciting applications, such as spatial data, financial trail, indexing, and others. If you combine different graphs, you are able to evaluate those together with the algorithms known from the graph theory. As a graph, a domain can often be easier and more natural designed. This talk introduces the topic of graph databases and shows how to implement mediated models with large, complex and highly connected data with Neo4j. Subsequently, topics like querying, indexing, import / export are considered as well.
How to use NoSQL in Enterprise Java Applications - NoSQL Roadshow BaselPatrick Baumgartner
Once you begin developing with NoSQL technologies you will quickly realize that accessing data stores or services often requires in-depth knowledge of proprietary APIs that are typically not designed for use in enterprise Java applications. Sooner or later you might find yourself wanting to write an abstraction layer to encapsulate those APIs and simplify your application code. Luckily such an abstraction layer already exits: Spring Data.
How to use NoSQL in Enterprise Java Applications - NoSQL Roadshow ZurichPatrick Baumgartner
Once you begin developing with NoSQL technologies you will quickly realize that accessing data stores or services often requires in-depth knowledge of proprietary APIs that are typically not designed for use in enterprise Java applications. Sooner or later you might find yourself wanting to write an abstraction layer to encapsulate those APIs and simplify your application code. Luckily such an abstraction layer already exits: Spring Data.
OSGi ist im Java Enterprise Bereich angekommen. In immer mehr Projekten möchte man OSGi mit komfortablen Tools "schmerzlos" einführen. PAX Construct und PAX Runner vereinfachen die Entwicklung von OSGi Bundles mit Hilfe von einigen Kommandozeilen-Scripts und Maven. PAX Exam ist ein Ansatz Integrations-Tests in einer laufenden OSGi Plattform durchzuführen und auszuwerten.
Dieser Vortrag bietet Einblick wie man mit PAX Bundles erstellt, ausführt und auch testet. Was PAX ausserdem zu bieten hat lernen sie in einem Überblick über die weiteren Projekte.
This slides covers the programmatic and declarative way to handle services in the OSGi container. Spring DM, Blueprint Services and Declared Services are presented in an overview.
Spring 3.0 GA is awaited in the second half of 2009. The session will show an
overview of the changes and the new features of the framework.Demos will be
shown on a sample application deployed on the new GAE/J.
17. 17
Neo4j – Big Picture
• Die verbreiteste Graphendatenbank der Welt
– Robust: Im Betrieb 24/7 seit 2003
– Reifegrad: Vielfach in Produktion ausgerollt
– Community: Ecosystem mit Tools, Bindings, Frameworks
• Lizenzen
– AGPLv3 Community Edition – OpenSource
– Advanced/Enterprise – für kommerzielle Anwendungen
• Neo Technology
– Entwicklung & Support
– ~ 50 Personen / 6 Länder / 3 Kontinente
– Total 24 Mio $ VC Finanzierung
18. 18
Eigenschaften
• Objektorientiert, flexible Netzwerkstruktur
• Support für ACID Transaktionen
• Horizontal skalierbar
• Java API
– Anbindung mittels Java, Groovy, Scala, JRuby
• Runtime
– Standalone Server
– Embedded Database
• Diskbasierter Storage Manager
• Support für Erweiterungen und Testing
20. 20
Graph Querying
• Wie erhalte ich die richtigen Nodes aus dem Graphen?
– Nenne mir alle Freunde und Freunde von Freunden
welche den Film XY mit mehr als 3 Sternen bewertet
haben.
– ...
• Queryingmethoden
– Traversing mit Neo4j API
– Traversal Descriptions
– Graphalgorithmen
– Index Queries
– Cypher Queries
21. 21
Neo4j API
Node bob = ...;
for ((Relationship rel: bob.getRelationships(RelTypes.KNOWS)) {
Node friend = rel.getEndNode();
System.out.println(friend.getProperty("name"));
}
• Einfache, aber sehr „low level“ API
• Zu „verbose“ für komplexe Traversals
22. 22
Traversal API
• Beschreibt Bewegungen durch den Graphen
• Callback basiert
• Abfrage API für Graphen
• Fluent API
• Konstrukte
• Neo4j implementiert folgende Algorithmen:
– A*
– Dijkstra
– pathsWithLength
– shortestPath
– allSimplePaths
– allPaths
24. 24
Beispiel: Traversal API
TraversalDescription directFriends = Traversal.description()
.breadthFirst()
.relationships(RelTypes.KNOWS)
.evaluator(Evaluators.toDepth(1))
.evaluator(Evaluators.excludeStartPosition());
for(Path p : directFriends.traverse(bob)) {
System.out.println(p.endNode().getProperty(„firstname“));
}
25. 25
Index Queries
• Unterstützung von Node und
Relationship Indices
• Lucene als Standard-implementierung
node id property value
15 name Alice
15 yearOfBirth 1972
16 name Bob
46 name Carol
46 yearOfBirth 1983
26. 26
Cypher Query Language
• Graph Query Language ähnlich SQL
• Deklarative Sprache
• Definiert das „Was“ – nicht das „Wie“
• Nutzt Pattern Matching
• Support für
– Filterung
– Paginierung
• Update-Funktionalität
27. 27
Cypher Query Language – Elemente
Element Bedeutung
START Startelement(e) (Angabe von Index- o. Id-Lookup)
MATCH Pattern für zu findende Knoten, beschrieben durch
Pfade auf Identifiern (a) –[knows]-> (b)
WHERE Resultatsfilterung (boolean-Ausdruck)
SKIP LIMIT Paginierung
RETURN Definiert Rückgabe-Elemente
ORDER BY Sortierung nach Properties
PARAMETERS Parameter-Map, die im Cypher mittels Key oder
Position verwendet werden kann
CREATE Erzeugt einen Knoten
42. 42
Challenges
• Developer Onboarding
• Indexierung
• “Schemaänderungen” -> Migrationen
• Extrem viele Daten
• Oft neue Neo4j Releases
• Bugs – keine Showstopper
• Übersicht im Modell nicht verlieren / Dokumentation pflegen
43. 43
Highlights
• Community mit gutem Support
• Sourcen auf Github
• Gute Performance
• Whiteboard friendliness
• Spring Programmier-Modell mit Spring Data Neo4j