2017-03-05 179 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節