스트림 처리는 새로운 데이터 이벤트가 수신될 때마다 지속적으로 처리하는 것을 의미합니다.
스트림 처리는 새로운 데이터 이벤트가 수신될 때마다 지속적으로 처리하는 것을 의미합니다.
스트림은 생산자 (Producer) 에서 소비자 (Consumer) 로 이동하는 무한한 이벤트 시퀀스입니다. 예를 들어 금융 거래, 센서 측정, 웹 서버 로그 등 많은 데이터가 이벤트 스트림으로 생성됩니다.
Streamz와 같은 스트림 처리 라이브러리는 연속적인 데이터 스트림을 관리하는 파이프라인을 구축하여 애플리케이션이 이벤트 발생 시 즉시 대응할 수 있도록 돕습니다.
스트림 처리 파이프라인은 종종 필터, 집계, 계수, 분석, 변환, 강화, 분기, 결합, 흐름 제어, 이전 단계로의 피드백, 배압, 저장 등의 여러 작업을 포함합니다.
데이터 스트림의 지속적인 처리는 다음과 같은 다양한 분야에서 유용하게 활용됩니다.
스트림 처리 시장은 기업들이 실시간 분석, 추론, 모니터링 등에 크게 의존하면서 폭발적인 성장을 경험하고 있습니다. 스트리밍을 기반으로 구축된 서비스들은 이제 일상적인 비지니스의 핵심 구성요소가 되었으며, 구조화된 원격 측정 이벤트와 비구조화된 로그는 매년 5배 이상의 속도로 증가하고 있습니다. 현대 비즈니스 환경에서 신뢰할 수 있고 비용 효율적인 스트리밍이 가장 중요한 요소로 자리 잡은 가운데, 이러한 규모의 빅데이터 스트리밍은 점점 더 복잡해지고 효율적으로 처리하기 어려워지고 있습니다.
NVIDIA RAPIDS™ cuStreamz는 최초의 GPU 가속 스트리밍 데이터 처리 라이브러리로, 스트림 처리 처리량을 높이고 총 소유 비용 (TCO)을 낮추는 것을 목표로 합니다. NVIDIA의 프로덕션 cuStreamz 파이프라인은 연간 수십만 달러의 비용을 절감했습니다. 파이썬(Python)으로 작성된 cuStreamz는 데이터 사이언스 라이브러리를 위한 GPU 가속기인 RAPIDS를 기반으로 구축되었습니다. Flink의 GPU 지원 추가에서 알 수 있듯이 엔드투엔드 GPU 가속화는 빠르게 표준으로 자리매김하고 있으며, NVIDIA는 이러한 트렌드의 일부가 된 것을 매우 기대하고 있습니다.
cuStreamz는 다음을 기반으로 합니다.
cuStreamz는 GPU를 사용하여 스트리밍 데이터의 연산을 가속화하기 위해 내부적으로 RAPIDS cuDF를 활용하여 Streamz를 가속화합니다. cuStreamz는 또한 cuDF의 가속 JSON, 파케이(Parquet), CSV 리더 및 라이터를 활용합니다. cuStreamz 팀은 카프카(Kafka)에서 바로 cuDF 데이터프레임으로 데이터를 빠르게 읽어 들일 수 있도록 가속 카프카 데이터 소스 커넥터를 구축하여 엔드투엔드 성능을 크게 향상하였습니다. 그런 다음 Dask로 스트리밍 파이프라인을 병렬화하여 분산 모드로 실행함으로써 대규모로 성능을 높일 수 있습니다.
cuStreamz 아키텍처의 개요는 다음과 같이 요약될 수 있습니다. cuStreamz는 Python 스트리밍과 GPU를 연결하는 가교 역할을 하며, 체크포인팅과 상태 관리 같은 정교하고 신뢰할 수 있는 스트리밍 기능을 추가합니다. 이 라이브러리는 GPU에서 안정적으로 실행되는 스트리밍 작업을 작성하는 데 필요한 핵심 구성 요소를 제공합니다.
NVIDIA® CUDA-X AI™ 기반 오픈 소스 소프트웨어 라이브러리인 RAPIDS 제품군은 엔드투엔드 데이터 사이언스 및 분석 파이프라인을 전적으로 GPU에서 실행할 수 있는 기능을 제공합니다. 이 제품군은 NVIDIA CUDA® 프리미티브를 사용하여 저수준 컴퓨팅 최적화를 수행하지만, 사용자 친화적인 Python 인터페이스를 통해 GPU 병렬 처리와 고대역폭 메모리 속도를 제공합니다.
RAPIDS GPU DataFrame을 사용하면 Pandas와 같은 인터페이스를 사용하여 데이터를 GPU에 로드한 다음, 절대 GPU를 떠나지 않고 이 데이터를 연결된 다양한 머신 러닝 및 그래프 분석 알고리즘에 사용할 수 있습니다. Apache Arrow와 같은 라이브러리를 통해 이러한 수준의 상호 운용성이 가능합니다. 이를 통해 데이터 준비부터 머신 러닝과 딥 러닝에 이르는 엔드투엔드 파이프라인을 가속화할 수 있습니다.
RAPIDS의 cuML 머신 러닝 알고리즘과 수학적 기본요소는 Scikit-learn과 같은 익숙한 API를 따릅니다. 단일 GPU 및 대규모 데이터센터 배포를 위해 XGBoost와 같은 여러 인기 알고리즘이 지원됩니다. 대규모 데이터 세트의 경우, GPU 기반 구현은 CPU 기반 구현보다 10~50배 더 빨리 완료할 수 있습니다.
RAPIDS는 널리 사용되는 여러 데이터 사이언스 라이브러리 간의 장치 메모리 공유를 지원합니다. 이를 통해 GPU에 데이터를 유지하여 호스트 메모리에 데이터를 이리저리 복사하는 데 비용이 많이 드는 것을 방지할 수 있습니다.
더 알아보기: