본문 바로가기
SingleStoreDB/웨비나

ML을 위한 SingleStore와 Spark의 활용

by 에이플랫폼 [Team SingleStore Korea] 2019. 8. 1.

샌프란시스코에서 열린 스파크 서밋(Spark Summit)에서 전 세계에 설치된 20만 개의 풍력 터빈에 200만 개 이상의 센서로부터 데이터를 처리하고 분석하는 PowerStream 쇼케이스 애플리케이션을 조명해 봤습니다. 당사의 PowerStream 엔지니어인 John Bowler와 함께 SingleStore와 Apache Spark 솔루션의 통합에 대한 그의 작업 내용에 대해 논의 했습니다.


SingleStore와 Spark은 무슨 관계가 있나?

그 핵심으로 SingleStore는 데이터베이스 엔진이고, Spark는 데이터를 변환하기 위해 코드를 작성하는 강력한 옵션입니다. Spark는 SingleStore에 데이터가 도착하기 전이나 후에 데이터에 대해 임의 연산을 실행하는 툴입니다.

SingleStore와 Spark 통합의 첫 번째 구성요소는 오픈 소스 라이브러리인 SingleStore Spark 커텍터입니다. 이 커넥터를 활용하여 분산 연산 처리 언어로 Spark를 사용하고, 분산 처리 및 스토리지 엔진으로 SingleStore를 사용할 수 있습니다.

Spark에 익숙한 사람들을 위해, SingleStore Spark 커넥터가 SingleStore와 Spark 간의 긴밀한 통합을 가능하게 하는 방법은 다음과 같습니다:


SingleStore Context.sql("SELECT * FROM t")를 사용하면 SingleStore 테이블에 연결이 되는 Spark에서 DataFrame을 생성할 수 있습니다. 여러 SparkSQL 작업을 묶은 후, 결과에서 collect()를 호출할때, 이러한 DataFrame 작업이 SingleStore 데이터베이스 엔진에서 SQL 쿼리로 직접 실행이 됩니다. SingleStore의 SQL 최적화 특성으로 인해 성능이 크게 향상 될 수 있습니다.

df.saveToSingleStore()를 사용하면 DataFrame을 가져 와서 SingleStore에 쉽게 보관 할 수 있습니다.


SingleStore와 Spark 통합의 두 번째 구성 요소는 Spark 커넥터 위에 구축된 Streamliner입니다. Streamliner을 사용하면 Spark을 고급 언어로 사용하여 새로운 데이터에서 실시간으로 실행되는 추출, 변환, 로딩(ETL) 파이프 라인을 만들 수 있습니다.

데이터를 최대한 빨리 수집하고 정보를 즉시 조회해야 하는 아주 흔한 니즈(Need)를 중심으로 Streamliner를 제작했습니다. Streamliner를 사용하면 다큐멘트 파싱, 머신러닝 모델 스코어링이나 비즈니스에 필요한 사항과 같은 실시간 데이터 분석 파이프라인의 로직을 작성하여 SingleStore 클러스터에 즉시 적용할 수 있습니다. 사용할 수 있는 원시 분석 데이터를 즉시 프로세싱하고, SQL 테이블에서 결과를 보고, 이에 따라 조치를 취할 수 있습니다.

어떤 고객 유형이 SingleStore Streaminer 의 혜택을 누리는가?

이미 Kafka를 사용하여 서로 다른 소스에서 스트리밍되는 실시간 정보를 수집하고 있는 고객은 Streamliner를 즉시 사용할 수 있습니다. 아무 코드도 쓰지 않고 Kafka토픽에 있는 모든 데이터를 가져다가 즉시 SingleStore 테이블에 추가할 수 있습니다. SingleStore는 기본 옵션으로 JSON 포멧으로 자동으로 저장을 하기에 추가 작업이 필요 없습니다. 그러나 반정형이나 비정형적 "메시지"를 갖고 SingleStore의 "행(row)"으로 바꾸려면 Streamliner의 "변환(Transform)" 단계에서 임의 코드를 작성할 수 있습니다. 또한 Streamliner는 웹 브라우저 콘솔 안에서 이것을 할 수 있게 해줍니다.

예를 들어, 회사 전체의 데이터를 모니터링하고 실시간 시각화 또는 경고를 발생하는 대시보드를 만들기를 원한다고 가정해봅시다. 운영 어플리케이션이 운영 데이터베이스에 Insert하거나 이벤트를 방출하거나 로그를 출력하는 중에, 모든 데이터를 가져다가 Kafka와 같은 분산 메시지 큐에 라우팅하거나 SingleStore 테이블에 직접 기록하여 이 대시보드 응용 프로그램을 최적화할 수 있습니다. 그런 다음 Spark에 데이터 변환 또는 이상 감지 코드를 쓸 수 있습니다. 이것의 결과는 모든 SQL 호환 Business Intelligence 도구, 사용자 자신의 프런트 엔드 애플리케이션이나 Ad-hoc 쿼리를 실행하는 사용자에 대해 SingleStore에서 즉시 사용할 수 있는 데이터입니다.

PowerStream이란?

PowerStream은 Streamliner 위에 만든 쇼케이스 어플리케이션입니다. 고성능 분석과 머신 러닝을 위한 엔드 투 엔드 파이프라인(Pipeline) 입니다.

우리는 다양한 황폐한 환경에서 전 세계 20,000개의 풍력발전기(개별 터빈 200,000개)에 대한 시뮬레이션을 가지고 있습니다. 우리는 이 시뮬레이션을 사용하여 초당 100만~200만 개의 데이터 포인트의 샘플 센서 데이터를 생성합니다. 같은 장소에 배치된 Kafka-Spark-SingleStore 클러스터를 사용하여 이러한 원시 센서 값을 확하여 회귀 모델 집합을 통해 실행함으로써 1) 각 터빈이 얼마나 가까운 시기에 고장이 날지, 2) 어느 부품이 마모되었는지 판단합니다.

PowerStream 쇼케이스 애플리케이션에서 가장 흥미로운 부분은 무엇이라고 생각하십니까?

저는 개인적으로 데이터 사이언스 활용 사례에 관심이 있습니다. PowerStream은 노드 클러스터에 머신 러링 모델을 배포하고 데이터가 들어오는 상황에 모델을 "실행"하여 SingleStore에 실시간으로 결과를 적재하는 방법을 시연합니다.

데이터 사이언스는 매우 다양한 분야이고 운영환경에서 머신 러닝 모델을 실행하는 것은 중요한 부분이지만, 물론 전체는 아닙니다. 데이터 탐색, 데이터 클린징, 피쳐(Feature) 추출, 모델 검증- 오프라인과 운영의 온라인- 모두 완전한 데이터 사이언스 워크플로우의 일부입니다.

개인적으로 데이터 사이언스 사용 사례에 관심이 있습니다. PowerStream은 머신러닝 모델을 노드 클러스터에 배포하고 들어오는 데이터를 모델로 "실행"하여 결과를 SingleStore에 실시간으로 작성하는 방법을 보여줍니다.

데이터 사이언스는 거대한 분야이며 운영중인 머신러닝 모델은 중요한 부분이지만 물론 전체 그림이 아닙니다. 데이터 탐색(Data Exploration), 데이터 정리(Data Cleaning), 특징 추출(Feature Extraction), 모델 유효성 검사(Model Validation) 모두 완벽한 데이터 사이언스 워크 플로우의 일부입니다.

SingleStore PowerStream 세션(Spark Summit) - CTO 및 공동 창립자인 Nikita Shamgunov

https://www.youtube.com/watch?time_continue=194&v=fNprcWwvlNA

 


출처: https://www.singlestore.com/blog/spark-for-machine-learning/

Using SingleStore and Spark for Machine Learning - SingleStore Blog - MemSQL is Now SingleStore

MemSQL is a database engine, and Spark is a powerful option for writing code to transform data. Learn how to use MemSQL & Spark for machine learning.

www.singlestore.com

​※ www.a-platform.biz | info@a-platform.biz