Amazon Web Services 한국 블로그

Amazon Kinesis Analytics – SQL 기반 실시간 데이터 분석 서비스 정식 공개

Amazon Kinesis 클라우드 내 실시간 데이터 처리를 위한 강력한 도구로서 Kinesis StreamKinesis Firehose를 통해 손쉽게 대량 실시간 데이터를 처리 및 저장하고 이를 분석할 수 있습니다.

이들 서비스로 상대적으로 쉽게 스트리밍 데이터에 대한 처리가 간편해졌지만, 개발자 및 데이터 과학자 또는 SQL을 잘아는 분석가들이 웹 애플리케이션의 클릭 데이터나 인터넷 연결 기기에서 오는 센서 데이터, 서버 로그 등을 일반적인 쿼리 언어로 분석할 수 있도록 하는 좀 더 쉬운 기능을 제공하고자 합니다.

Amazon Kinesis Analytics
오늘 Amazon Kinesis Analytics를 정식 공개합니다. 스트리밍 데이터에 대한 SQL 질의를 통해 바로 유입되는 데이터에 대해 필터링, 변환 및 요약 등의 기능을 수행할 수 있어, 오로지 데이터와 그것의 비지니스 가치에만 집중함으로서 인프라 구축을 하는 시간 낭비를 줄일 수 있습니다. 5분 만에 SQL 질의를 통한 실시간 데이터 처리 파이프라인을 생성할 수 있습니다.

데이터베이스 테이블에 대해 SQL 질의 실행을 생각해 보면, 정적인 데이터 처리 방식(데이터 추가, 변경, 삭제)이지만 Kinesis Analytics 질의는 초당 새로운 데이터가 들어와 변경될 때 마다 지속적으로 실행됩니다. 한번 실행을 해 보면, 질의 처리 모델에 대해 쉽게 이해할 수 있습니다. 주어진 질의에 대한 처리를 할 때, 세 가지의 처리 “윈도(window)”를 지원합니다.

Tumbling 윈도는 주기적 리포팅에 사용됩니다. 시간에 따른 데이터 요약시 필요하며, 예를 들어 초당 수천에서 수백만 건의 데이터가 오는 경우, 매 분당 얼마나 데이터가 오는지 확인할 수 있습니다. 첫 텀블링 윈도가 닫히면, 다음 윈도가 시작되어 새 데이터가 쌓이게 됩니다.

Sliding 윈도는 트렌드를 감지하는 모니터링에 사용됩니다. 예를 들어, 실시간으로 평균 오류 비율을 산정하는데 활용할 수 있습니다. 데이터가 윈도에 들어가면, 그 안에 있을 때 데이터 계속 보존되고, 새로운 데이터가 들어오면 새 결과가 생성되는 식입니다. 결과를 좀 더 민감하게 얻고 싶으면 크기를 조정할 수 있습니다.

Custom 윈도는 시간과 관계 없이 적당한 그룹을 만들 때 사용됩니다. 클릭 데이터나 서버 로그를 다룰 때 sessionization이라는 방식을 통해 처리할 수 있습니다. 즉, 각 사용자에 의해 처음 또는 마지막 동작에 대한 질의를 던진다고 할 때, 들어오는 데이터에 대한 세션 인식자를 통해 처리하며 여러분의 사이트에서 보낸 시간이나 각 사용자의 방문 페이지를 알아볼 수 있습니다.

다소 복잡하게 보일 수 있으나, Kinesis Analytics에서는 들어오는 실시간 데이터를 분석해서 적당한 처리 스키마를 제안해 주게 됩니다. 제안된 모델을 따라 질의를 하거나, 실제 데이터 모델에 맞는 좀 더 나은 모델을 튜닝할 수 있습니다. 일단 스키마가 정의되면, 자체 제공 SQL 에디터를 통해 질의 문법을 체크하거나 실시간 데이터에 대해 테스트 할 수 있습니다. 질의 결과는 Amazon S3, Amazon Redshift, Amazon Elasticsearch Service나 Amazon Kinesis Stream으로 전달 할 수 있습니다.

Amazon Kinesis Analytics 시작하기
이제 Amazon Kinesis Analytics을 실제로 사용해 보겠습니다. Amazon Kinesis Analytics 콘솔에서 Create new application을 누르고, 앱 이름을 설정합니다.

이제 데이터 소스, 질의문 및 최종 저장 위치를 정할 수 있습니다.

기존의 입력 스트림 중 하나를 선택합니다.

또는, 새로 만들 수 있습니다. (새로 만들어 보겠습니다.)

Create demo stream을 선택합니다. 데모 스트림은 샘플 증권 데이터를 실시간으로 만들어 주는 것으로 생성하는데 약 30-40초 정도 걸립니다.

이제 SQL 에디터로 넘어갑니다. 앱을 만들기 위해 동의 버튼을 눌러 애플리케이션을 시작합니다.

아래는 SQL 에디터의 모습입니다.

직접 SQL 질의를 만들 수도 있고, 템플릿을 이용할 수도 있습니다.

Continuous filter를 선택하면, SQL문이 보입니다.

데이터 질의 결과를 검사를 한 후, Save and run SQL를 누릅니다. 몇 초 후에 콘솔에 결과가 보이기 시작합니다.

SQL 에디터를 사용해서 sectorprice 컬럼의 데이터를 지우기 위해 질의문을 수정하고 다시 실행하였습니다.

여기 변경된 결과를 보실 수 있습니다.

대부분의 경우, 다음 단계로 결과를 신규 혹인 기존 스트림에 저장하는 것이며, 콘솔을 통해 할 수 있습니다.

몇 번의 클릭과 타이핑만으로 Amazon Kinesis Analytics을 통해 손쉽게 증권 데이터를 처리하는 정식 서비스 수준의 앱을 만들 수 있었습니다.

더 자세히 알아보기
본 서비스에 대한 더 자세한 사항은 Writing SQL on Streaming Data with Amazon Kinesis Analytics 블로그 글을 참고하시기 바랍니다. 5분안에 따라할 수 있을 만큼 쉽기 때문에 직접 해보시길 추천합니다.

정식 공개
Amazon Kinesis Analytics는 2016년 8월 11일 현재 US East (N. Virginia), US West (Oregon), EU (Ireland) 리전에서 사용 가능합니다.

Jeff;

이 글은 Amazon Kinesis Analytics – Process Streaming Data in Real Time with SQL의 한국어 요약본으로 AWS Summit 뉴욕 행사에서 신규 발표한 소식입니다.