{"id":2519,"date":"2023-05-24T08:00:43","date_gmt":"2023-05-24T06:00:43","guid":{"rendered":"https:\/\/www.risc-software.at\/fachbeitrag-graphdatenbanken-2\/"},"modified":"2023-11-02T16:35:49","modified_gmt":"2023-11-02T15:35:49","slug":"technical-article-graphdatabases-2","status":"publish","type":"publication","link":"https:\/\/www.risc-software.at\/en\/technicalarticles\/technical-article-graphdatabases-2\/","title":{"rendered":"Graph databases in practice"},"content":{"rendered":"\n<h2 class=\"wp-block-heading is-style-v2-telegrafico\">Queries, data models and scalability<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">by DI Paul Heinzlreiter<\/h3>\n\n\n<div class=\"wp-block-group-container alignfull \">\n<div class=\"wp-block-group alignfull is-layout-constrained wp-block-group-is-layout-constrained\">\n<p><em>The great strength of graph databases &#8211; databases that use graphs to connect and store networked information in the form of nodes and edges &#8211; is the extensive mapping of relationships between data points. This enables intuitive mapping of many real-world scenarios, which have become increasingly important in recent years. In addition, graph databases allow queries to closely follow the modelled reality, as exemplified in this article.<\/em><br><br><\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-media-text has-media-on-the-right is-stacked-on-mobile is-vertically-aligned-center\"><div class=\"wp-block-media-text__content\">\n<p><strong>Table of contents<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Example: IT system monitoring<\/li>\n\n\n\n<li>Graph databases and query languages<\/li>\n\n\n\n<li>IT system monitoring: Gremlin queries<\/li>\n\n\n\n<li>Data modelling: mapping reality vs. query performance<\/li>\n\n\n\n<li>Performance and scale<\/li>\n\n\n\n<li>Author<\/li>\n<\/ul>\n<\/div><figure class=\"wp-block-media-text__media\"><img decoding=\"async\" width=\"1024\" height=\"649\" src=\"https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/iStock-1047824676-1-1024x649.jpg\" alt=\"Data network\" class=\"wp-image-2509 size-full\" srcset=\"https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/iStock-1047824676-1-1024x649.jpg 1024w, https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/iStock-1047824676-1-300x190.jpg 300w, https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/iStock-1047824676-1-768x486.jpg 768w, https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/iStock-1047824676-1-1536x973.jpg 1536w, https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/iStock-1047824676-1.jpg 1920w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n<\/div>\n<\/div>\n\n<div class=\"wp-block-group-container alignfull \">\n<div class=\"wp-block-group alignfull is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\">Example: IT system monitoring<\/h3>\n\n\n\n<p>The exemplary graph shown here represents the dependencies between the services of an IT infrastructure. For this purpose, server processes are modelled as graph nodes, with the processes linked by edges representing requests. The edges thus state that each node requires all its successors along the edges to function. It is also directly evident from the example that a graph database makes it possible to model the data model very close to the problem domain and thus make the data model intuitively understandable.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"331\" height=\"291\" sizes=\"(max-width: 331px) 100vw, 331px\" src=\"https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/2021-03-18-Graph_Abb.png\" alt=\"Graph\" class=\"wp-image-2505\" srcset=\"https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/2021-03-18-Graph_Abb.png 331w, https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/2021-03-18-Graph_Abb-300x264.png 300w\" \/><\/figure>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"wp-block-group-container alignfull \">\n<div class=\"wp-block-group alignfull is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\">Graph databases and query languages<\/h3>\n\n\n\n<p>In the area of graph databases, in addition to offerings under purely commercial licences (e.g. <a href=\"https:\/\/www.tigergraph.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">TigerGraph<\/a>, <a href=\"https:\/\/aws.amazon.com\/neptune\/\" target=\"_blank\" rel=\"noreferrer noopener\">Amazon Neptune<\/a>), there are also numerous with open source licences (e.g. <a href=\"https:\/\/neo4j.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Neo4j<\/a>, <a href=\"https:\/\/www.arangodb.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">ArrangoDB<\/a>, <a href=\"https:\/\/www.orientdb.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">OrientDB<\/a>, <a href=\"https:\/\/janusgraph.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">JanusGraph<\/a>), for some of which commercial licences are also offered. The most widespread graph database Neo4j, for example, is offered under a commercial as well as an open-source licence, although the use of the open-source variant is limited to a single server.<\/p>\n\n\n\n<p>Another distinguishing feature is the query language used, with <a href=\"https:\/\/neo4j.com\/docs\/cypher-manual\/current\/\" target=\"_blank\" rel=\"noreferrer noopener\">Cypher<\/a> and <a href=\"http:\/\/www.kelvinlawrence.net\/book\/PracticalGremlin.html\" target=\"_blank\" rel=\"noreferrer noopener\">Apache Tinkerpop Gremlin<\/a> being the most important. While Cypher is mainly used by the graph database solution Neo4J, Gremlin emerged from the Apache Tinkerpop project and is supported by numerous graph databases such as Amazon Neptune or JanusGraph. Since the two languages are functionally equivalent and can be converted into each other automatically, knowledge of only one of the two languages is not a limiting factor in the choice of database system.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large is-style-rounded\"><img decoding=\"async\" width=\"1024\" height=\"649\" sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/iStock-1047824676-1-1024x649.jpg\" alt=\"Data network\" class=\"wp-image-2509\" srcset=\"https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/iStock-1047824676-1-1024x649.jpg 1024w, https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/iStock-1047824676-1-300x190.jpg 300w, https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/iStock-1047824676-1-768x486.jpg 768w, https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/iStock-1047824676-1-1536x973.jpg 1536w, https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/iStock-1047824676-1.jpg 1920w\" \/><\/figure>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"wp-block-group-container alignfull \">\n<div class=\"wp-block-group alignfull is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">IT system monitoring: Gremlin queries<\/h3>\n\n\n\n<p>Basically, a distinction is made between local and global graph queries. While global queries include the entire graph, local queries are limited to a mostly small sub-area of the graph. Therefore, global queries are also runtime-critical for large graphs.<\/p>\n\n\n\n<p><strong>Local queries<\/strong><\/p>\n\n\n\n<p>A simple example of a local graph query in the graph above would be: To which server processes are the requests distributed by the load balancer?<\/p>\n\n\n\n<p>The following query in Gremlin answers this question:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><code>gremlin&gt; g.V().has(<\/code><code>'name'<\/code><code>, unfold().is(<\/code><code>'loadbalancer'<\/code><code>)).out(<\/code><code>'request'<\/code><code>).values(<\/code><code>'name'<\/code><code>)<\/code><br><code>==&gt;webserver1<\/code><br><code>==&gt;ftp-server<\/code><br><code>==&gt;webserver0<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Gremlin queries follow the model of graph traversal. Starting from a set of nodes, which can also be pre-filtered by type or certain attribute values, the graph is traversed by following adjacent edges.<\/p>\n\n\n\n<p>This part of the query states that the node with the attribute key name and the attribute value loadbalancer serves as the starting point for the traversal g:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><code>g.V().has(<\/code><code>'name'<\/code><code>, unfold().is(<\/code><code>'loadbalancer'<\/code><code>)) ...<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Starting from the loadbalancer node, the value of the attribute name is now output for all nodes adjacent along edges of the type request:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><code>g.V().has(<\/code><code>'name'<\/code><code>, unfold().is(<\/code><code>'loadbalancer'<\/code><code>)).out(<\/code><code>'request'<\/code><code>).values(<\/code><code>'name'<\/code><code>)<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>This query is local, so the response time &#8211; if the starting node is known &#8211; does not depend on the size of the graph.<\/p>\n\n\n\n<p><strong>Global queries<\/strong><\/p>\n\n\n\n<p>The graph can also be used to assess how critical the failure of a component is for the overall system. For example, one can now formulate a query that indicates how many other processes require a process. To do this, all paths from the load balancer are taken into account. The corresponding Gremlin query is as follows:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><code>gremlin&gt; g.V().map(union(values(<\/code><code>'name'<\/code><code>),repeat(_.in()).until(inE().count().is(0)).emit().dedup().count()).fold())<br><\/code><code>==&gt;[loadbalancer,0]<\/code><br><code>==&gt;[webserver0,1]<\/code><br><code>==&gt;[webserver1,1]<br>==&gt;[tomcat,3]<br>==&gt;[database,4]<br>==&gt;[ftpserver,1]<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>This part of the query states that the set of all nodes serves as the starting point for the traversal g:<\/p>\n\n\n\n<p><code>g.V()<\/code><\/p>\n\n\n\n<p>Here, a map is created as a result, which contains the value of the attribute name as a key, which serves the readability of the result.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><code>g.V().map(union(values(<\/code><code>'name'<\/code><code>), ...)<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Here, for each node, all incoming edges (_.in()) are iterated over until the node encountered has no more incoming edges (inE()). For each of these loops, the encountered nodes are counted (.emit().dedup().count()) after removing the duplicates and summarised in a list (.fold()):<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><code>... repeat(_.in()).until(inE().count().is(<\/code><code>0<\/code><code>)).emit().dedup().count()).fold() ...<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>This is an example of a global query that iterates over the entire graph, so its runtime depends on the size of the graph, unlike local queries.<\/p>\n<\/div>\n<\/div>\n\n<div class=\"wp-block-group-container alignfull \">\n<div class=\"wp-block-group alignfull is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\">Data modelling: mapping reality vs. query performance<\/h3>\n\n\n\n<p>For graph databases, data modelling has the advantage that the data model can be designed closely to reality and can be flexibly extended. On the other hand, the structure of the graph also has a direct influence on the efficiency of queries, as nodes can be reached more quickly via links. A good approach is therefore to start with the design of the data model close to reality and, in the case of performance problems with queries, to extend the graph accordingly with additional nodes and edges. This way, on the one hand, the representation of reality &#8211; and thus the understanding of the data model &#8211; is not impaired in its core, and on the other hand, new queries, for example, can be handled efficiently.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-full is-style-rounded\"><img decoding=\"async\" width=\"1024\" height=\"466\" sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/Datenbanken-1024x466-1.png\" alt=\"Data\" class=\"wp-image-2361\" srcset=\"https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/Datenbanken-1024x466-1.png 1024w, https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/Datenbanken-1024x466-1-300x137.png 300w, https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/Datenbanken-1024x466-1-768x350.png 768w\" \/><\/figure>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"wp-block-group-container alignfull \">\n<div class=\"wp-block-group alignfull is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\">Performance and scale<\/h3>\n\n\n\n<p>Comparable to relational database systems, graph databases also offer options for indexing nodes or edges. This makes it possible to quickly access all nodes for which a set of attributes can be used as a key via an index. This result set can subsequently be used as a starting point for graph traversal. In addition to the indexing capabilities, the horizontal scalability of the graph database is a key criterion to avoid running into query performance problems as the amount of data continues to grow.<\/p>\n\n\n\n<p>A licence-free solution for a scalable graph database is, for example, the open-source database Janusgraph, with which, among other things, a Hadoop cluster can be used as a storage backend. In addition, Apache Spark can be used as a graph compute engine to make the execution of global queries in graphs manageable up to the terabyte range.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large is-style-rounded\"><img decoding=\"async\" width=\"1024\" height=\"576\" sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/iStock-1194430859-1-1024x576.jpg\" alt=\"Programming\" class=\"wp-image-1640\" srcset=\"https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/iStock-1194430859-1-1024x576.jpg 1024w, https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/iStock-1194430859-1-300x169.jpg 300w, https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/iStock-1194430859-1-768x432.jpg 768w, https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/iStock-1194430859-1-1536x864.jpg 1536w, https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/iStock-1194430859-1.jpg 1920w\" \/><\/figure>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"wp-block-group-container alignfull \">\n<div class=\"wp-block-group alignfull is-layout-constrained wp-block-group-is-layout-constrained\">\n<p><em>RISC Software GmbH supports you at every stage of your process to generate the greatest possible value from your data. If you wish, this also includes the selection of the right tools for your needs &#8211; such as a graph database. Companies that do not yet have end-to-end data collection or do not yet use their data for such tasks have the opportunity to gradually increase the value they derive from their data. Building on its many years of expertise in the field of scalable NoSQL solutions, RISC Software GmbH can thus also serve as a reliable consulting and implementation partner for its customised solution in the field of NoSql systems and graph databases.<\/em><\/p>\n<\/div>\n<\/div>\n\n<div class=\"wp-block-group-container alignfull \">\n<div class=\"wp-block-group alignfull is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\">Contact<\/h3>\n\n\n\n<div class=\"wp-block-contact-form-7-contact-form-selector\">\n<div class=\"wpcf7 no-js\" id=\"wpcf7-f663-o1\" lang=\"en-US\" dir=\"ltr\" data-wpcf7-id=\"663\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/en\/wp-json\/wp\/v2\/publication\/2519#wpcf7-f663-o1\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"Contact form\" novalidate=\"novalidate\" data-status=\"init\">\n<fieldset class=\"hidden-fields-container\"><input type=\"hidden\" name=\"_wpcf7\" value=\"663\" \/><input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.1.5\" \/><input type=\"hidden\" name=\"_wpcf7_locale\" value=\"en_US\" \/><input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f663-o1\" \/><input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/><input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/>\n<\/fieldset>\n<div class=\"form-row\">\n\t<div class=\"form-input\">\n\t\t<p><label class=\"sr-only\" for=\"your-name\">Your name <\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-name\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" id=\"your-name\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Name\" value=\"\" type=\"text\" name=\"your-name\" \/><\/span>\n\t\t<\/p>\n\t<\/div>\n\t<div class=\"form-input\">\n\t\t<p><label class=\"sr-only\" for=\"your-email\">Your email<\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-email\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email\" id=\"your-email\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"E-Mail\" value=\"\" type=\"email\" name=\"your-email\" \/><\/span>\n\t\t<\/p>\n\t<\/div>\n<\/div>\n<div class=\"form-row\">\n\t<div class=\"form-input\">\n\t\t<p><label class=\"sr-only\" for=\"your-company\">Company <\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-company\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" id=\"your-company\" aria-invalid=\"false\" placeholder=\"Unternehmen\" value=\"\" type=\"text\" name=\"your-company\" \/><\/span>\n\t\t<\/p>\n\t<\/div>\n\t<div class=\"form-input\">\n\t\t<p><label class=\"sr-only\" for=\"your-position\">Position<\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-position\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" aria-invalid=\"false\" placeholder=\"Position\" value=\"\" type=\"text\" name=\"your-position\" \/><\/span>\n\t\t<\/p>\n\t<\/div>\n<\/div>\n<div class=\"form-row\">\n\t<div class=\"form-input\">\n\t\t<p><label class=\"sr-only\" for=\"your-subject\"> Subject <\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-subject\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" id=\"your-subject\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Thema\" value=\"\" type=\"text\" name=\"your-subject\" \/><\/span>\n\t\t<\/p>\n\t<\/div>\n<\/div>\n<p><span id=\"wpcf7-69d590cf7544d-wrapper\" class=\"wpcf7-form-control-wrap phone-95-wrap\" style=\"display:none !important; visibility:hidden !important;\"><label for=\"wpcf7-69d590cf7544d-field\" class=\"hp-message\">Please leave this field empty.<\/label><input id=\"wpcf7-69d590cf7544d-field\"  class=\"wpcf7-form-control wpcf7-text\" type=\"text\" name=\"phone-95\" value=\"\" size=\"40\" tabindex=\"-1\" autocomplete=\"new-password\" \/><\/span><br \/>\n<label class=\"sr-only\" for=\"your-message\"> Your message (optional)<\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-message\"><textarea cols=\"40\" rows=\"10\" maxlength=\"2000\" class=\"wpcf7-form-control wpcf7-textarea\" id=\"your-message\" aria-invalid=\"false\" placeholder=\"Ihre Nachricht an uns\" name=\"your-message\"><\/textarea><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"hcap-cf7\">\t\t<input\n\t\t\t\ttype=\"hidden\"\n\t\t\t\tclass=\"hcaptcha-widget-id\"\n\t\t\t\tname=\"hcaptcha-widget-id\"\n\t\t\t\tvalue=\"eyJzb3VyY2UiOlsiY29udGFjdC1mb3JtLTdcL3dwLWNvbnRhY3QtZm9ybS03LnBocCJdLCJmb3JtX2lkIjo2NjN9-5cf29316f0fc31f5a29d11a228757560\">\n\t\t\t\t<span id=\"hcap_cf7-69d590cf759359.88174858\" class=\"wpcf7-form-control h-captcha \"\n\t\t\tdata-sitekey=\"3a6a81c1-2b2e-4b2a-b1eb-d9446bc09afb\"\n\t\t\tdata-theme=\"light\"\n\t\t\tdata-size=\"normal\"\n\t\t\tdata-auto=\"false\"\n\t\t\tdata-ajax=\"false\"\n\t\t\tdata-force=\"false\">\n\t\t<\/span>\n\t\t<input type=\"hidden\" id=\"_wpnonce\" name=\"_wpnonce\" value=\"2762796293\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/en\/wp-json\/wp\/v2\/publication\/2519\" \/><\/span><input class=\"wpcf7-form-control wpcf7-submit has-spinner btn\" type=\"submit\" value=\"Senden\" \/>\n<\/p><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<h3 class=\"wp-block-heading\">Author<\/h3>\n\n\n<div class=\"contact-person\">\n      <picture>\n      \n      \n      \n      \n      <img decoding=\"async\" data-aos=\"fade-zoom-in\"\n           data-aos-offset=\"0\" class=\"w-full\" width=\"212\" height=\"293\"\n           src=\"https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/pheinzlr1-removebg-preview.png\"\n           alt=\"\">\n    <\/picture>\n    \n\n<h5 class=\"wp-block-heading\">DI Paul Heinzlreiter<\/h5>\n\n\n\n<p>Senior Data Engineer<\/p>\n\n  <\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"wp-block-group-container alignfull \">\n<div class=\"wp-block-group alignwide is-layout-constrained wp-block-group-is-layout-constrained\"><div class=\"posts-slider-block\" data-aos=\"fade-up\" data-aos-offset=\"0\" data-aos-anchor-placement=\"top-bottom\">\n        <section class=\"splide posts-slider\" aria-label=\"Gallery Slides\">\n            <div class=\"splide__arrows\">\n                <button class=\"splide__arrow splide__arrow--prev\">\n                    <span class=\"sr-only\">Previous<\/span>\n                    <img decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"21\" src=\"https:\/\/www.risc-software.at\/app\/themes\/risc-theme\/public\/images\/icon-arrow.35d2ec.svg\"\n                         alt=\"Previous\">\n                <\/button>\n                <button class=\"splide__arrow splide__arrow--next\">\n                    <span class=\"sr-only\">Next<\/span>\n                    <img decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"21\" src=\"https:\/\/www.risc-software.at\/app\/themes\/risc-theme\/public\/images\/icon-arrow.35d2ec.svg\"\n                         alt=\"Next\">\n                <\/button>\n            <\/div>\n            <div class=\"inner\">\n                <div class=\"splide__track\">\n                    <div class=\"splide__list\">\n\n                                                    <a href=\"https:\/\/www.risc-software.at\/en\/technicalarticles\/technical-article-graphdatabases-1\/\" class=\"splide__slide blog-post-teaser mb-1 lg:mb-3\">\n                                <div class=\"blog-image\">\n                                                                                                                                <picture>\n                                                                                        <img decoding=\"async\" src=\"https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/iStock-1194430859-1-360x214.jpg\"\n                                                 alt=\"Data Understanders: Leveraging enterprise data through intelligent Graph Databases\">\n                                        <\/picture>\n                                                                    <\/div>\n                                <div class=\"blog-content px-2 py-3 xl:px-4 xl:py-5\">\n                                    <h3>Data Understanders: Leveraging enterprise data through intelligent Graph Databases<\/h3>\n                                    <div class=\"blog-post-excerpt mt-2\">\n                                        Graph databases enable intuitive mapping of many real-world scenarios such as industrial manufacturing, traffic data analysis or IT infrastructure monitoring. This makes data not only more efficiently stored, but also much more usable.\n                                    <\/div>\n                                    <span class=\"inline-block mt-2 more\">mehr erfahren <span class=\"ml-1 icon-more\"><\/span><\/span>\n\n                                <\/div>\n                            <\/a>\n                                                    <a href=\"https:\/\/www.risc-software.at\/en\/technicalarticles\/technical-article-mastering-the-industrial-data\/\" class=\"splide__slide blog-post-teaser mb-1 lg:mb-3\">\n                                <div class=\"blog-image\">\n                                                                                                                                <picture>\n                                                                                        <img decoding=\"async\" src=\"https:\/\/www.risc-software.at\/app\/uploads\/2023\/07\/iStock-858527512-1-360x214.jpg\"\n                                                 alt=\"Mastering the (industrial) Data (EN)\">\n                                        <\/picture>\n                                                                    <\/div>\n                                <div class=\"blog-content px-2 py-3 xl:px-4 xl:py-5\">\n                                    <h3>Mastering the (industrial) Data (EN)<\/h3>\n                                    <div class=\"blog-post-excerpt mt-2\">\n                                        How improved manufacturing is created from industrial and production process data.\n                                    <\/div>\n                                    <span class=\"inline-block mt-2 more\">mehr erfahren <span class=\"ml-1 icon-more\"><\/span><\/span>\n\n                                <\/div>\n                            <\/a>\n                                                    <a href=\"https:\/\/www.risc-software.at\/en\/technicalarticles\/technical-article-making-better-decisions-thanks-to-prescriptive-analytics\/\" class=\"splide__slide blog-post-teaser mb-1 lg:mb-3\">\n                                <div class=\"blog-image\">\n                                                                                                                                <picture>\n                                                                                        <img decoding=\"async\" src=\"https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/iStock-872019580-2-360x214.jpg\"\n                                                 alt=\"Making better decisions thanks to Prescriptive Analytics\">\n                                        <\/picture>\n                                                                    <\/div>\n                                <div class=\"blog-content px-2 py-3 xl:px-4 xl:py-5\">\n                                    <h3>Making better decisions thanks to Prescriptive Analytics<\/h3>\n                                    <div class=\"blog-post-excerpt mt-2\">\n                                        By combining forecasting models with optimization models, future decision options are simulated from company data and the best alternative course of action is selected.\n                                    <\/div>\n                                    <span class=\"inline-block mt-2 more\">mehr erfahren <span class=\"ml-1 icon-more\"><\/span><\/span>\n\n                                <\/div>\n                            <\/a>\n                                                    <a href=\"https:\/\/www.risc-software.at\/en\/technicalarticles\/technical-article-can-data-science-lead-industrial-companies-out-of-the-crisis\/\" class=\"splide__slide blog-post-teaser mb-1 lg:mb-3\">\n                                <div class=\"blog-image\">\n                                                                                                                                <picture>\n                                                                                        <img decoding=\"async\" src=\"https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/iStock-1170740969-360x214.jpg\"\n                                                 alt=\"Can data science lead industrial companies out of the crisis?\">\n                                        <\/picture>\n                                                                    <\/div>\n                                <div class=\"blog-content px-2 py-3 xl:px-4 xl:py-5\">\n                                    <h3>Can data science lead industrial companies out of the crisis?<\/h3>\n                                    <div class=\"blog-post-excerpt mt-2\">\n                                        How it is possible to minimize costs, respond flexibly to fluctuations in demand, and avoid production downtime due to disruption.\n                                    <\/div>\n                                    <span class=\"inline-block mt-2 more\">mehr erfahren <span class=\"ml-1 icon-more\"><\/span><\/span>\n\n                                <\/div>\n                            <\/a>\n                                                    <a href=\"https:\/\/www.risc-software.at\/en\/technicalarticles\/technical-article-methods-and-tools-for-data-preparation-in-the-big-data-area\/\" class=\"splide__slide blog-post-teaser mb-1 lg:mb-3\">\n                                <div class=\"blog-image\">\n                                                                                                                                <picture>\n                                                                                        <img decoding=\"async\" src=\"https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/iStock-1216520813-1-360x214.jpg\"\n                                                 alt=\"Methods and tools for data preparation in the big data area\">\n                                        <\/picture>\n                                                                    <\/div>\n                                <div class=\"blog-content px-2 py-3 xl:px-4 xl:py-5\">\n                                    <h3>Methods and tools for data preparation in the big data area<\/h3>\n                                    <div class=\"blog-post-excerpt mt-2\">\n                                        Die Rolle von Big Data hat in zahlreichen Wirtschaftsbereichen stark an Bedeutung gewonnen. Es werden gro\u00dfe Datenmengen gesammelt, die zur Optimierung herangezogen werden k\u00f6nnen. Hierbei kommen oft Methoden aus den Bereichen k\u00fcnstliche Intelligenz, maschinelles Lernen oder Statistik zum Einsatz.\n                                    <\/div>\n                                    <span class=\"inline-block mt-2 more\">mehr erfahren <span class=\"ml-1 icon-more\"><\/span><\/span>\n\n                                <\/div>\n                            <\/a>\n                                            <\/div>\n                <\/div>\n            <\/div>\n        <\/section>\n    <\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Graph databases enable the mapping of many real-world scenarios such as: Traffic data analysis or IT infrastructure monitoring.<\/p>\n","protected":false},"featured_media":2510,"template":"","publication-category":[50,72],"class_list":["post-2519","publication","type-publication","status-publish","has-post-thumbnail","hentry","publication-category-data-science-and-a-i","publication-category-industrie-4-0"],"acf":[],"portrait_thumb_url":"https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/iStock-1047824676-1-360x214.jpg","_links":{"self":[{"href":"https:\/\/www.risc-software.at\/en\/wp-json\/wp\/v2\/publication\/2519","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.risc-software.at\/en\/wp-json\/wp\/v2\/publication"}],"about":[{"href":"https:\/\/www.risc-software.at\/en\/wp-json\/wp\/v2\/types\/publication"}],"version-history":[{"count":8,"href":"https:\/\/www.risc-software.at\/en\/wp-json\/wp\/v2\/publication\/2519\/revisions"}],"predecessor-version":[{"id":4811,"href":"https:\/\/www.risc-software.at\/en\/wp-json\/wp\/v2\/publication\/2519\/revisions\/4811"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.risc-software.at\/en\/wp-json\/wp\/v2\/media\/2510"}],"wp:attachment":[{"href":"https:\/\/www.risc-software.at\/en\/wp-json\/wp\/v2\/media?parent=2519"}],"wp:term":[{"taxonomy":"publication-category","embeddable":true,"href":"https:\/\/www.risc-software.at\/en\/wp-json\/wp\/v2\/publication-category?post=2519"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}