Есть ли способ сбросить структуру графа базы данных arangoDB, поскольку arangodump, к сожалению, просто сбрасывает данные ребер и коллекций.
Как создать резервную копию/дамп структуры графиков в arangoDB
Ответы (4)
Согласно документации, чтобы вывести структурную информацию всех коллекций (включая системные коллекции), вы запускаете следующее
arangodump --dump-data false --include-system-collections true --output-directory "dump"
Если вы не хотите, чтобы системные коллекции были включены, не указывайте аргумент (по умолчанию он равен false) или укажите значение false.
Как происходит сброс структуры и данных коллекций, см. ниже из документации
Структурная информация для коллекции будет сохранена в файлах с шаблоном имени .structure.json. Каждый файл структуры будет содержать объект JSON со следующими атрибутами:
параметры: содержит свойства коллекции
indexes: содержит индексы коллекции
Данные документа для коллекции будут сохранены в файлах с шаблоном имени .data.json. Каждая строка в файле данных является маркером вставки/обновления или удаления документа, наряду с некоторыми метаданными.
Для тестирования мне часто нужно извлечь подграф с известной структурой. Я использую это для проверки своих запросов. Метод некрасивый, но он может решить ваш вопрос. Я написал об этом в блоге здесь.
Хотя ответ @Raf принят, --dump-data false
предоставит только файлы структуры для всех коллекций, но данных там не будет. Включение --include-system-collections true
даст структуру системной коллекции _graphs
, в которой не будет информации, относящейся к созданию/структуре отдельных графов.
Также для данных создания диаграмм
Правильная команда выглядит следующим образом.
arangodump --server.database <DB_NAME> --include-system-collections true --output-directory <YOUR_DIRECTORY>
Нас будет интересовать файл с именем _graphs_<long_id>.data.json
, который имеет следующий формат данных.
{
"type": 2300,
"data":
{
"_id": "_graphs/social",
"_key": "social",
"_rev": "_WaJxhIO--_",
"edgeDefinitions": [
{
"collection": "relation",
"from": ["female", "male"],
"to": ["female", "male"]
}
],
"numberOfShards": 1,
"orphanCollections": [],
"replicationFactor": 1
}
}
Надеюсь, это поможет другим пользователям, которые искали мое требование!
В настоящее время ArangoDB управляет графиками через документы в системной коллекции _graphs
. Один документ равен одному графику. Он содержит имя графика, задействованные коллекции вершин и Определение ребер, которые настраивают направления коллекций ребер.