2015-03-22 18 views
8

Chỉ có thể truy vấn giá trị cuối cùng (hoặc giá trị thứ n) của kết quả truy vấn?InfluxDB - Chỉ nhận giá trị cuối cùng trong truy vấn

Ví dụ, trong truy vấn:

SELECT value FROM response_times WHERE time > now() - 1h limit 1000; 

là có thể chỉ nhận được giá trị cuối cùng, có nghĩa là mật càng xa trước trong thời gian (có thể là các yếu tố 1000-th)?

Tất nhiên tôi có thể truy xuất tất cả rồi bỏ qua phần cuối cùng, nhưng tôi không muốn lãng phí băng thông theo cách này.

Trả lời

3

Trong API, hãy xem đầu tiên/cuối cùng để chọn bản ghi đầu tiên hoặc cuối cùng của cột. Bạn cũng có trên/dưới để chọn nhiều hơn một kỷ lục

[sửa] trên/dưới dường như trở higest/giá trị thấp nhất của khung thời gian

+0

Tài liệu này được viết ở đâu? Tôi không thể tìm thấy nó tại http://influxdb.com/docs/v0.9/query_language/querying_data.html hoặc http://influxdb.com/docs/v0.8/api/query_language.html – dukebody

+2

Đối với 0.8, nó nằm trong các hàm tổng hợp: http://influxdb.com/docs/v0.8/api/aggregate_functions.html#first/last xin lỗi vì chưa cung cấp liên kết trước đó! –

+1

Tôi quan tâm nhất để nhận được thời gian cho giá trị đầu tiên/cuối cùng ... bất kỳ cách nào để làm điều đó? – tslater

9
SELECT last(value) FROM response_times WHERE time > now() - 1h; 

Điều đó sẽ trả về giá trị cuối cùng của cột .

Tuy nhiên, nếu bạn muốn, bạn có thể chia chuỗi theo các phần nhỏ hơn và chọn giá trị cuối cùng. Ví dụ:

SELECT last(value) FROM response_times WHERE time > now() - 1h GROUP BY time(60s); 

Nó sẽ phân chia chuỗi theo các đoạn 60 giây và sẽ nhận từng phần giá trị mới nhất.

8

Nếu bạn đang sử dụng InfluxDB 0.8 không sử dụng FIRST() hoặc LAST() nếu bạn chưa GROUP BY vì nó rất chậm :(

Vì vậy, nếu bạn muốn để có được những giá trị bạn shoud sử dụng:

Đầu tiên Value:

SELECT * FROM <SERIES> GROUP BY * ORDER BY ASC LIMIT 1 

Giá trị cuối:

SELECT * FROM <SERIES> GROUP BY * ORDER BY DESC LIMIT 1 

Không xóa GROUP BY * vì sau đó nó có khả năng là bạn sẽ có được giá trị bất ngờ sau đó.

+0

Bạn có bất kỳ lời giải thích nào về những giá trị không mong đợi này và tại sao chúng hiển thị không? –

+0

-1 cho [FUD] (https://en.wikipedia.org/wiki/Fear,_uncertainty_and_doubt). Nếu bạn muốn khẳng định rằng một cái gì đó bị hỏng, hãy trình bày về sự hư hỏng - không phải là một xác nhận mơ hồ và không thể chấp nhận được rằng * "có thể bạn sẽ nhận được các giá trị không mong muốn" *. –

1
SELECT * FROM <SERIES> ORDER BY ASC LIMIT 1 
Các vấn đề liên quan