2017-03-05 174 views
3

我正在尝试使用InfluxDB的Python客户端来检索存储在InfluxDB上的数据,但不能超过10k行。我(不成功)以下的例子是here。总结:如何使用Pandas从InfluxDB中检索超过10k行代码?

import influxdb 
dfclient = influxdb.DataFrameClient('localhost', 8086, 'root', 'root', 'mydb') 
q = "select * from some_measurement" 
df = dfclient.query(q, chunked=True) # Returns only 10k points 

这个问题似乎涉及到InfluxDB的记录here(即max-row-limit配置选项)内部限制。我正在通过sources来试图找出如何获得大于10K行的DataFrame,但任何有关解决此问题的帮助都将受到高度赞赏。

回答

2

阅读更多关于它here问题是由引起DataFrameClientquery简单地忽略了chunked参数[ code]。

我发现的解决方法不是使用标准InfluxDBClient代替。在问题中所示的代码变为:

import influxdb 
client = influxdb.InfluxDBClient('localhost', 8086, 'root', 'root', 'btc') 
q = "select * from some_measurement" 
df = pd.DataFrame(client.query(q, chunked=True, chunk_size=10000).get_points()) # Returns all points 

还值得强调的是从V1.2.2的max-row-limit设置(即,默认为chunk_size在上面的代码值)一直变化从10K到无限。

+1

我刚刚发送了一个[拉请求](https://github.com/influxdata/influxdb-python/pull/439)来修复'DataFrameClient'对分块请求的处理。 –

2

您是否试图在查询上设置分块标志以接收块中的数据。这可以使用类似的查询来完成以下事项:

influxdb.DataFrameClient(host=’localhost’, port=8086, username=’root’, password=’root’, database=None, ssl=False, verify_ssl=False, timeout=None, use_udp=False, udp_port=4444, proxies=None) 

您可以在1.2.3节