빅데이터 저장 및 클라이언트 푸시?
글쓴이: k1259cik / 작성시간: 수, 2015/12/09 - 3:37오후
안녕하세요.여기에 글을 처음 올리네요~
이번에 프로젝트를 하나 진행하는데.. 어떤 기술을 사용해야 할지...감이 잡히지 않아 문의드립니다.
사용자 위치정보를 서버에 데몬이 받아 DB에 저장하는하는데요 1초에 2회정도 발생합니다.
(엄청나게..많겠죠 ㅠㅠ)
1) 인원이 많게는 몇 천정도되는데 이정보를 한번에 어케 DB에 넣을 수 있을까요?
2) 저장 하기전 위치정보는 클라이언트(PC)화면에 찍어주어야 합니다.
서버단에서 계속 움직이는 인원정보를 Push하여 갱신 해줘야 하는데..
Server Sent-Event를 사용하고, 서버에는 어떻해 개발해야 할까요? 어떤 언어?, 어떤기술?
여러명이 해당 페이지에 붙으면, 서버에 무리를 주지 않고..?
3) 또 데이터중 특정 상황을 분석해서 클라이언트(PC, Mobile)에 Push도 해줘야 합니다.
어떤식으로 시스템 구성을 잡아야 할지..전문개발자가 아니다..보니.감이 오지 않네요~
고수님들에 자문을 요청드립니다.
Forums:
가능한 방법을 적어봅니다.
- 네이버 다음 카페.
- 지역별 직업학교. 대학교. 창업보육센터. 전문대. 학원. 소프트웨어 진흥원.
- 도서관. 서점
- 공개SW.
http://www.oss.kr/
- OLC 센터.
http://olc.kr/main/index.jsp
- GIS 프로그래밍
http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nexearch&query=GIS+%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D
- GPS 프로그래밍
http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nexearch&query=GPS+%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D
웹, 모바일웹, 앱 프로그래밍 - 지도(Map) 구현
http://book.naver.com/bookdb/book_detail.nhn?bid=8222278
모바일 GIS 프로그래밍
http://book.naver.com/bookdb/book_detail.nhn?bid=7125650
- Erlang 멀티 프로세스 서버
- Apache 서버
- 메모리 DB를 사용하는 MySQL
- 다음. 네이버. 구글. 공공. AWS. OpenAPI.
MMORPG 서버 프로그래밍
http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nexearch&query=MMORPG+%EC%84%9C%EB%B2%84+%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D
MMORPG 게임 프로그래밍
http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nexearch&query=MMORPG+%EA%B2%8C%EC%9E%84+%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D
CCNA
http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nexearch&query=CCNA
DNS 장애
http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nexearch&query=DNS+%EC%9E%A5%EC%95%A0
VLAN 장애
http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nexearch&query=VLAN+%EC%9E%A5%EC%95%A0
보안
http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nexearch&query=%EB%B3%B4%EC%95%88
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
글세요..너무 광범위에서 .^^;;
좀 세부적인 기술명등을 원하는 건데..너무광범위 하네요.
SK 플래닛도 서비스중인것이 있네요.
Proximity SDK - T map SDK - T map Reverse Geocoding API - Beacon
https://developers.skplanetx.com/
통합 개발자 센터
http://dev.onestore.co.kr/devpoc/index.omp
올레맵 API
KT │ 올레맵 │ https://www.ollehmap.com │ 유료
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
> 1) 인원이 많게는 몇 천정도되는데 이정보를
> 1) 인원이 많게는 몇 천정도되는데 이정보를 한번에 어케 DB에 넣을 수 있을까요?
요즘 하드웨어 수준에서(단일 PC서버기준) 몇 천명 정보는 많은 정보가 아닙니다. 초당 2건정도에 1만명이라고 해도, 2만건 정도로 대략 예상되며, 한 레코드의 크기가 1KB 정도라고 볼때, 특별한 기술없이도 처리 가능한 수준이라고 보입니다.
단지, 저장은 큐잉을 하여 어느 정도 레코드가 누적되거나, 일정 주기가 되면 데이터베이스에 저장하는게 유리하겠습니다.
방법은 (1) Bulk Insert (2) Host Array방식이 대표적입니다. 두방식 다 SQL문장의 파싱 오버헤드를 줄이는 기법을 사용한 것이라 하겠습니다.
최근의 통상적인/평범한 하드웨어(commondity hw)에서 단일 쓰레드 모델인 경우, 특별한 튜닝없이 대충해도 인덱스 없이 30만건/sec 데이터 저장이 가능합니다. 하기에 달렸지만, 더 올릴 수도 있겠지요.
제시하신 문제는 충분히 처리가 가능하리라고 예측이 됩니다. 단지, 인덱스등을 사용한다면 전문가의 튜닝이 필요할 수 있습니다.
> 2) 저장 하기전 위치정보는 클라이언트(PC)화면에 찍어주어야 합니다.
> 서버단에서 계속 움직이는 인원정보를 Push하여 갱신 해줘야 하는데..
> Server Sent-Event를 사용하고, 서버에는 어떻해 개발해야 할까요? 어떤 언어?, 어떤기술?
> 여러명이 해당 페이지에 붙으면, 서버에 무리를 주지 않고..?
다음과 같은 토폴로지로 프로세스를 구성하는게 좋겠습니다.
데이터생산자(다수) -> 데이터브로커 ->(1.저장소, 2. 실시간모니터링, 3. 실시간분석기) -> 푸시서버 -> (필요한 클라이언트)
1) 데이터브로커가 저장소에 보내고 저장소는 이를 데이터베이스등에 저장한다.
2) 데이터브로커가 실시간모니터링에 보내고, 실시간모니터링은 필요한 사항에 대해 모니터링한다.
- 모니터링한 결과를 푸시서버에게 전달하고, 푸시서버는 큐잉을 할 수 있으며, 푸시서버는 필요한 클라이언트에게 전송을 개시한다. 푸시서버를 별도록 둔 이유는 클라이언트에 전달하는 메카니즘(라인속도, 클라이언트의 성능등)으로 인해 다른 구성요소가 영향을 받지 않게 하기 위함이다.(예를 들어 실시간분석기등이 블록되는 것을 방지)
3) 언어나 기술은 개발자가 편리한대로 하는게 좋겠지요.
4) 동시 접속자가 수십 명인 경우는 별로 문제가 되지는 않으나, 수백 명이상인 경우라면 고려가 필요합니다. 클라이언트가 서버에 '특정연산'을 요청할 수 없게하며, 미리 정의된 내용에 대해서만 조회하게 하면 서버에 부하가 덜 할 수 있습니다/적어도 부하를 예측할 수 있다는 것입니다.
> 3) 또 데이터중 특정 상황을 분석해서 클라이언트(PC, Mobile)에 Push도 해줘야 합니다.
2)에서 이미 말씀드렸네요.
* 좋은 제품 만드시길......
댓글 달기