Đối với trường hợp của tôi, tôi cần chụp 15 chỉ số hiệu suất cho thiết bị và lưu nó vào InfluxDB. Mỗi thiết bị có một id thiết bị duy nhất.Hiệu suất của InfluxDB
Số liệu được ghi vào InfluxDB theo cách sau. Ở đây tôi chỉ hiển thị một ví dụ như
new Serie.Builder("perfmetric1")
.columns("time", "value", "id", "type")
.values(getTime(), getPerf1(), getId(), getType())
.build()
Ghi dữ liệu nhanh và dễ dàng. Nhưng tôi thấy hiệu suất kém khi chạy truy vấn. Tôi đang cố gắng nhận được tất cả 15 giá trị chỉ số trong một giờ qua.
select value from perfmetric1, perfmetric2, ..., permetric15
where id='testdeviceid' and time > now() - 1h
Đối với một tiếng đồng hồ, mỗi chỉ số có 120 điểm dữ liệu, trong tổng số đó là 1800 điểm dữ liệu. Truy vấn mất khoảng 5 giây trên phiên bản c4.4xlarge EC2 khi không hoạt động.
Tôi tin rằng InfluxDB có thể làm tốt hơn. Đây có phải là vấn đề về thiết kế lược đồ của tôi hay không? Chia tách truy vấn thành 15 cuộc gọi song song có đi nhanh hơn không?
Cảm ơn bạn đã phản hồi nhanh! Tôi khá mới với InfluxDB, về cơ bản chỉ là thử nghiệm. Tất cả đều có ý nghĩa. Tôi hơi ngạc nhiên vì đây có vẻ là một trường hợp sử dụng rất phổ biến. Lập chỉ mục thẻ là điều gì đó mới mẻ đối với phiên bản 0.9.0 - Tôi đang chạy phiên bản 0.8.8 ổn định tại thời điểm này. "Để bật những thứ như thẻ và tra cứu nhanh trên các giá trị cột cụ thể, chúng tôi sẽ thêm hỗ trợ cho chỉ mục cột. Dưới đây là vấn đề theo dõi chỉ mục cột". –
phần mềm ở trạng thái phát triển alpha nên rất nhiều thứ bị thiếu và rất nhiều lỗi – valentin