Ứng dụng sẽ liên tục (khoảng mỗi giây) thu thập vị trí của người dùng và lưu trữ chúng.
Dữ liệu này được cấu trúc. Trong cơ sở dữ liệu quan hệ, nó sẽ được lưu trữ dưới dạng:
| user | timestamp | latitude | longitude |
Tuy nhiên, có quá nhiều dữ liệu. Sẽ có 60 × 60 × 24 = 86.400 hồ sơ cho mỗi người dùng, hàng ngày. Ngay cả với 1000 người dùng, điều này có nghĩa là 86.400.000 hồ sơ hàng ngày.
Và nó không chỉ là 86.400.000 hồ sơ hàng ngày. Bởi vì những hồ sơ này sẽ được xử lý và các phiên bản được xử lý của chúng cũng sẽ được lưu trữ. Vì vậy, nhân số đó với khoảng 2.
Tôi dự định sử dụng dữ liệu như thế nào
Về cơ bản, tôi có kế hoạch tạo ra các phiên bản hạt thô của dữ liệu vị trí để tiêu thụ dễ dàng hơn. Đó là:
- Sắp xếp các dấu thời gian wrt dữ liệu nhận được.
- Sắp xếp theo danh sách này theo thứ tự, xác định xem vị trí có thay đổi đáng kể không (bằng cách kiểm tra xem vĩ độ và kinh độ thay đổi bao nhiêu)
- Biểu thị các thay đổi vị trí không đáng kể dưới dạng một mục nhập trong đầu ra (do đó, đầu ra là phiên bản chi tiết thô hơn của dữ liệu vị trí).
- Lặp lại quá trình này trên đầu ra, bằng cách yêu cầu thay đổi kinh độ và vĩ độ thậm chí còn lớn hơn để thay đổi đáng kể. Do đó, đầu ra được sản xuất từ đầu ra trước sẽ thậm chí còn thô hơn.
- Lặp lại toàn bộ quá trình nhiều như cần thiết.
- Tổng hợp một loạt các nghị quyết và gửi chúng cho người dùng. Ngoài ra, lưu trữ tất cả các độ phân giải của dữ liệu để tiêu thụ sau này.
Tôi nên sử dụng gì để lưu trữ dữ liệu này? Tôi nên sử dụng cơ sở dữ liệu quan hệ hoặc giải pháp NoQuery? Những điều khác tôi nên xem xét khi thiết kế ứng dụng này?