해결된 질문
작성
·
113
0
안녕하세요.
IoT Device들의 데이터를 받아서 값들이 조건을 만족하면 이벤트를 발생시키는 개발업무에 있습니다.
그래서 streaming 분석솔루션을 찾던도중 ksqlDB관련을 접하게되었습니다.
강의를 간단하게 훑어보고 ksqlDB 솔루션을 적용해보고싶은데 궁금한점이있어서 질문 드립니다.
IoT Device의 개수가 많을 경우에 각각의 Device의 걸어주어야하는 조건이 다양해질수있습니다.
만약에,A device의 조건은 해당 값이 10이 넘어가면 이벤트 발생 그리고 B device의 조건은 값이 15가 넘어가면 이벤트발생 이런식으로 구성될수있습니다.
각 Device마다 고유한 조건이 있기때문에 많은 stream이 생성될수있습니다.
또한 E Device에서 발생한 이벤트 와 J Device에서 발생한 이벤트를 조인해서 새로운 stream을 만들어주어야할때도있습니다.
디바이스가 많고 이벤트처리 흐름이 복잡해질수록 stream,table,Mview가 많이 생길수 있기때문에 성능에대한 우려가 있습니다.
물론 H/W나 traffic, SQL문의 복잡도,네트워크구성등 성능에 미치는 요인들이 많기때문에 성능이 어떻다는 확실히 답변하기 어려울것같긴합니다.
결론은 데이터스트리밍 분석을 위해 많은 stream,table,Mview 작성해도 성능 이슈가 크게 발생하는지(몇백 혹은 몇천개단위). 만약 성능이 부족하다면 kafka를 scale out,up하면 나아질수있는지도 궁금합니다.
강의를 전체적으로 훑는식으로봐서 자세히 듣지못해 틀린부분이 있을수있지만, 부족한점 참고하여 봐주시면 감사하겠습니다.
답변 1
1
안녕하십니까,
오, 대용량 IOT Streaming 데이터 처리를 수행하시는 군요. IOT 데이터 분석은 Kafka와 KSQLDB로 잘 수행하실 수 있을 것 같습니다.
다만 데이터스트리밍 분석을 위해 많은 stream,table,Mview(말씀하신 몇백개 수준) 작성하면 I/O 성능이 (당연히 ^^) 떨어집니다. 때문에 Kafka가 이처럼 대용량 데이터 처리를 위해서 분산 처리 메커니즘으로 되어 있습니다. 어느정도 부하가 들어오실지 모르신다고 말씀하셨는데, 성능이 떨어지는 부분은 초기 부하량과 이후 증가량을 개괄적으로 산정하신 후 이후에는 Scale out/up 등으로 성능 개선에 유연하게 대응하시면 좋을 것 같습니다.
감사합니다.