ㅡ. 시작

클라우드 pub/sub 을 이용합니다. (서버리스 실시간 메시지 서비스)

클라우드 pub/sub 의 기능은 초당 백만 개 이상의 메시지로 확장시킬 수 있습니다. 

 

전체 데이터 플로우는 빅쿼리 이벤트 테이블에서 데이터를 읽어들여서 클라우드 pub/sub로 메시지를 송신하는 것을 의미합니다. 

pub/sub으로 전송되는 코드가 실패할경우에 자동으로 재시작할 수 있도록 구글 컨테이너 엔진을 사용해 도커 컨테이너에서 시뮬레이션을 스크립트를 다시 재시작 해야 합니다. 

 

 

ㅡ. workflow

bigQuery에서 데이터를 불러와서 topic에 넣고 subscription 에서는 topic의 내용을 받아와서 dataflow로 ETL처리후에 bigQuery로 내보내는 과정을 수행합니다.

 

ㅡ. 정지시간

pub/sub에 통지하는 처리에는 네트워크 호출이 포함되어 있어서 응답 시간에 영향을 줍니다. 기록을 누적할 시간을 부여 하기 위해서 초반에 정지 시간이 1초 이상인지를 항상 체크한다. (*코드를 실행하는 머신의 능력과 구글 클라우드 플랫폼 간의 네트워크가 너무 크면 문제가 발생하게 됩니다. -solution, 구글 방화벽 뒤에서 실행 or 컴퓨터 엔진 인스턴스로 실행)

 

ㅡ. 이벤트 누적

함수를 생성해서 정지 호출 사이에 이벤트를 누적해야 한다. 토픽에 대해 분리되서 일괄처리하는 방법을 알고 publisher 에서 pub/sub으로 전송해야 한다. 

pub/sub은 순서를 보장하지 않는다. 순서에 대한 이슈는 dataflow로 처리한다.

*ref : https://cloud.google.com/solutions/mobile/mobile-gaming-analysis-telemetry

데이터 스튜디오는 빅쿼리에 접속과 실시간 대화형 대시보드를 제공해준다. 

 

아파치 빔의 파이썬 API는 스트리밍을 지원하지 않으므로 자바를 통해서 구현해야 한다. 

자바로 돌리기 위해서는 메이븐과 자바 8이 모두 설치되어 있어야 한다. 

 

고민해야 할 것은 얼마나 자주 60분 평균을 계산해야 할지,