windows neo4j load csv 路径怎么写

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows neo4j load csv 路径怎么写相关的知识,希望对你有一定的参考价值。

参考技术A 用类似 OdbcConnection conn = new OdbcConnection( "Driver=Microsoft Text Driver (*.txt; *.csv);DBQ=c:\bin"); OdbcConnection conn = new OdbcConnection("DSN=dsnname"); 的连接字符串读取csv,相当于数据库,直接绑定就可以了。

为啥 redshift 在 stl_load_commits 中没有 csv 文件的条目?

【中文标题】为啥 redshift 在 stl_load_commits 中没有 csv 文件的条目?【英文标题】:Why redshift does not have entry for csv file in stl_load_commits ??为什么 redshift 在 stl_load_commits 中没有 csv 文件的条目? 【发布时间】:2018-07-20 12:40:13 【问题描述】:

尽管我知道 aws 在他们的 documentation 中提到,对于他们来说 csv 更像是 txt 文件。但是为什么没有CSV文件的条目。

例如: 如果我正在运行如下查询:

COPY "systemtable"  FROM 's3://test/example.txt' <credentials>  IGNOREHEADER 1  delimiter as ','

然后它在 stl_load_commits 中创建条目,我可以通过以下方式查询:

select query, curtime as updated from stl_load_commits where query = pg_last_copy_id();

但是,当我尝试使用相同的方式时:

COPY "systemtable"  FROM 's3://test/example.csv' 
<credentials>  IGNOREHEADER 1  delimiter as ','   format csv;

然后返回

select query, curtime as updated from stl_load_commits where query = pg_last_copy_id();

为空,为什么 aws 不为 csv 创建条目?

这是问题的第一部分。其次,必须有某种方法可以检查加载文件的状态吗? 如果文件是csv类型,我们如何检查文件是否已成功加载到数据库中?

【问题讨论】:

【参考方案1】:

文件的格式不影响系统表中成功或错误信息的可见性。

当您运行COPY 时,它会返回成功确认和加载的行数。一些 SQL 客户端可能不会将此信息返回给您,但使用 psql 时的效果如下:

COPY public.web_sales from 's3://my-files/csv/web_sales/' 
FORMAT CSV 
GZIP 
CREDENTIALS 'aws_iam_role=arn:aws:iam::01234567890:role/redshift-cluster'
;
-- INFO:  Load into table 'web_sales' completed, 72001237 record(s) loaded successfully.
-- COPY

如果加载成功你可以看到stl_load_commits中的文件:

 SELECT query, TRIM(file_format) format, TRIM(filename) file_name, lines, errors FROM stl_load_commits WHERE query = pg_last_copy_id();
  query  | format |                 file_name                   |  lines  | errors
---------+--------+---------------------------------------------+---------+--------
 1928751 | Text   | s3://my-files/csv/web_sales/0000_part_03.gz | 3053206 |     -1
 1928751 | Text   | s3://my-files/csv/web_sales/0000_part_01.gz | 3053285 |     -1

如果加载失败,您应该会收到错误消息。这是一个示例错误(请注意我尝试加载的表):

COPY public.store_sales from 's3://my-files/csv/web_sales/' 
FORMAT CSV 
GZIP 
CREDENTIALS 'aws_iam_role=arn:aws:iam::01234567890:role/redshift-cluster'
;
--ERROR:  Load into table 'store_sales' failed.  Check 'stl_load_errors' system table for details.

您可以在stl_load_errors 中查看错误详情。

SELECT query, TRIM(filename) file_name, TRIM(colname) "column", line_number line, TRIM(err_reason) err_reason FROM stl_load_errors where query = pg_last_copy_id();
  query  |      file_name         |      column       | line |       err_reason
---------+------------------------+-------------------+------+---------------------------
 1928961 | s3://…/0000_part_01.gz | ss_wholesale_cost |    1 | Overflow for NUMERIC(7,2)
 1928961 | s3://…/0000_part_02.gz | ss_wholesale_cost |    1 | Overflow for NUMERIC(7,2)

【讨论】:

你试过单个大的 csv 文件吗?因为在单个文件的情况下,它不会为它创建条目。 您是否尝试过使用psql 来确保任何错误都可见?可以查询表中的数据吗?是否加载成功? 是的,我在stl_load_errors中试过了,这个查询没有条目,所有数据都成功插入到目标表中。 好的,请在 AWS Redshift 论坛 (joeharris76-AWS) 上向我发送一条私人消息,并附上您的集群名称和区域,以便我们进行调查。 forums.aws.amazon.com/forum.jspa?forumID=155

以上是关于windows neo4j load csv 路径怎么写的主要内容,如果未能解决你的问题,请参考以下文章

r 快速帮助程序功能将Neo4j Shell用于LOAD CSV。设置shell工具并期望文件路径。非常alpha,但它的工作原理。

neo4j在load csv时会出现莫名其妙的路径问题如Neo.ClientError.Statement.ExternalResourceFailed,搞了好久才搞定,现在记录如下

从只有 MATCH 和 CREATE 关系的 Cypher LOAD CSV 中删除 EAGER

Neo4j导入数据的三种方式

Neo4J入门笔记[2]---导出数据为CSV

在将节点从 csv 创建到 neo4j 时创建关系