Начало работы
Подключение
Тесты производительности
Развёртывание
Использование данных
Загрузка данных
Миграция данных
Запрос данных
Управление кластерами
Обновление
Глобальное обслуживание
Масштабирование
Мониторинг
Безопасность
Лучшие практики
Технические принципы
Типы данных
Хранилище
Исполняющий движок
Потоковая обработка (Domino)
MARS3 Индексы
Расширения
Расширенные функции
Расширенный запрос
Федеративные запросы
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. В остальных случаях обязательное поле. |
Properties |
Все остальные столбцы определяют свойства вершин. Заголовочная строка должна содержать имена свойств. |
| Имя столбца | Описание |
|---|---|
start_id |
id исходной вершины. Должен присутствовать в файле вершин. |
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);
id во входном файле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 — 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);