2016-10-21 9 views
0

Я запускаю два разных сервера Neo4j и запускаю те же запросы на них в том же порядке.Сбросить счетчик узлов на дампе neo4j-shell

Я хочу проверить, эквивалентны ли обе базы данных для этой цели. Я генерирую дамп всей базы данных (и я понимаю, что это не настоящая альтернатива для огромных баз данных) с bin/neo4j-shell -c "dump" > /home/my_user/dump.txt и их сравнение хешей md5 сгенерировано с помощью md5sum dump.txt.

Сгенерированные файлы dump.txt выглядят практически идентичными, за исключением того, что переменные, которые идентифицируют узлы, иногда различаются, что, конечно, создает совершенно разные хэши для каждого файла. Пример:

dump.txt # 1

begin 
commit 
begin 
create (_6:`Person` {`name`:"Arthur", `title`:"King"}) 
create (_7:`Person` {`name`:"Saladin", `title`:"Sultan"}) 
create (_8:`Army` {`name`:"Saxon army"}) 
create (_6)-[:`FIGHTS_AGAINST`]->(_8) 
create (_7)-[:`LEADS`]->(_8) 
; 
commit 

dump.txt # 2

begin 
commit 
begin 
create (_7:`Person` {`name`:"Arthur", `title`:"King"}) 
create (_8:`Person` {`name`:"Saladin", `title`:"Sultan"}) 
create (_9:`Army` {`name`:"Saxon army"}) 
create (_7)-[:`FIGHTS_AGAINST`]->(_9) 
create (_8)-[:`LEADS`]->(_9) 
; 
commit 

Я предполагаю, что сейчас он работает на основе числа узлов база данных до сих пор и когда я очищаю его MATCH (n) DETACH DELETE n, он не сбрасывает этот счетчик. Единственный способ, с помощью которого я сбросил его, - перезапустить сервер, что не совсем практично.

Я думаю, что самый простой способ решить мою проблему состоял бы в том, чтобы создать скрипт, который стирает все числа, которым предшествует _, но не так ли в особых ситуациях генерировать ложные срабатывания? Например, если запросы, которые очень похожи и в одном порядке, но обновляются разные узлы.

Есть ли у кого лучшая альтернатива? Может быть, команда сбросить счетчик этого узла?

ответ

0

Закончен с использованием регулярных выражений на Bash для достижения желаемого результата удаления всех идентификаторов узлов из файлов.

cat dump.txt | sed s/\(_[0-9]*/\(/g > dump_new.txt

который с dump.txt как это одна:

begin 
commit 
begin 
create (_18:`Person` {`name`:"Arthur", `title`:"King"}) 
create (_19:`Person` {`name`:"Saladin", `title`:"Sultan"}) 
create (_20:`Army` {`name`:"Saxon army"}) 
create (_18)-[:`FIGHTS_AGAINST`]->(_20) 
create (_19)-[:`LEADS`]->(_20) 
; 
commit 

Формирует dump_new.txt как это один:

begin 
commit 
begin 
create (:`Person` {`name`:"Arthur", `title`:"King"}) 
create (:`Person` {`name`:"Saladin", `title`:"Sultan"}) 
create (:`Army` {`name`:"Saxon army"}) 
create()-[:`FIGHTS_AGAINST`]->() 
create()-[:`LEADS`]->() 
; 
commit