Làm thế nào để xử lý dữ liệu thời gian thực từ góc độ cơ sở dữ liệu?


14

Tôi có một ý tưởng trong đầu, nhưng nó vẫn làm tôi bối rối khu vực cơ sở dữ liệu .

Hãy tưởng tượng rằng tôi muốn hiển thị dữ liệu thời gian thực và sử dụng một trong những công nghệ trình duyệt mới nhất ( ổ cắm web - thậm chí sử dụng trình duyệt cũ hơn ), rất dễ dàng để hiển thị cho tất cả mọi người quan sát (trình duyệt người dùng) những gì mọi người đang làm.

Remy Sharp có một ví dụ về sự đơn giản về điều này.

Nhưng tôi vẫn không nhận được phần cơ sở dữ liệu, tôi sẽ cho ăn như thế nào , hãy tưởng tượng (sử dụng trò chơi Tron của Remy) rằng tôi muốn lưu đường dẫn cho mỗi người dùng được kết nối trong cơ sở dữ liệu và nếu khách hàng muốn xem những gì đang xảy ra với một chậm trễ 5 giây , anh ta sẽ thấy rằng, không chỉ là 5 giây cho đến thời điểm đó, nhưng việc tiếp tục trong thời gian ...

Làm thế nào tôi có thể truy vấn một DB như vậy?

SELECT x, y FROM run WHERE time >= DATEADD(second, -5, rundate);

không phải là con đường được đề nghị phải không?

và kéo x này trong x thời gian ... đây không phải là nguồn cấp dữ liệu thực sự chính xác?

Nếu ai đó có thể giúp tôi hiểu quan điểm Cơ sở dữ liệu, tôi sẽ đánh giá rất cao.

Câu trả lời:


7

Cơ sở dữ liệu quan hệ được tối ưu hóa cho các mối quan hệ. Cơ sở dữ liệu chuỗi thời gian được tối ưu hóa để lưu trữ và làm việc với một loạt các giá trị thay đổi theo thời gian. Trong thế giới công nghiệp, họ gọi những "Nhà sử học" này. Có lẽ nổi tiếng nhất là PI của OSI .

Bạn có thể truy vấn trên một tập hợp các tín hiệu cho một thời điểm nhất định, ngay cả khi nó không lưu trữ giá trị cho điểm cụ thể đó (nó có thể nội suy giữa các điểm đã biết).

Tuy nhiên, mỗi truy vấn chỉ cung cấp cho bạn một điểm duy nhất trong thời gian. Bạn vẫn phải bỏ phiếu.

Tiếp tục với chủ đề cơ sở dữ liệu chuỗi thời gian, hãy xem openPDC (Bộ tập trung dữ liệu Phasor dành riêng cho lưới điện, nhưng nó là một nhà sử học theo chuỗi thời gian). Cụ thể, trích dẫn này:

tiện ích phát lại trực tuyến có thể được sử dụng để phát lại các sự kiện từ kho lưu trữ lịch sử địa phương và trích xuất các bộ dữ liệu lớn

Đó thực sự là những gì bạn muốn ... một số loại cơ chế phát lại.

Tôi không nghĩ rằng bạn thực sự muốn có một cơ sở dữ liệu. Bạn muốn có một loạt các FIFO.


7

Thời gian thực và cơ sở dữ liệu không có gì để làm với nhau.

Khi tôi chế tạo ra radar (và máy bơm nhiệt và hệ thống điều khiển tàu) tôi đã học được rằng dữ liệu thời gian thực sống hoàn toàn trong bộ đệm và bộ nhớ dùng chung.

Dữ liệu cũng có thể được gửi đến cơ sở dữ liệu để phân tích và truy xuất tiếp theo. Âm lượng phải nhỏ, do đó, tóm tắt hoặc thông báo hoặc mẫu dữ liệu sẽ được lưu trữ liên tục.

Tuy nhiên, dữ liệu thời gian thực thực tế chảy qua mạng thông qua hàng đợi tin nhắn cho các gói tin cậy hoặc UDP để thông báo tức thời (nhưng có thể dễ vỡ).


4

Việc vấp phải câu hỏi này tôi nghĩ bạn đang nghĩ về điều này sai và những câu trả lời khác không thực sự làm nổi bật vấn đề.

Xây dựng cơ sở dữ liệu của bạn không thực sự là một ý tưởng tốt. Trong khi tôi khá chắc chắn rằng bạn đã nhận ra điều này, những người khác có thể không có. Tôi nhớ một người bạn của tôi đã cố gắng sử dụng tập lệnh php và hàm AJAX Javascript trong một vòng lặp cho trò chơi bán thời gian thực. Anh ta rất nhanh chóng nhận ra rằng hiệu suất bị suy giảm khi có nhiều người tham gia, đơn giản là vì anh ta đang thực hiện hàng tấn truy vấn mỗi giây làm hỏng cơ sở dữ liệu.

Theo cách tôi thấy, cần phải có một ứng dụng chạy dài nằm giữa người dùng và cơ sở dữ liệu. Người dùng kết nối trực tiếp với ứng dụng này và chuyển tất cả thông tin của nó đến ứng dụng. Ứng dụng này họ ngay lập tức sao chép thông tin cho mọi người kết nối với nó. Điều này tải đến một ứng dụng rất nhẹ, lưu lượng truy cập ít và thời gian rất thực.

Nếu bạn phải sử dụng cơ sở dữ liệu, thì ứng dụng phải xử lý việc này trong hàng đợi cập nhật nền. Rõ ràng bạn cần chọn và chọn những gì bạn lưu vì bạn không muốn đập cơ sở dữ liệu bằng một mẩu thông tin nhỏ (như vị trí hiện tại của người dùng trong trò chơi), điều này đưa bạn trở lại cùng một vấn đề bạn đã bắt đầu với. Thay vì vị trí, khoảng cách lưu trữ di chuyển trên 5 giây hoặc các thông tin có ý nghĩa khác


1

Trang web này có một số tính năng "thời gian thực". Bạn sẽ thấy rằng nhiều trang web có lưu lượng truy cập cao có nhiều đồ chơi giữa máy chủ web và cơ sở dữ liệu. Redis là thứ bạn có thể sử dụng để giữ dữ liệu trong bộ nhớ. Tôi chắc chắn có những người khác cho các ngăn xếp khác nhau.

Tôi nghĩ Firebase.com là một dịch vụ dữ liệu thời gian thực tuyệt vời (Không chắc họ làm gì cho phần cuối cơ sở dữ liệu thực tế, nhưng vì họ phục vụ nó, tôi không chắc là tôi thực sự quan tâm đến sự tò mò.).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.