In this blog we will discuss on how you can import graph from different files in Apache age.
A user can load graphs in 2 steps:
- First step will involve loading the vertices.
- and in second step you will load the edges.
Note: A user must create graph and labels before loading data from different files.
Load Graph functions:
The below function are used to create vertices and edges from the file.
load_labels_from_file:
The function load_labels_from_file
is used for the loading of vertices from the csv files.
Syntax:
load_labels_from_file('<graph name>',
'<label name>',
'<file path>')
load_edges_from_file:
The function load_edges_from_file
can be used to load the edges from the CSV file.
Syntax:
load_edges_from_file('<graph name>',
'<label name>',
'<file path>')
About the CSV format:
Below is a brief explanation about the csv file for vertices and edges:
- A csv file for nodes should look like as follows(Field names and with their brief description):
id: it should be the first column and all the values should be the positive integers. This is an optional field when id_field_exists is false. However it should be present when id_field_exists is not set to false.
properties: All other columns should contain the properties of the node while the header should contain the name of the property.
- Similarly, the csv file for the edges should be formatted as follows(Field names and with their brief description):
start_id: node id of the node from where the edge is stated. The id should be present in nodes.csv file.
start_vertex_type: This field specifies the class of the node.
end_id: The field indicated the end id of the node where the
edge will be terminated.
end_vertex_type: Class of the node.
properties: Contains different properties of the edge, the header must contain the name of the property.
A short tutorial:
Following are some of the SQL commands for tutorial:
- Loading and creating graphs"
LOAD 'age';
SET search_path TO ag_catalog;
SELECT create_graph('test_graph');
- Create Label country:
SELECT create_vlabel('test_graph','Country');
- Load vertices from the csv file:
SELECT load_labels_from_file('test_graph',
'Country',
'age_load/data/countries.csv');
- Create label city:
SELECT create_vlabel('test_graph','City');
- Load vertices from the csv file:
SELECT load_labels_from_file('test_graph',
'City',
'age_load/data/cities.csv');
- Create label has_city:
SELECT create_elabel('agload_test_graph','has_city');
- Load edges from the csv file:
SELECT load_edges_from_file('test_graph', 'has_city',
'age_load/data/edges.csv');
- Querying to see if the graph is loaded properly:
SELECT table_catalog, table_schema, table_name, table_type
FROM information_schema.tables
WHERE table_schema = 'test_graph';
SELECT COUNT(*) FROM test_graph."Country";
SELECT COUNT(*) FROM test_graph."City";
SELECT COUNT(*) FROM test_graph."has_city";
SELECT COUNT(*) FROM cypher('test_graph', $$MATCH(n) RETURN n$$) as (n agtype);
SELECT COUNT(*) FROM cypher('test_graph', $$MATCH (a)-[e]->(b) RETURN e$$) as (n agtype);
Top comments (0)