harpy2
-10
2020-11-05 12:03:00
5
260

실시간 대량 데이터를 RDB로 넣을 때 효율적인 방법이 궁금합니다


초당 2~3000건의 데이터가 들어오고

이를 시간단위 통계로 표현하기 위해 RDB에 쌓고 있습니다

데이터 성격은 시간, 페이지뷰 카운트, 좋아요 카운트, 싫어요 카운트 등 시계열 데이터입니다

대시보드에는 5분마다 집계된 데이터가 확인이 되야합니다


현재 방식은 정말 원초적이게도 Java에서 시간별 List에 담아두었다가

3분마다 DB에 insert(or update)를 하고 있는데요


List에 담아두는 형식이 별로인 것 같아 다른 방식으로 고려중입니다

1. 파일로 쓰고 RDB에 bulk insert or update

2. logstash 서버에 tcp로 보낸 후 insert or update

3. 각 서버에 redis 올린 후 incr명령으로 각 항목을 카운팅하고 3분마다 RDB에 update

 

이런 상황일때 어떤 방식이 좋을까요?

1
  • 답변 5

  • 얻으민
    1k
    2020-11-05 12:47:19
    Kafka나 MQ 쓰시는게 좋아보이네요.
  • 지붕뚫고높이차
    1k
    2020-11-05 13:24:35

    최종 목적지가 RDB면

    1번이 가장 좋을 것 같은데


    실제 어떤지 궁금하긴 하네요.



  • Megi
    20
    2020-11-05 15:02:23
    데이터 수집/가공이 목적이시라면 fluentd 추천합니다!
  • esrse
    1k
    2020-11-05 15:19:50

    지금 동작하는 방식으로 문제 없이 잘 동작하는 거 같은데, 그냥 놔두는 걸 추천합니다.


  • harpy2
    -10
    2020-11-05 15:34:37

    모두 답변 감사합니다

    의견주신 내용 잘 검토해볼게요


    사실 현재의 방식도 문제는 없지만 더 견고하게 하고 싶어서 질문을 올렸는데

    지인도 esrse님 말처럼 그대로 두는게 좋아보인다는 의견을 주네요

    감사합니다

  • 로그인을 하시면 답변 을 등록할 수 있습니다.