关于 YMatrix
部署数据库
使用数据库
管理集群
最佳实践
高级功能
高级查询
联邦查询
Grafana 监控
备份恢复
灾难恢复
图数据库
管理手册
性能调优
故障诊断
工具指南
系统配置参数
SQL 参考
您可以使用以下说明从文件创建图。本文档说明:
用户可以分两步加载图:
用户必须在从文件加载数据之前创建图和标签
以下是从文件创建顶点和边的函数详细信息。
函数 load_labels_from_file 用于从 CSV 文件加载顶点。
load_labels_from_file('<graph name>',
'<label name>',
'<file path>')
通过添加第四个参数,用户可以排除 id 字段。当文件中没有 id 字段时使用此选项
load_labels_from_file('<graph name>',
'<label name>',
'<file path>',
false)
函数 load_edges_from_file 可用于从 CSV 文件加载边。请参阅以下文件结构。
注意:确保边文件中的 id 与顶点文件中的 id 一致。
load_edges_from_file('<graph name>',
'<label name>',
'<file path>');
以下是顶点和边的 CSV 文件结构说明。
| 字段名称 | 字段描述 |
|---|---|
| id | 应为文件的第一列,所有值应为正整数。当 id_field_exists 为 false 时,这是一个可选字段。但当 id_field_exists 未设置为 false 时,它应该存在。 |
| Properties | 所有其他列包含节点的属性。标题行应包含属性名称。 |
| 字段名称 | 字段描述 |
|---|---|
| start_id | 边起始节点的节点 id。此 id 应存在于 nodes.csv 文件中。 |
| start_vertex_type | 节点的类别 |
| end_id | 边终止节点的结束 id |
| end_vertex_type | 节点的类别 |
| properties | 边的属性。标题应包含属性名称。 |
示例文件可在 regress/age_load/data 中查看。
LOAD 'age';
SET search_path TO ag_catalog;
SELECT create_graph('agload_test_graph');
Country 并从 csv 文件加载顶点。注意此 CSV 文件有 id 字段
SELECT create_vlabel('agload_test_graph','Country');
SELECT load_labels_from_file('agload_test_graph',
'Country',
'age/regress/age_load/data/countries.csv');
City 并从 csv 文件加载顶点。注意此 CSV 文件有 id 字段SELECT create_vlabel('agload_test_graph','City');
SELECT load_labels_from_file('agload_test_graph',
'City',
'age/regress/age_load/data/cities.csv');
has_city 并从 csv 文件加载边。SELECT create_elabel('agload_test_graph','has_city');
SELECT load_edges_from_file('agload_test_graph', 'has_city',
'age/regress/age_load/data/edges.csv');
SELECT table_catalog, table_schema, table_name, table_type
FROM information_schema.tables
WHERE table_schema = 'agload_test_graph';
SELECT COUNT(*) FROM agload_test_graph."Country";
SELECT COUNT(*) FROM agload_test_graph."City";
SELECT COUNT(*) FROM agload_test_graph."has_city";
SELECT COUNT(*) FROM cypher('agload_test_graph', $$MATCH(n) RETURN n$$) as (n agtype);
SELECT COUNT(*) FROM cypher('agload_test_graph', $$MATCH (a)-[e]->(b) RETURN e$$) as (n agtype);
Country2 并从 csv 文件加载顶点。注意此 CSV 文件没有 id 字段SELECT create_vlabel('agload_test_graph','Country2');
SELECT load_labels_from_file('agload_test_graph',
'Country2',
'age/regress/age_load/data/countries.csv',
false);
City2 并从 csv 文件加载顶点。注意此 CSV 文件没有 id 字段SELECT create_vlabel('agload_test_graph','City2');
SELECT load_labels_from_file('agload_test_graph',
'City2',
'age/regress/age_load/data/cities.csv',
false);
Country 和 City 使用文件中的 id 字段创建Country2 和 City2 在文件中没有 id 字段的情况下创建SELECT COUNT(*) FROM agload_test_graph."Country2";
SELECT COUNT(*) FROM agload_test_graph."City2";
SELECT id FROM agload_test_graph."Country" LIMIT 10;
SELECT id FROM agload_test_graph."Country2" LIMIT 10;
SELECT * FROM cypher('agload_test_graph', $$MATCH(n:Country {iso2 : 'BE'})
RETURN id(n), n.name, n.iso2 $$) as ("id(n)" agtype, "n.name" agtype, "n.iso2" agtype);
SELECT * FROM cypher('agload_test_graph', $$MATCH(n:Country2 {iso2 : 'BE'})
RETURN id(n), n.name, n.iso2 $$) as ("id(n)" agtype, "n.name" agtype, "n.iso2" agtype);
SELECT * FROM cypher('agload_test_graph', $$MATCH(n:Country {iso2 : 'AT'})
RETURN id(n), n.name, n.iso2 $$) as ("id(n)" agtype, "n.name" agtype, "n.iso2" agtype);
SELECT * FROM cypher('agload_test_graph', $$MATCH(n:Country2 {iso2 : 'AT'})
RETURN id(n), n.name, n.iso2 $$) as ("id(n)" agtype, "n.name" agtype, "n.iso2" agtype);
SELECT drop_graph('agload_test_graph', true);