2017-09-20 1 views
0

나는 현재 우리의 응용 프로그램에 대한 기능의 레이아웃에 대해 생각하고이 지금까지 가장 무거운 부분입니다 때문에, 내가 디자인하는 방법을 잘 모르겠습니다 데이터 3GB의 처리 :자바 스크립트 - 일반 계산

우리가 원하는 사용자는 대형 데이터 세트에 대해 가정을 역행 할 수있는 가능성을 제공합니다.

  • 데이터 세트는
  • 그것은 계산에 사용 가능한 전에 (형식이 변경 될 필요가) 사전 처리해야합니다 3기가바이트 큰 (JSON) 이상
  • 그것은 큰 내 주제로 작은 파일로 분할 될 수있다 데이터 세트는 분리 가능합니다.

처음에는 우리 가게의 전체 파일을 읽고 생각했습니다. 나는 기억이 살아남을 것이라고 의심하기 시작했다. (어떤 종류의 소비가 가정 할 것인가?)

내가 대안으로 생각한 대안은 파일에서 직접 읽는 것이지만, 그 다음에는 250mb의 자바 스크립트를 쪼개거나 스트리밍해야합니다 (좋은 생각?).

코드를 작성하기 전에 Javascript에서 가장 효율적으로 이러한 종류의 방대한 데이터에 접근하는 방법을 알고 싶습니다. 지금은 모든 것이 가능합니다.

감사합니다. Jan

+2

데이터베이스 사용을 고려 했습니까? – connexo

+0

할 것입니다, 예 –

답변

3

데이터를 데이터베이스와 서버로 옮깁니다. 개인적으로 앱 내에서 호출 할 데이터베이스의 데이터를 수정하는 RESTful API를 만들 것입니다.

자바 스크립트로 작성 중이므로 RESTful API에 대한 노드 서버를 만들고 SQL 또는 noSQL과 같은 데이터베이스에 데이터를 저장할 수 있습니다. 그런 다음 json 파일에서 데이터를 가져 와서 데이터베이스에 저장하십시오.

모든 다른 데이터베이스 유형을 조사하고 데이터베이스를 사용하여 데이터를 조작하고 보관하는 것이 좋습니다. 큰 문제는 관계형 데이터베이스와 비 관계형 데이터베이스입니다. 자세한 내용은 다음을 참조하십시오. http://jlamere.github.io/databases/

+0

좋은 답변 주셔서 감사합니다! 데이터는 실제로 우리의 firebase에서 유래하지만 거기에서 읽는 것은 너무 비쌀 것입니다. 아마존 서버에 mongodb를 설치하고 거기에서 데이터를 읽을 것입니다. 저장소에 저장하는 데 필요한 데이터의 양 또는 모든 요청에 ​​대해 db를 사용해야합니까? 또한 데이터를 캐시하는 것이 유용할까요? 그렇다면 어떻게 적용 할 수 있습니까? 다시 한번 감사드립니다! –

+0

@JanRuno 데이터베이스의 모든 데이터를 최신 데이터로 유지하고 사용자가 데이터를 호출하면 로컬 데이터를 캐시하는 것이 가장 좋습니다. 사용자가 데이터 클라이언트 측을 수정하면 서버 데이터베이스에 업데이트를 보냅니다. 데이터가 서버에서 변경된 경우에도 다른 방식으로 작동 할 수 있습니다. 그런 다음 캐시 된 데이터가 최신 상태가되도록 새 정보를 사용자에게 보냅니다 (소켓이 가장 좋음). 내 응용 프로그램이 부팅 할 때 서버의 모든 정보를 가져 와서 socket.io를 사용하여 소켓에 연결합니다. 정보가 변경되면 새로운 정보를 얻고 새로운 정보를 보내는 스트림이 생깁니다. 더 복잡해 지지만 그게 한 방법입니다. – Avery246813579