Skip To Content

Considerations for Neo4j databases used as NoSQL data stores

If you are using Neo4j databases as NoSQL data stores that are registered with your ArcGIS Knowledge site, there are some details to consider to ensure your knowledge graphs operate correctly. For example, you must create a coordinated back up and restore plan that synchronizes backups of your Neo4j databases, your ArcGIS Data Store graph store, and your ArcGIS Enterprise deployment.

Create a knowledge graph

The first step in using a Neo4j database with your ArcGIS Knowledge site is to create a Neo4j database using Neo4j administration commands. Register the database with your site as a NoSQL data store.

When a Neo4j database is registered as a NoSQL data store, it can be registered using either the database name or an alias assigned to it. The name or alias you use is subject to the same naming restrictions as the knowledge graph. Once the NoSQL data store has been created, the database can't be renamed or the alias can't be changed or dropped in Neo4j.

When you provide authentication information to connect to the Neo4j instance, ensure the user or identity with which the database is accessed has sufficient privileges to support all operations needed by the knowledge graph that will be created.

A NoSQL data store, and therefore a Neo4j database, can only be associated with one knowledge graph.

Manage data

When you create a knowledge graph using a NoSQL data store, you must choose how the data stored in the Neo4j database will be managed. This choice determines other factors regarding the Neo4j database.

For example, the graph store associated with your ArcGIS Knowledge site stores schema information that must be kept in sync with the information stored in the Neo4j databases associated with your site. How this is accomplished depends on how the data in the database is managed.

ArcGIS-managed data

If a knowledge graph will contain ArcGIS-managed data, the registered database must be empty when you add it as a NoSQL data store. If a Neo4j database isn't completely empty, the operation to create a knowledge graph with ArcGIS-managed data will fail.

The identifiers for entities and relationships must be kept in sync between the Neo4j databases and the ArcGIS Knowledge graph store for the knowledge graph to remain operational. To ensure data integrity, edits to all systems associated with a knowledge graph, including associated Neo4j databases, are only supported through operations and requests made to the knowledge graph in ArcGIS Pro and ArcGIS Enterprise.

Editing data and other changes to the Neo4j database must not be made from outside ArcGIS. This includes changing or deleting any indexes associated with the Neo4j database, since these are required to support searching.

User-managed data

If your Neo4j database contains data, you can register the database as a NoSQL data store and create a knowledge graph that contains user-managed data. The data and data model are read-only when accessed by ArcGIS Knowledge.

All entities and relationships in the knowledge graph must have a unique identifier. The name of the unique identifier property must be the same for all entity types and relationship types and must be provided when you configure a new knowledge graph. The value stored in the property must be unique across all entity types or across all relationship types but does not have to be globally unique across all entities and relationships in the database.

If search is enabled for a knowledge graph, full-text indexes are created in the Neo4j database by ArcGIS Knowledge to support searching. These indexes must not be updated or deleted outside of ArcGIS Knowledge. The index names begin with esri__.

To search the knowledge graph's data and add it to a link chart or map, you must synchronize the data model of the Neo4j database with the ArcGIS Knowledge graph store. If a node or relationship in the Neo4j database has multiple labels, synchronizing the data model fails. When this failure occurs, data associated with previously synchronized data model information can be accessed, but you cannot add data to a link chart or map associated with parts of the data model that have not been synchronized. You must synchronize the data model whenever the schema changes in the Neo4j database.

Delete the database

When you no longer need a knowledge graph, you can delete it in the Enterprise portal. Data for the knowledge graph is deleted automatically from the graph store. However, if the knowledge graph references a NoSQL data store, the data store and its associated Neo4j database are not deleted automatically.

If the knowledge graph contained ArcGIS-managed data, you can't create another ArcGIS-managed knowledge graph from the same NoSQL data store because the Neo4j database is not empty. However, if the knowledge graph contained user-managed data, you can create a new knowledge graph that accesses data in the existing NoSQL data store.

If you no longer intend to use a Neo4j database with ArcGIS Knowledge, you can delete the NoSQL data store in the Enterprise portal. This does not delete the associated Neo4j database. Before you delete the NoSQL data store item, check its settings and make note of which Neo4j database it references. You can then take steps to archive the data and delete the Neo4j database using Neo4j utilities and administration commands according to your organization's guidelines.

Note:

Once a knowledge graph has been deleted from the Enterprise portal, you can't use any investigations stored in your ArcGIS Pro projects that referenced the deleted knowledge graph. An existing investigation or link chart can't be associated with a different knowledge graph. You will have to delete investigations that reference the deleted knowledge graph from all projects where they exist or delete the projects themselves, as appropriate.