This page demonstrates the process of importing data from JSON file(s) into an Ultipa graphset.

Generate Configuration File
Execute the following command in your command line tool and select json
.
./ultipa-importer --sample
The import.sample.json.yml
file will be generated in the same directory as ultipa-importer.exe
. If a import.sample.json.yml
file already exists in that directory, it will be overwritten.
Modify Configuration File
The configuration file consists of several sections. Modify the configuration file according to your needs.
If SFTP is not used, remove the section involving SFTP server configurations from the configuration file below.
# Mode options: csv/json/jsonl/rdf/graphml/bigQuery/sql/kafka/neo4j/salesforce; only one mode can be used
# SQL supports mysql/postgresSQL/sqlserver/snowflake/oracle
mode: json
# Ultipa server configurations
server:
# Host IP/URI and port
# If it is a cluster, separate hosts with commas, i.e., "<ip1>:<port1>,<ip2>:<port2>,<ip3>:<port3>"
host: "10.11.22.33:1234"
username: "admin"
password: "admin12345"
# The new or existing graphset where data will be imported
graphset: "trading"
# If the above graphset is new, specify the shards where it 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 (optional)
crt: ""
# SFTP server configurations
sftp:
# Host IP/URI and port
host: "10.12.23.34:4567"
username: "yourUsername"
password: "yourPassword"
# SSH Key path for SFTP (if set, password will not be used)
key: "./my_secret"
# Node configurations
nodeConfig:
# Specify the node type (schema) that the imported nodes belong to
- schema: "customer"
# Specify the file path. If SFTP is configured, provide the SFTP path
file: "./dataset/trading/customer.json"
# properties: Map data to graph database properties
# For each property, you can configure the following:
## name: The key identifier from the JSON file
## new_name: The property name to which the value will be mapped; if unset, it defaults to the key
## type: Supported types include _id, _from, _to, and other Ultipa property types like int64, int32, float, string, etc.
## prefix: Add a prefix to the values of the _id, _from, or _to types; it does not apply to other types
# All desired properties must be configured to ensure successful data mapping
properties:
- name: cust_no
type: _id
- name: name
type: string
- name: level
type: int32
- schema: "merchant"
file: "./dataset/trading/merchant.json"
properties:
- name: merch_no
type: _id
- name: name
type: string
- name: type
type: string
# Edge configurations
edgeConfig:
- schema: "transaction"
file: "./dataset/trading/transaction.json"
properties:
- name: trans_no
type: string
- name: cust_no
type: _from
- name: merch_no
type: _to
- name: time
new_name: trans_time
type: datetime
# Global settings
settings:
# Define the path to output the log file
logPath: "./logs"
# Number of rows included in each insertion batch
batchSize: 10000
# Import mode supports insert/overwrite/upsert
importMode: insert
# Automatically create missing end nodes for edges (applicable only when importing edges)
createNodeIfNotExist: false
# Stops the importing process when error occurs
stopWhenError: false
# Set to true to automatically create missing graphset, 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
Configuration Items
Ultipa server configurations
Field |
Type |
Description |
---|---|---|
host |
String | IP address or URI of the source database. |
username |
String | Database username. |
password |
String | Password of the above user. |
graphset |
String | Name of the target graphset for JSON file import. If the specified graphset does not exist, it will be created automatically. |
shards |
String | Specifies the shards where data will be processed. |
partitionBy |
String | Specifies the patitioning algorithm, including Crc32 , Crc64WE , Crc64XZ and CityHash64 . |
crt |
String | Path to the certificate (CRT) file used for TLS encryption. |
SFTP server configurations
Field |
Type |
Description |
---|---|---|
host |
String | IP address or URI of the SFTP server. |
username |
String | SFTP server username used for authentication. |
password |
String | Password of the above user. |
key |
String | Path to the SSH key for SFTP authentication. If set, the password will be ignored. |
Node/Edge configurations
Field |
Type |
Description |
---|---|---|
schema |
String | The node type (schema) to which the imported nodes belong. |
file |
String | Path to the JSON file. |
name |
String | The key identifier from the JSON file, serving as the property name. |
type |
String | Specify the data type. See supported property value types. |
prefix |
String | Add a prefix to the data. This is only supported for data types including _id , _from , and _to . |
new_name |
String | Modify the property name specified in name to a new value. |
Global settings
Field |
Type |
Default |
Description |
---|---|---|---|
logPath |
String | "./logs" | The path to save the log file. |
batchSize |
Integer | 10000 | Number of nodes or edges to insert per batch. |
importMode |
String | upsert | Specifies how the data is inserted into the graph, including overwrite , insert and upsert . When updating nodes or edges, use the upsert mode to prevent overwriting existing data. |
createNodeIfNotExist |
Bool | false | Whether missing nodes are automatically created when inserting edges:true : The system automatically creates nodes that do not exist.false : The related edges will not be imported. |
stopWhenError |
Bool | false | Whether to stop the import process when an error occurs. |
yes |
Bool | false | Whether to automatically create missing graphset, schemas and properties. |
threads |
Integer | 32 | The maximum number of threads. 32 is suggested. |
maxPacketSize |
Integer | 40 | The maximum size of data packets in MB that can be sent or received. |
timestampUnit |
String | s | The unit of measurement for timestamp data. Supported units are ms (milliseconds) and s (seconds). |
Execute Import
The import process uses the configuration file specified by the -config
parameter to import JSON data into the target server and display it in the Ultipa graph structure.
./ultipa-importer --config import.sample.json.yml