如何使用 Pandas 从 InfluxDB 中检索超过 10k 行?
How to retrive more than 10k lines from InfluxDB using Pandas?
我正在尝试使用 InfluxDB 的 Python 客户端检索存储在 InfluxDB 上的数据,但不能超过 10k 行。我(未成功)遵循的示例是 here。总结:
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 (namely, the max-row-limit
configuration option). I am going through the sources 试图找出如何获得大于 10k 行的 DataFrame,但我们将不胜感激解决此问题的任何帮助。
您是否尝试过在查询中设置分块标志以分块接收数据。这可以使用如下查询来完成:
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 节 here 中阅读更多相关信息
问题是由 DataFrameClient
的 query
简单地忽略 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 更改为无限制。
我正在尝试使用 InfluxDB 的 Python 客户端检索存储在 InfluxDB 上的数据,但不能超过 10k 行。我(未成功)遵循的示例是 here。总结:
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 (namely, the max-row-limit
configuration option). I am going through the sources 试图找出如何获得大于 10k 行的 DataFrame,但我们将不胜感激解决此问题的任何帮助。
您是否尝试过在查询中设置分块标志以分块接收数据。这可以使用如下查询来完成:
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 节 here 中阅读更多相关信息
问题是由 DataFrameClient
的 query
简单地忽略 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 更改为无限制。