이 글은 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를 통해 배포 됩니다.
- Download latest stable KSQL,
- Quick Start를 통해 시작 가능합니다.
- 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에서 확인 가능합니다.
- Confluent Community Slack.의 #KSQL 채널에 방문하여 무료로 계정을 생성하고 도움을 받으세요.
- Confluent Google group.에 가입하여 도움을 받을 수 있습니다.
Contributing
Code, 예제, 문서 등 모든 방면으로 기여받습니다.
- 이슈나 버그는 this GitHub project.에 올려주세요.
- KSQL소스코드가 어떻게 작동하는지, 어떻게 build하고 test하는지는 Development and Contribution guidelines을 확인하세요.
- newbie issue에서 시작하면 좋습니다.
License
KSQL은 Confluent Community License를 따릅니다.
Apache, Apache Kafka, Kafka, and associated open source project names are trademarks of the Apache Software Foundation.
'빅데이터 > Kafka' 카테고리의 다른 글
Kafka burrow http endpoint 정리 (270) | 2019.08.02 |
---|---|
Kafka Burrow에서 consumer의 lag을 정의하는(평가하는) 방법 - Consumer Lag Evaluation Rules (262) | 2019.08.02 |
Burrow - kafka consumer의 지연(lag)을 모니터링할 수 있는 효과적인 opensource tool (249) | 2019.08.02 |
Kafka broker와 java client의 버젼 하위호환성 정리 (390) | 2019.02.14 |
Apache Kafka에서 topic의 partition 개수 줄이는 방법? (268) | 2018.12.26 |
아파치 Kafka Consumer의 데이터 처리 내부 architecture 설명 및 튜닝포인트 (369) | 2018.12.24 |