데이터베이스 관점에서 실시간 데이터를 처리하는 방법은 무엇입니까?


14

나는 생각을 가지고 있지만 여전히 데이터베이스 영역을 혼란스럽게합니다 .

실시간 데이터를 표시 하고 최신 브라우저 기술 중 하나 ( 웹 소켓 - 이전 브라우저를 사용하는 경우)를 사용하여 모든 관찰 대상 (사용자 브라우저)에게 모든 사람이하는 일을 매우 쉽게 보여줄 수 있다고 상상해보십시오 .

Remy Sharp 는이것에 대한 단순성에 대한 를가지고있습니다.

그러나 나는 여전히 데이터베이스 부분을 얻지 못합니다. 어떻게 피드 할까요? (Remy game Tron을 사용하여) 연결된 각 사용자의 경로를 데이터베이스에 저장하고 클라이언트가 무슨 일이 일어나고 있는지보고 싶다고 상상해 봅시다. 5 초 지연 , 그는뿐만 아니라 그 순간까지 5 초하지만를 볼 시간에 계속을 ...

그런 DB를 어떻게 쿼리 할 수 ​​있습니까?

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

권장 경로가 아닌가?

이 x를 x 시간에 당기면 ...이 실제 데이터 피드가 맞지 않습니까?

누군가가 데이터베이스 관점을 이해하도록 도울 수 있다면 크게 감사하겠습니다.

답변:


7

관계형 데이터베이스는 관계에 최적화되어 있습니다. 시계열 데이터베이스 는 시간에 따라 변하는 일련의 값을 저장하고 작업하는 데 최적화되어 있습니다. 산업계에서는이를 "역사"라고 부릅니다. 아마도 가장 유명한 것은 OSI의 PI 일 것 입니다.

특정 지점에 대한 값을 저장하지 않은 경우 (알려진 지점간에 보간 할 수있는 경우에도) 특정 시점에 대해 일련의 신호를 쿼리 할 수 ​​있습니다.

그러나 각 쿼리는 단일 시점 만 제공합니다. 여전히 설문 조사를해야합니다.

시계열 데이터베이스 테마에서 계속해서 openPDC를 확인하십시오 (Phasor Data Concentrator는 전기 그리드에 고유하지만 시계열 역사가입니다). 구체적으로,이 인용문은 :

로컬 히스토리 안 아카이브에서 이벤트를 재생하고 큰 데이터 세트를 추출하는 데 사용할 수있는 스트리밍 재생 유틸리티

그것은 정말로 당신이 원하는 것입니다 ... 일종의 재생 메커니즘.

나는 당신이 정말로 데이터베이스를 원한다고 생각하지 않습니다. 많은 FIFO가 필요합니다.


7

실시간과 데이터베이스는 서로 관련이 없습니다.

레이더 (및 히트 펌프 및 선박 제어 시스템)를 만들었을 때 실시간 데이터가 전적으로 버퍼와 공유 메모리에 있다는 것을 알게되었습니다.

데이터는 후속 분석 및 검색을 위해 데이터베이스로 전송 될 수도 있습니다. 볼륨은 작아야하므로 요약 또는 요약 또는 데이터 샘플이 영구 스토리지로 이동합니다.

그러나 실제 실시간 데이터는 신뢰성을 위해 메시지 대기열을 통해 네트워크를 통해 흐르거나 즉각적인 (취약한) 알림을위한 UDP 패킷을 통해 흐릅니다.


4

이 질문을 우연히 발견하면이 잘못에 대해 생각하고 있다고 생각하며 다른 답변은 실제로 문제를 강조하지 않습니다.

데이터베이스를 망치는 것은 실제로 좋은 생각이 아닙니다. 나는 당신이 이것을 깨달았다 고 확신하지만 다른 사람들은 그렇지 않을 수도 있습니다. 내 친구가 반 실시간 게임을 위해 루프에서 PHP 스크립트와 Javascript AJAX 함수를 사용하려고 시도한 것을 기억합니다. 그는 더 많은 사람들이 참여함에 따라 성능이 저하되었다는 사실을 매우 빨리 깨달았습니다. 이는 단순히 데이터베이스를 망치는 초당 많은 쿼리를 실행했기 때문입니다.

내가 보는 것처럼 사용자와 데이터베이스 사이에 오래 실행되는 응용 프로그램이 있어야합니다. 사용자는이 애플리케이션에 직접 연결하여 모든 정보를 앱에 전달합니다. 이 응용 프로그램은 즉시 연결된 모든 사람에게 정보를 복사합니다. 매우 가벼운 앱, 적은 트래픽 및 실시간으로로드됩니다.

데이터베이스를 사용해야하는 경우 앱은 백그라운드 업데이트 대기열에서이를 처리해야합니다. 분명히 게임의 사용자 위치와 같은 작은 정보 벽으로 데이터베이스를 망치지 않기 위해 저장 한 것을 선택하고 선택하면 시작한 것과 같은 문제가 다시 발생합니다. 와. 위치 대신, 5 초 이상 이동 한 거리 또는 더 의미있는 정보 비트


1

이 사이트에는 "실시간"기능이 있습니다. 많은 트래픽이 많은 사이트가 웹 서버와 데이터베이스 사이에 많은 장난감을 가지고 있음을 알 수 있습니다. Redis는 데이터를 메모리에 보관하는 데 사용할 수있는 것입니다. 다양한 스택에 대한 다른 것들이 있다고 확신합니다.

Firebase.com은 훌륭한 실시간 데이터 서비스라고 생각합니다 (실제 데이터베이스 백엔드에 대해 무엇을하는지 확실하지 않지만 서비스를 제공하기 때문에 호기심 이상으로 신경 쓰지 않을 것입니다).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.