2017-03-05 14 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 

문제는 here (즉, max-row-limit 구성 옵션)에서 설명 InfluxDB의 내부 제한과 관련이있을 것으로 보인다. 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

나는'DataFrameClient'에 의해 청크 된 요청의 처리를 수정하기 위해 [pull request] (https://github.com/influxdata/influxdb-python/pull/439)를 방금 보냈습니다. –

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