Neo4j를 데이터베이스로 사용하는 프로젝트에서 작업 중입니다. 원격 데이터베이스를 응용 프로그램 용으로 빌드하고 Cloud에서 호스팅합니다. 클라이언트의 위치에서 호스팅되는 다른 데이터베이스 (로컬 데이터베이스)가 있습니다.Neo4j - 로컬 데이터베이스를 원격 neo4j 데이터베이스 서버와 동기화하는 방법
질문 : 두 데이터베이스를 동기화하는 방법이 있습니까? 이 동기화에 사용할 수있는 직접 COTS 제품이 있습니까?
Neo4j를 데이터베이스로 사용하는 프로젝트에서 작업 중입니다. 원격 데이터베이스를 응용 프로그램 용으로 빌드하고 Cloud에서 호스팅합니다. 클라이언트의 위치에서 호스팅되는 다른 데이터베이스 (로컬 데이터베이스)가 있습니다.Neo4j - 로컬 데이터베이스를 원격 neo4j 데이터베이스 서버와 동기화하는 방법
질문 : 두 데이터베이스를 동기화하는 방법이 있습니까? 이 동기화에 사용할 수있는 직접 COTS 제품이 있습니까?
실행중인 버전에 따라 다릅니다. Enterprise Edition을 사용하는 경우 즉시 사용할 수 있지만 커뮤니티를 사용하는 경우 직접 수행해야합니다.
로컬 데이터베이스의 데이터를 수정 한 다음 모든 쿼리를 기록한 다음 원격 데이터베이스에서 재생하면됩니다. 아래 코드는 C#에서이 일을 예입니다
var query = _client.Cypher
.Match("(p:Person)")
.Where((Person p) => p.Id == id)
.Set("p = {person}")
.WithParam("person", person);
query.ExecuteWithoutResults();
RecordQuery(query);
private static void RecordQuery(dynamic query)
{
var syncStore = new SynchronisationStore();
var replayQuery = syncStore.Create();
replayQuery.TimeStamp = DateTime.Now;
var queryText = query.Query.QueryText.Replace("\r\n", " ");
replayQuery.CypherQueryText = queryText;
replayQuery.CypherQueryParameters = query.Query.QueryParameters;
syncStore.Store(replayQuery);
}
그런 다음 사용하여 문자열 서버 사이의 데이터 (나는 RESTful 서비스를 사용) 및 재생을 전송하려면 어떤 방법을 사용할 수 있습니다
public void ReplayQuery(ReplayQuery replayQuery)
{
foreach (var pair in replayQuery.CypherQueryParameters)
{
replayQuery.CypherQueryText = replayQuery.CypherQueryText.Replace("{" + pair.Key + "}", SerializeWithoutQuote(pair.Value));
}
var query = new CypherQuery(replayQuery.CypherQueryText, new Dictionary<string, object>(), CypherResultMode.Set, null);
_client.Connect();
((IRawGraphClient) _client).ExecuteCypher(query);
}
}
참고 - 한 번만 재생하고 질의를 순서대로 재생해야합니다.
좀 더 간단한 방법이 있습니까, 아니면 어떤 도구를 사용할 수 있습니까? 나는 커뮤니티 에디션 버전 3을 가지고있다. –
나는 이것을 할 수있는 도구를 모른다. 따라서 Neo4j Enterprise의 천문학적 인 비용을 스스로 부담하거나 포기해야합니다. 위의 코드와 재생 쿼리를 문자열로 저장하는 일부 메커니즘과 동기화가 성공했는지 여부를 나타내는 플래그 (MongoDB 사용)를 사용하면 1 일 내에 실행해야합니다. – joe
저는 이것이 유효한 질문이라고 생각하지만, 과장된 문장을 벗어나는 이유는 다음과 같습니다. 오프 사이트 리소스 또는 제품 권장 사항을 묻습니다. –
이것은 내가 여러분에게 도움이 될 수있는 모든 것이며, 아마도 여러분이 좋아할만큼 많이 도움이되지 않을 것입니다 : http://stackoverflow.com/questions/18830686/export-whole-database-in-cypher-format -ascii-text –