我正在Azure上使用Neo4j v 4.0.3。 Python代码用于加载数据库。标准密码创建查询按预期工作:
Create (n:xxx{name:'xxx'})
但是,这不起作用:
LOAD CSV With HEADERS FROM 'https://neo4jclusterdiag.blob.core.windows.net/neo4j-import/jTags.csv?{SAS}' AS line FIELDTERMINATOR '|' MERGE (p:AncestryTag{TagId: toInteger(line.TagId),color:toString(line.Color),Label:toString(line.Label)})
CSV很简单:
TagId|Color|Label
1000|#6ba410|Brydie Scotland
1001|#FFE300|Scroggie
1002|#e3720f|Brodie Scotland
1003|#f06158|Robertson Scotland
1004|#cb478a|Goolsby
1005|#655586|Watt Aberdeenshire
1006|#0079a3|Milne Scotland
1007|#489b9b|Hay Aberdeenshire
1008|#FFB800|Anderson
1009|#a94500|Thomas
1010|#871a13|Bain, McBain
我在Neo4j v 4.0.3上有单独的本地安装,并且LOAD CSV在这里正常工作。因此,Azure数据库有点不对劲。
我在配置文件中进行了以下更改:
#dbms.directories.import=/var/lib/neo4j/import
dbms.security.allow_csv_import_from_file_urls=true
我尝试从python代码或在Neo4j浏览器中运行LOAD CSV。两者相同的错误:
neobolt.exceptions.ClientError: Couldn't load the external resource at: https://neo4jclusterdiag.blob.core.windows.net/neo4j-import/jTags.csv?{SAS}
在浏览器中我也看到:
Neo.ClientError.Statement.ExternalResourceFailed
我可以将其放置在浏览器地址窗口中并检索文件:
https://neo4jclusterdiag.blob.core.windows.net/neo4j-import/jTags.csv?{SAS}
因此,我的Azure数据库存在一些特别的问题,即我没有使用导入的csv重新导入我试图导入的文件。
问题出在Python Neo4j驱动程序上。在Azure上,标准驱动程序为v1.7.x。 Neo4j 4.x的版本仅在几天前发布。现在可用:
https://pypi.org/project/neo4j-driver/4.0.0a4/
这样,我可以执行LOAD CSV。现在,我还可以在安装中解决与特定数据库的会话。
非常光滑!我喜欢具有多个数据库来支持不同客户端的功能。