使用大文件时,influxdb CLI导入插入失败

时间:2019-02-07 18:22:01

标签: influxdb

我目前正在研究NASDAQ数据解析并将其插入到Influx数据库中。我已经处理了所有数据插入规则(转义特殊字符并根据<measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [unix-nano-timestamp]的格式组织它们)。

以下是我的数据示例: apatel17@*****:~/output$ head S051018-v50-U.csv # DDL CREATE DATABASE NASDAQData # DML # CONTEXT-DATABASE:NASDAQData U,StockLoc=6445,OrigOrderRef=22159,NewOrderRef=46667 TrackingNum=0,Shares=200,Price=73.7000 1525942800343419608 U,StockLoc=6445,OrigOrderRef=20491,NewOrderRef=46671 TrackingNum=0,Shares=200,Price=73.7800 1525942800344047668 U,StockLoc=952,OrigOrderRef=65253,NewOrderRef=75009 TrackingNum=0,Shares=400,Price=45.8200 1525942800792553625 U,StockLoc=7092,OrigOrderRef=51344,NewOrderRef=80292 TrackingNum=0,Shares=100,Price=38.2500 1525942803130310652 U,StockLoc=7092,OrigOrderRef=80292,NewOrderRef=80300 TrackingNum=0,Shares=100,Price=38.1600 1525942803130395217 U,StockLoc=7092,OrigOrderRef=82000,NewOrderRef=82004 TrackingNum=0,Shares=300,Price=37.1900 1525942803232492698

我还创建了一个数据库:NASDAQData(在Influx内部)。

我面临的问题是: 该文件大约有1300万行(准确的是12861906906行)。我正在尝试使用CLI导入命令插入以下数据: influx -import -path=S051118-v50-U.csv -precision=ns -database=NASDAQData

在开始出现插入错误之前,我通常最多获得5,000,000行。我已经多次运行了此代码,有时我也收到3,000,000行的错误。为了弄清楚这个错误,我在文件的一部分上运行了相同的代码。我将数据分别分为500,000行,并且代码成功地针对所有较小的文件运行。 (所有26个文件,共500,000行)

这是否发生在其他人身上,或者某个人知道此问题的解决方法,其中一个巨大的文件在数据插入过程中显示错误,但是如果分解并使用较小的数据大小,则导入效果很好。

感谢您的帮助。谢谢

1 个答案:

答案 0 :(得分:1)

根据influx文档的建议,可能需要将您的数据文件拆分为几个较小的文件,因为5秒钟后,用于发布写操作的http请求可能timeout。 / p>

  

如果您的数据文件具有5,000点以上,则可能有必要   将该文件拆分为几个文件,以便将数据写入   批处理到InfluxDB。我们建议分5,000个写作要点   达到10,000点批量较小,HTTP请求更多   表现欠佳。默认情况下,HTTP请求超时   五秒钟后。 InfluxDB仍将尝试写入要点   超时之后,将无法确认他们是否   成功编写。

或者,您可以使用pps选项设置每秒写多少点的限制。这样可以减轻您influxdb的压力。

请参阅: https://docs.influxdata.com/influxdb/v1.7/tools/shell/#import-data-from-a-file-with-import