neo4j 2.1.1如何设置日志记录以分析"未知错误"

时间:2014-06-10 07:11:46

标签: neo4j

我正在尝试使用以下查询将从我的SQL Server导出的大量数据作为csv文件加载到neo4j中:

USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM "file:e:/temp/sql_backup/events.csv" AS csvLine
MERGE (dtStart:Date { Name: REPLACE (SUBSTRING(csvLine.VT_Start,0,10),"-","")})
MERGE (dtEnd:Date { Name: REPLACE (SUBSTRING(csvLine.VT_End,0,10),"-","")})
MERGE (ev:Event  { EventId : csvLine.EventID})
ON CREATE SET ev = {
    EventId : csvLine.EventID,
    TagId : csvLine.TagID,  
    EventTypeId : csvLine.EventTypeID, 
    IntervalIdentifier : csvLine.AlarmID,    
    VT_Start : csvLine.VT_Start ,  
    VT_End : csvLine.VT_End,  
    Suppressed : csvLine.Suppressed, 
    system_messagetypename : csvLine.system_messagetypename,                                
    system_inputname : csvLine.system_inputname,
    system_spare1 : csvLine.system_spare1,
    Priority : csvLine.Priority,
    Console : csvLine.Console,
    Operator : csvLine.Operator,
    Message : csvLine.Message,
    Parameter : csvLine.Parameter,
    FromValue : csvLine.FromValue,
    ToValue : csvLine.ToValue,
    UnitOfMeasure : csvLine.UnitOfMeasure,
    Limit : csvLine.Limit,
    Value : csvLine.Value,
    User1 : csvLine.User1,
    BlockName : csvLine.BlockName }

MERGE (al:Alarm{ Name:  csvLine.AlarmID})
MERGE (pr:Priority{ Name:  csvLine.Priority})
MERGE (con:Console{ Name:  csvLine.Console })
MERGE (op:Operator{ Name:  csvLine.Operator })
MERGE (prm:Parameter{ Name:  csvLine.Parameter })
MERGE (uom:UOM{ Name:  csvLine.UnitOfMeasure })
MERGE (user:User{ Name:  csvLine.User1 })
MERGE (blk:Block{ Name:  csvLine.BlockName })
MERGE (tag:Tag{ TagId:  csvLine.TagID })
MERGE (evt:EventType{ EventTypeID:  csvLine.EventTypeID })
CREATE UNIQUE  (con)<-[:FOR_CONSOLE]-(ev)-[:HAS_ALARM]->(al)
CREATE UNIQUE  (op)<-[:FOR_OPERATOR]-(ev)-[:HAS_PRIORITY]->(pr)
CREATE UNIQUE  (user)<-[:FOR_USER]-(ev)-[:HAS_UOM]->(uom)
CREATE UNIQUE  (blk)<-[:HAS_BLOCK]-(ev)-[:HAS_EVENT_TYPE]->(evt)
CREATE UNIQUE  (ev)-[:FOR_TAG]->(tag)
CREATE UNIQUE  (dtStart)<-[:DATE_VT_START]-(ev)-[:FOR_TAG]->(tag)-[:DATE_VT_END]->(dtEnd)

我看到此查询运行了一段时间,我收到如下错误: enter image description here

我查看了数据目录以检查是否有任何日志可以解释更多细节,但我也找不到任何生成的日志。

neo4j documents讨论了如何编辑conf/neo4j-server.properties但我在neo4j目录中看不到config文件夹或logs,如下所示。enter image description here < / p>

我在根文件夹中看到的日志只有nioneo_logical.log, tm_tx_log, active_tx_log

有人可以解释一下如何在neo4j 2.1.1中设置调试日志记录,以便我可以看到导致此错误的内容。我怀疑可能是我的笔记本电脑的可用内存不足,所以想知道是否有人认为neo4j在RAM耗尽时崩溃了。

另外我注意到一些数据是在抛出错误之前创建的,但是没有创建关系查询,所以查询本身有什么问题吗?或其导致不创建关系的错误。

编辑1:

BTW neo4j 2.1.1下载发生了什么?我再也没有在neo4j网站上找到它了!

编辑2: 我下载了最新的2.1.2版本,并尝试再次运行查询并登陆同一个问题。我认为我有点问题,periodic commit没有用,因为它在我看来,查询首先创建所有事件节点,然后开始运行创建关联。

我将事件的大小减少到了5000并且让它工作了,但是当我将它增加到100000时它再次崩溃并且数据库中有30000多个事件没有关联。

我的结论是:我的查询不正确,或处理Periodic提交的方式不正确。这样,当数据集很大时,我们将耗尽物理RAM。

编辑3:

以下是Shell的输出,其中第一个查询运行,因为它没有任何Create语句。 enter image description here

如果文件大小不大,则从浏览器窗口运行相同。

1 个答案:

答案 0 :(得分:0)

在日志中找不到任何错误的原因是Neo4j浏览器中长时间运行的查询超时为60秒。这并不意味着查询实际上失败了,实际上它将运行完成。

要测试长时间运行的查询,请使用Neo4j Shell,它没有超时。

http://docs.neo4j.org/chunked/stable/shell.html