본문 바로가기

빅데이터/Kafka

KSQL - Streaming SQL for Apache Kafka 개요 - readme 설명 번역

이 글은 KSQL github repository readme를 번역하였습니다.

☞ https://github.com/confluentinc/ksql

KSQL은 아파치 카프카에서 사용가능한 스트리밍 SQL 엔진입니다. Java나 Python같은 프로그래밍 언어로 코드를 짤 필요 없이 간단하고 완전히 상호작용하는 SQL interface를 카프카를 통해 사용가능합니다. KSQL은 분산형, 확장형, 신뢰성, 실시간성이라는 특징을 가지고 있습니다. KSQL을 통해 강력한 aggregation, join, windowing, seessionization 등의 기능을 사용할 수 있습니다. 튜토리얼과 리소스를 사용하기 위해서는 이 링크(바로가기)를 누르세요. 그리고 아래 유튜브에서 KSQL demo를 확인 할 수 있습니다.

시작하기, 그리고 다운로드 하는 방법

Stable Releases

Stable releases은 4달마다 Confluent를 통해 배포 됩니다.

  1. Download latest stable KSQL
  2. Quick Start를 통해 시작 가능합니다.
  3. KSQL Documentation가 제공됩니다.

Preview Releases

Confluent에서는 1달마다 preview Release를 제공합니다. 여러 테스트 중인 환경의 기능들을 빠르게 사용 가능합니다. 

Documentation

KSQL documentation 에서 가장 최근의 Stable release 문서를 확인할 수 있습니다.

사용방법과 예제들

Streaming ETL

아파치 카프카는 가장 유명한 데이터 파이프라인입니다. KSQL 파이프라인을 통해 원천데이터를 완전히 새로운 table에 적재할 수 있습니다.

CREATE STREAM vip_actions AS
  SELECT userid, page, action
  FROM clickstream c
  LEFT JOIN users u ON c.userid = u.user_id
  WHERE u.level = 'Platinum';

Anomaly Detection - 이상징후 감지

KSQL은 real-time 데이터에서 이상패턴을 감지하기 유용합니다. 원천데이터가 파이프라인에 도착하는 즉시(in millisecond latency) 이상감지를 할 수 있습니다.

CREATE TABLE possible_fraud AS
  SELECT card_number, count(*)
  FROM authorization_attempts
  WINDOW TUMBLING (SIZE 5 SECONDS)
  GROUP BY card_number
  HAVING count(*) > 3;

Monitoring - 모니터링

로그 데이터를 모니터링하고 alerting하는데 적합합니다. KSQL은 이러한 작업을 잘 수행하기 적합한 syntax로 되어 있습니다.

CREATE TABLE error_counts AS
  SELECT error_code, count(*)
  FROM monitoring_stream
  WINDOW TUMBLING (SIZE 1 MINUTE)
  WHERE  type = 'ERROR'
  GROUP BY error_code;

Join the Community

KSQL을 사용하면서 도움이 필요하거나, 기여를 하고싶거나 혹은 최근 뉴스를 알고 싶다면 connecting with the Confluent community에서 확인 가능합니다.

Contributing 

Code, 예제, 문서 등 모든 방면으로 기여받습니다.

License

KSQL은 Confluent Community License를 따릅니다.

Apache, Apache Kafka, Kafka, and associated open source project names are trademarks of the Apache Software Foundation.