This page demonstrates the process of importing data from a Neo4j database into a graph in Ultipa.

The following steps are demonstrated using PowerShell (Windows).
Generate the Configuration File
Open the terminal program and navigate to the folder containing ultipa-importer
. Then, run the following command and select neo4j
to generate a sample configuration file for Neo4j:
./ultipa-importer --sample

A file named import.sample.neo4j.yml
will be generated in the same directory as ultipa-importer
. If the file already exists, it will be overwritten.
Modify the Configuration File
Customize the import.sample.neo4j.yml
configuration file based on your specific requirements. It includes the following sections:
mode
: Set toneo4j
.neo4j
: Configure the connection to your Neo4j database.server
: Provide your Ultipa server details and specify the target graph (new or existing) for data import.nodeConfig
: Define node schemas, where each schema corresponds to a label. Columns in the query results are mapped to node properties.edgeConfig
: Define edge schemas, where each schema corresponds to a relationship. Columns in the query results are mapped to edge properties.settings
: Set global import preferences and parameters.
# Mode options: csv/json/jsonl/rdf/graphml/bigQuery/sql/kafka/neo4j/salesforce
mode: neo4j
# Neo4j server configurations
neo4j:
# Host Address or URI, "neo4j://xxx:" or "neo4j+s://xxx"
host: "neo4j+s://123xxx.databases.neo4j.io"
username: "user123"
password: "password123"
# Database name
database: "trading"
# Ultipa server configurations
server:
# Host IP/URI and port; if it's a cluster, separate multiple hosts with commas
host: "10.11.22.33:1234"
username: "admin"
password: "admin12345"
# The new or existing graph for data import
graphset: "myGraph"
# If the above graphset is new, specify the shards where the graph will be stored
shards: "1,2,3"
# If the above graphset is new, specify the partition function (Crc32/Crc64WE/Crc64XZ/CityHash64) used for sharding
partitionBy: "Crc32"
# Path of the certificate file for TLS encryption
crt: ""
# Node configurations
nodeConfig:
# Specify the schema
- schema: "Customer"
# Specify the label in Neo4j
label: "customer"
# Set a condition (if needed) to query the label with variable 'n'
where: n.level > 0
# Set a limit (if needed) to restrict returned records
limit:
# properties: Map Neo4j query results to properties; columns mapped to system properties such as _id, _from or _to in the Neo4j query results must be explicitly configured
## name: The property name in the Neo4j database; to use Neo4j's identity, start, or end properties, set the name as <id>, <start>, or <end>
## new_name: The property name in Ultipa; it defaults to the name above
## type: The property type; you can set to _id, _from, _to, or other Ultipa property value types like int64, float, string, etc; set to _ignore to skip importing the column
## prefix: Add a prefix to the values of a property; only apply to _id, _from, and _to
properties:
- name: <id>
type: _id
- name: cust_no
type: string
- name: name
type: string
- name: level
type: int32
- schema: "Merchant"
label: "merchant"
properties:
- name : <id>
type: _id
# Edge configurations
edgeConfig:
- schema: "Transfers"
# Specify the relationship of nodes imported from Neo4j
relationship: "transfers"
# Set a condition (if needed) to query the relationship with the variable 'r'
where:
properties:
- name: <start>
type: _from
- name: <end>
type: _to
- name: trans_no
type: string
- name: time
type: datetime
# Global settings
settings:
# Path of the log file
logPath: "./logs"
# Number of rows included in each insertion batch
batchSize: 10000
# Import mode: insert/overwrite/upsert
importMode: insert
# Automatically create missing end nodes for edges
createNodeIfNotExist: false
# Stops the importing process when error occurs
stopWhenError: false
# Set to true to automatically create new graph, schemas and properties
yes: true
# The maximum threads
threads: 32
# The maximum size (in MB) of each packet
maxPacketSize: 40
# Timezone for the timestamp values
# timeZone: "+0200"
# Timestamp value unit, support ms/s
timestampUnit: s
Execute Import
Execute the import by specifying the configuration file using the --config
flag:
./ultipa-importer --config import.sample.neo4j.yml
