Как создать резервную копию/дамп структуры графиков в arangoDB

Есть ли способ сбросить структуру графа базы данных arangoDB, поскольку arangodump, к сожалению, просто сбрасывает данные ребер и коллекций.


person smurf    schedule 02.02.2016    source источник
comment
Пробовали ли вы arangodump --dump-data false --include-system-collections true --dump-directory dump, где вы указываете --dump-data false и --include-system-collections true, что должно выводить только структурную информацию   -  person Raf    schedule 02.02.2016
comment
--include-system-collections true помогло. Исходя из мира sql, я не ожидал структур графов в системных коллекциях. Спасибо.   -  person smurf    schedule 02.02.2016


Ответы (4)


Согласно документации, чтобы вывести структурную информацию всех коллекций (включая системные коллекции), вы запускаете следующее

arangodump --dump-data false --include-system-collections true --output-directory "dump"

Если вы не хотите, чтобы системные коллекции были включены, не указывайте аргумент (по умолчанию он равен false) или укажите значение false.

Как происходит сброс структуры и данных коллекций, см. ниже из документации

Структурная информация для коллекции будет сохранена в файлах с шаблоном имени .structure.json. Каждый файл структуры будет содержать объект JSON со следующими атрибутами:

параметры: содержит свойства коллекции

indexes: содержит индексы коллекции

Данные документа для коллекции будут сохранены в файлах с шаблоном имени .data.json. Каждая строка в файле данных является маркером вставки/обновления или удаления документа, наряду с некоторыми метаданными.

person Raf    schedule 02.02.2016

Для тестирования мне часто нужно извлечь подграф с известной структурой. Я использую это для проверки своих запросов. Метод некрасивый, но он может решить ваш вопрос. Я написал об этом в блоге здесь.

person mikewilliamson    schedule 02.02.2016

Хотя ответ @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
    }
}

Надеюсь, это поможет другим пользователям, которые искали мое требование!

person Morse    schedule 22.06.2018

В настоящее время ArangoDB управляет графиками через документы в системной коллекции _graphs. Один документ равен одному графику. Он содержит имя графика, задействованные коллекции вершин и Определение ребер, которые настраивают направления коллекций ребер.

person dothebart    schedule 02.02.2016