Pathway: 스트림 데이터 처리 및 실시간 분석을 위한 Python ETL 프레임워크
소개
Pathway는 스트림 데이터 처리와 실시간 분석을 위한 Python 기반의 ETL 프레임워크로, 개발 환경과 프로덕션 환경 모두에서 사용하기 적합합니다. Python으로 작성된 코드는 Rust 엔진을 통해 실행되어 멀티스레딩, 멀티프로세싱 및 분산 컴퓨팅을 지원합니다.
Pathway는 Docker와 Kubernetes를 통해 쉽게 배포할 수 있어 확장성이 뛰어나며, 다양한 데이터 소스와의 연결을 지원합니다. 특히, LLM 파이프라인 구축을 위한 도구를 제공하여, 데이터 처리 파이프라인을 손쉽게 만들 수 있습니다.
Pathway는 Apache Flink, Apache Spark, Kafka Streams와 같은 기존의 스트리밍 및 배치 데이터 처리 기술과 비교해 뛰어난 성능을 자랑합니다. Pathway는 일관성 있는 데이터 처리를 보장하며, 지연 데이터와 순서가 어긋난 데이터도 효과적으로 처리합니다. Python의 한계를 극복한 Rust 엔진 덕분에, 멀티스레딩과 분산 컴퓨팅이 용이합니다.
주요 기능
-
다양한 커넥터: Kafka, GDrive, PostgreSQL, SharePoint 등 다양한 외부 데이터 소스와의 연결을 지원합니다. Airbyte 커넥터를 통해 300개 이상의 데이터 소스에 연결할 수 있습니다.
-
상태 저장 및 무상태 변환: 조인, 윈도잉, 정렬과 같은 상태 저장 변환을 지원하며, 직접 구현한 변환을 포함한 다양한 Python 라이브러리를 사용할 수 있습니다.
-
영속성: 계산 상태를 저장하여 업데이트나 장애 발생 후에도 파이프라인을 재시작할 수 있습니다.
-
일관성: Pathway는 모든 계산이 일관되도록 시간을 관리하며, 무료 버전은 "최소 한 번" 일관성을, 엔터프라이즈 버전은 "정확히 한 번" 일관성을 제공합니다.
-
확장 가능한 Rust 엔진: Pathway의 Rust 엔진은 멀티스레딩, 멀티프로세싱 및 분산 컴퓨팅을 지원합니다.
-
LLM 도우미: LLM 래퍼, 파서, 임베더, 스플리터 등의 도구를 제공하여 LLM 파이프라인을 쉽게 구축하고 배포할 수 있습니다.
사용 사례 및 템플릿: 실시간 이벤트 처리 및 RAG 파이프라인 통합
Pathway는 다양한 데이터 처리 파이프라인을 쉽게 구성할 수 있는 도구를 제공합니다.
이벤트 처리 및 실시간 분석 파이프라인
라이브 LLM 및 RAG 파이프라인
사용 방법
설치 방법
Pathway는 Python 3.10 이상이 필요합니다. pip
를 사용하여 설치할 수 있습니다:
pip install -U pathway
실시간 긍정 값의 합 계산 예제
import pathway as pw
class InputSchema(pw.Schema):
value: int
input_table = pw.io.csv.read("./input/", schema=InputSchema)
filtered_table = input_table.filter(input_table.value >= 0)
result_table = filtered_table.reduce(sum_value=pw.reducers.sum(filtered_table.value))
pw.io.jsonlines.write(result_table, "output.jsonl")
pw.run()
로컬에서 실행
Pathway를 사용하려면, import pathway as pw
로 임포트한 후 파이프라인을 생성하고 pw.run()
으로 실행합니다.
import pathway as pw
pw.run()
Docker 및 kubernetes에서의 실행 가능
Docker를 사용하여 Pathway를 실행할 수 있습니다. Pathway Docker 이미지를 사용하여 Dockerfile을 작성하고, 이미지를 빌드하고 실행합니다.
Docker Image를 생성한 뒤에는 로컬 또는 k8s 등에서 배포할 수 있습니다.
라이선스
이 프로젝트는 BSL 1.1 라이선스로 공개 및 배포되고 있습니다. Pathway 패키지는 대부분의 상업적 목적을 무료로 사용할 수 있으며, 4년 후에는 Apache 2.0 라이선스로 자동 전환됩니다.
더 읽어보기
Pathway GitHub 저장소
Pathway 공식 문서
LLM xpack 문서
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래쪽에 좋아요를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~