0

Google 데이터 스토어 nosql 스타일 테이블에 실시간 데이터를 실시간으로로드하는 Google 앱 엔진 애플리케이션이 있습니다. 이 데이터를 웹 응용 프로그램 스타일 차트로 끌어 올 수있는 적합한 유형의 아키텍처에 대한 피드백을 얻고 싶습니다. Word Press와 같은 콘텐츠 관리 시스템에 연결할 수도 있습니다.Google 데이터 스토어에서 webapp에 차트 데이터로드

대부분의 서버 측 코드는 python입니다. 데이터 저장소 데이터베이스에서 데이터를 가져 와서 내 웹 페이지에 표시하는 합리적인 클라이언트 - 서버 설정은 무엇입니까? 이상적으로는 데이터베이스에 불필요한 수의 읽기를 발생시키지 않는 비 슷한 점이 있습니다 (잠재적으로 google-app-engine의 캐싱/내장 등을 사용).

일반적인 사용 사례 인 것으로 추측하고 있지만이 문제를 해결하기위한 모범 사례가 무엇인지 생각해보고 싶습니다. 나는 클라이언트 측 웹 자바 스크립트/아약스를 사용하여 서버 측 PHP에서 DB를 읽는 몇 가지 예를 보았는데 이것이 가장 좋은 방법인가?

답변

0

"it depends"에 오신 것을 환영합니다.

몇 가지 선택 사항이 있습니다. 클래식 사분면 차트를 상상해보십시오. 하나의 축을 따라 데이터 크기가 있으며, 다른 하나는 staleness/신선도입니다.

시간 흐름 데이터가 빠르게 변경되지만 요청 내에서 안전하게 검색 할 수있을만큼 작 으면 요청에 따라 쿼리하고 JSON으로 변환 한 다음 브라우저로 보내 JavaScript 차트에서 렌더링 할 수 있습니다 원하는 패키지. 데이터가 큰 경우 앱에서 일종의 서버 측 사전 처리를 수행해야 데이터가 필요할 때 요청이 시간 초과되지 않는 요청을 충분히 줄일 수 있습니다. 여기에는 시계열 사전 버킷 팅과 같은 데이터 의존성이 포함될 수 있습니다.

데이터가 천천히 변경되면 matplotlib을 사용하여 서버 측에서 차트를 생성 할 수 있습니다. 새로운 데이터가 수집되거나 간격을 두어 태스크가 생성되면 데이터 저장소의 BLOB로 차트 (또는 JSON이 프런트 엔드에 전달됨)를 생성 및 캐시합니다. 데이터가 충분히 커서 작업이 시간 초과되는 경우 백엔드 프로세스를 사용해야 할 수 있습니다. 데이터가 충분히 크고 사전 처리하지 않으면 불만의 한 부분을 차지하게됩니다.

내 경험상 GAE memcache는 요청 간의 시간이 매우 짧은 요청간에 데이터를 캐싱하는 데 가장 적합합니다. 이슈 생성에 의존하지 말고, memcache에 넣고, 몇 분 후에 거기에있을 것을 기대하십시오. 나는 그 일을 거의 보지 못했다.