Required Permission: Settings management (Read more about permissions in User Groups)

Table of Contents

Graph connection represents a graph database, that Graphlytic can be connected to and used for reading and writing graph data.

It is possible to create multiple graph connections and use them in Projects or ETL jobs.

Graph Connections panel consists of the list of currently defined graph connections on the left, and the details of the currently selected graph connection on the right. Every type of graph database needs a bit different configuration of the connection and also offers different behavior regarding security, clustering, and indexing. Please refer to the appropriate chapter below to see the specifics of the various graph databases.

1. Supported Graph Databases

1.1. Neo4j

To create a new neo4j connection:

  1. Click the "New connection" button in the top right corner of the Graph Connections panel.

  2. Enter a human-distinguishable name for your new connection.

  3. Change the Graph type to the correct Neo4j version.

  4. Enter a Database name (in the case of "Neo4j Enterprise").

  5. Enter Bolt URL, Username, and Password.

  6. If you need an encrypted connection, turn the Encryption setting on.

    1. Option "Add Certificate" is available only for encrypted connections (where Encryption = On).

  7. Click Save and test your connection with the “Test connection” button. 

Settings

It is possible to define (override) the default values of some graph connection properties in the graphlytic.conf file. For more information refer to Configuration.

If the graphlytic.conf file does not contain neo4j configuration, default values will be used (see the table below).

Please note, that some values cannot be overridden as there is no graphlytic.conf property (N/A in the table below).

Configuration

Default values

Property in graphlytic.conf

Description

Name

Default

N/A

Name of the connection (just for convenience)

Bolt URL

bolt://localhost:7687

neo4j.connector.bolt

Graph Database Bolt protocol URL

Username

neo4j

neo4j.connector.username

Graph connection username

Password

admin

neo4j.connector.password

Graph connection password

Encryption

false

neo4j.connector.encrypted

Graph connection encryption. If a trusted certificate is used on the Graph Database side then just set this to true. If it's an untrusted certificate please use the UI to load the certificate into Graphlytics's Keystore. See the "Certificate" button described below.

Graph Type

NEO4J 5

neo4j.connector.type

Graph Database type. Supported are Neo4j 3.5, Neo4j 4.x, Neo4j 5.x, Apache Tinkerpop based graph DBs with Gremlin 3.4, Azure Cosmos DB, AWS Neptune, JanusGraph.

Database

neo4j

N/A

Graph Database name. Can be used with Neo4j 4 Enterprise to specify the graph (database) to connect to. If not specified then the default database specified in Neo4j is used.

Certificate button

N/A

If an untrusted certificate is used in your Graph Database please use this button to load the certificate into Graphlytics's Keystore.

Fulltext search

Fulltext Index:

  • "properties": [ ]

  • "tokens" : [ ]

Search Mode:

  • "searchMode":"instant"

  • "throttleDelay":1000

  • "minLength":0

N/A

Fulltext index configuration for this Graph Database connection. For more information please see the "Fulltext Search Configuration" chapter below.

Schema indexes

N/A

Node Schema indexes configuration for this Graph Database connection. For more information please see the "Schema Indexes Configuration" chapter below.

Hybrid Data Model

N/A

Hybrid Data Model configuration for this Graph Database connection. For more information please see the "Hybrid Data Model" chapter below.

1.1.1. Schema Indexes Configuration

Supported only for Neo4j connections.

To create a Schema Index:

  1. Click on the "Configure schema indexes" button to show the modal window (pictured below).

  2. Click on the "Create index" button.

  3. Fill in the node Label and Property name.

  4. Choose if you want to create a standard index or a unique constraint with it (INDEX_UNIQUE).

  5. Click on the red button "Create index".

To drop a Schema Index:

  1. Click on the "Configure schema indexes" button to show the modal window (pictured below),

  2. and click on the index's bin button in the right column.

1.2. Azure Cosmos DB

cosmos.png

To create a new CosmosDB connection:

  1. Click the "New connection" button in the top right corner of the Graph Connections panel.

  2. Enter a human-distinguishable name for your new connection

  3. Change Graph type to Cosmos DB.

  4. Enter Hosts, Port, Database, Graph, Key, Partition Key, and Threads.

  5. Click Save and test your connection with the “Test connection” button. 

Settings

Configuration

Example values

Description

Name

Default

Name of the connection (just for convenience)

Hosts

someapp.gremlin.cosmos.azure.com

Graph Database hosts value without the protocol. Make sure to provide gremlin host, as CosmosDB provides multiple hosts.

The value can be found on the “Overview” page in Azure. See the next chapter for more details.

Port

443

Graph Database port

Azure Managed Identity

Switching between

  • simple authentication using “Key” or

  • advanced authentication using Azure Managed Identity (List Key URL and Scope).

Key

170c3ea6c3aa7facb8f51c86e114d97c5028b44a38775eae5b3bd07bbea3ff43==

Used when Azure Managed Identity is turned OFF.

The primary key for the given database is used for API access. Read-write or Read-only keys can be used based on your use case.

Can be found on the “Key” page in Azure Cosmos DB settings. See the next chapter for more details.

List Key URL

https://management.azure.com/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<Azure-Cosmos-DB-account>/listKeys?api-version=2021-04-15

Used when Azure Managed Identity is turned ON.

The URL to get the connection string from Azure. The URL has a fixed structure (see the example value) wit a few information from your Cosmos DB instance:

  • Subscription ID

  • Resource Group Name

  • Cosmos DB Account Name

See the chapter below for more details.

Scope

https://management.azure.com/

Used when Azure Managed Identity is turned ON.

Azure Managed Identity Scope. Usually, the value is “https://management.azure.com/”.

Database

SampleDB

Graph Database

Graph

SampleGraph

Graph

Partition Key

/region

Partition key used in this particular Graph. Can be found in Azure in Cosmos Data Explorer under the “Scale & Settings” Settings tab. See the next chapter for more details. Needs to start with “/”.

Threads

10

Number of parallel threads used to run queries in Cosmos DB. Can be a number between 1 and 20. Usually a value between 5 and 10 is optimal.

Higher number significantly increases performance of some queries in the application, e.g. loading data into a visualization. This also increases the consumption of the Request Units (RUs) in Cosmos DB and it also increases the RAM needed for Graphlytic..

Hybrid Data Model

N / A

Hybrid Data Model configuration for this Graph Database connection. For more information please see the "Hybrid Data Model" chapter below.

1.2.1. Where to find the settings in Azure

Host

The host value is the same for all databases in your Cosmos and can be found on the “Overview” page in Azure.

Use the value without the port (443) and protocol (wss), e.g. “gl-cosmos.gremlin.cosmos.azure.com”.

Key

The primary key is used to access Cosmos API. Read-write or Read-only keys can be used based on your use case.

List Key URL information

To create a valid List Key URL, this information is needed from the Cosmos DB resource:

  1. Subscription ID

  2. Resource Group Name

  3. Cosmos DB Account Name.

cosmos_managed_identity.png

Database, Graph, and Partition Key

These values are specific to a particular graph that you are connecting to. Values can be found in the Data Explorer under the “Scale & Settings” tab.

1.3. Apache TinkerPop Gremlin Server

Apache TinkerPop version 3.4+ is supported.

The only supported serializer option for any gremlin connection is GraphSONMessageSerializerV1d0:

serializer: { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0, config: { serializeResultToString: true  }}

Make sure this line is present in the Gremlin Server configuration file.

To create a new gremlin connection:

  1. Click the "New connection" button in the top right corner of the Graph Connections panel.

  2. Enter a human-distinguishable name for your new connection.

  3. Change Graph type to Apache TinkerPop.

  4. Enter Hosts and Port.

  5. If you need an encrypted connection, turn the Encryption setting on. 

  6. Option "Edit Certificate" is available only for encrypted connections (where Encryption = On).

  7. Click Save and test your connection with the “Test connection” button. 

Settings

Configuration

Example values

Description

Name

Default

Name of the connection (just for convenience)

Hosts

localhost

Graph Database hosts value is without the protocol

Port

8182

Graph Database port

Username

SecretUser

Graph connection username

Password

SecretPassword

Graph connection password

Encryption

false

Graph connection encryption. If a trusted certificate is used on the Graph Database side then just set this to true. If it's an untrusted certificate please use the UI to load the certificate into Graphlytics's Keystore. See the "Certificate" button described below.

Certificate button

N / A

If an untrusted certificate is used in your Graph Database please use this button to load the certificate into Graphlytics's Keystore.

Hybrid Data Model

N / A

Hybrid Data Model configuration for this Graph Database connection. For more information please see the "Hybrid Data Model" chapter below.

1.4. JanusGraph 0.6

Please use this serializer in your Gremlin Server configuration, otherwise Graphlytic will not function properly:

{ className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0, config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] } }

To create a new JanusGraph connection:

  1. Click the "New connection" button in the top right corner of the Graph Connections panel.

  2. Enter a human-distinguishable name for your new connection.

  3. Change Graph type to JanusGraph 0.6.

  4. Enter Hosts, Port.

  5. If you need an encrypted connection, turn the Encryption setting on. 

  6. Option "Edit Certificate" is available only for encrypted connections (where Encryption = On).

  7. Click Save and test your connection with the “Test connection” button. 

Settings

Configuration

Example values

Description

Name

Default

Name of the connection (just for convenience)

Hosts

localhost

Graph Database hosts value is without the protocol

Port

8182

Graph Database port

Username

SecretUser

Graph connection username

Password

SecretPassword

Graph connection password

Encryption

false

Graph connection encryption. If a trusted certificate is used on the Graph Database side then just set this to true. If it's an untrusted certificate please use the UI to load the certificate into Graphlytics's Keystore. See the "Certificate" button described below.

Certificate button

N / A

If an untrusted certificate is used in your Graph Database please use this button to load the certificate into Graphlytics's Keystore.

Hybrid Data Model

N / A

Hybrid Data Model configuration for this Graph Database connection. For more information please see the "Hybrid Data Model" chapter below.

1.5. AWS Neptune (beta)

Currently, the IAM authentication to the Neptune instance is not supported, ensure that IAM Authentication is turned off on the Neptune instance.

It is required to have either running EC2 instance or ALB (application load balancer), as Neptune instances are not visible from outside the VPC

To use Graphlytic with Neptune, Graphlytic has to be able to communicate with Neptune instance. This can be achieved by having:

  • an EC2 instance with Graphlytic in the same subnet group as the Neptune Instance,

  • or using SSH tunnel to such EC2 instance,

  • or using ALB.

To create a new Neptune connection:

  1. Click the "New connection" button in the top right corner of the Graph Connections panel.

  2. Enter a human-distinguishable name for your new connection.

  3. Change Graph type to Amazon Neptune.

  4. Enter Hosts, Port, and Region.

  5. Click Save and test your connection with the “Test connection” button. 

Settings

Configuration

Example values

Description

Name

Default

Name of the connection (just for convenience)

Hosts

someapp.amazonaws.com

Graph Database hosts value is without the protocol. This should be gremlin host

Port

8182

Graph Database port

Region

us-east-1

AWS region setting

Username

SecretUser

Username and password authentication is not currently supported. Can be left blank

Password

SecretPassword

Username and password authentication is not currently supported. Can be left blank

Hybrid Data Model

N / A

Hybrid Data Model configuration for this Graph Database connection. For more information please see the "Hybrid Data Model" chapter below.

1.6. Memgraph

Please be sure to run Memgraph with the “bolt-server-name-for-init” parameter set to “Neo4j”. Otherwise, Graphlytic will be not able to connect to Memgraph due to issues with different Java driver versions.

Memgraph Cloud

Set the parameter in the configuration options when creating a new project:

Memgraph Docker

Add the parameter to the docker run command:

docker run -it -p 7687:7687 -p 7444:7444 -p 3000:3000 memgraph/memgraph-platform --bolt-server-name-for-init=Neo4j

Memgraph connection in ​Graphlytic

To create a new Memgraph connection:

  1. Click the "New connection" button in the top right corner of the Graph Connections panel.

  2. Enter a human-distinguishable name for your new connection.

  3. Change Graph type to Memgraph.

  4. Enter Bolt URL, Username, and Password.

  5. Click Save and test your connection with the “Test connection” button. 

Settings

Configuration

Example values

Description

Name

Default

Name of the connection (just for convenience)

Bolt URL

bolt://localhost:7687

Graph Database Bolt protocol URL

Username

memgraph

Graph connection username

Password

memgraph

Graph connection password

Encryption

false

Graph connection encryption. If a trusted certificate is used on the Graph Database side then just set this to true. If it's an untrusted certificate please use the UI to load the certificate into Graphlytics's Keystore. See the "Certificate" button described below.

Certificate button

If an untrusted certificate is used in your Graph Database please use this button to load the certificate into Graphlytics's Keystore.

Fulltext search

Fulltext Index:

  • "properties": [ ]

  • "tokens" : [ ]

Search Mode:

  • "searchMode":"instant"

  • "throttleDelay":1000

  • "minLength":0

Fulltext index configuration for this Graph Database connection. For more information please see the "Fulltext Search Configuration" chapter below.

Schema indexes

Node Schema indexes configuration for this Graph Database connection. For more information please see the "Schema Indexes Configuration" chapter below.

Hybrid Data Model

Hybrid Data Model configuration for this Graph Database connection. For more information please see the "Hybrid Data Model" chapter below.

2. Fulltext Search Configuration

More information about the configuration options can be found on the Search Settings page.

3. Hybrid Data Model

The Hybrid Data Model is Graphlytic's solution for knowledge graphs with near real-time analysis of transactions with time-slicing (the Timeline feature). Its advantages are easy scaling, time slicing without the need for precalculating data, and instant changes in the graph without the need for extensive recalculations every time a new transaction is added.

This approach can be used in many different use cases, e.g.:

  • financial transactions (money flow)

  • process mining (document transactions)

  • communication (phone logs, email logs)

  • system activity (trace logs, server logs, API logs)

For more information see Hybrid Data Model.