데이터 스트리밍(Data Streaming) 소개
지난 몇 년 동안, 실시간 데이터의 필요성이 기하급수적으로 증가했습니다. 기업들은 비즈니스 성장을 촉진하기 위해 데이터 스트림을 활용하여 실시간 분석 및 머신 러닝을 제공하는 애플리케이션과 플랫폼을 점점 더 많이 구축하고 있습니다. 리더들은 데이터를 지속적으로 수집, 처리 및 분석함으로써 즉각적인 통찰력을 얻고, 더 빠른 의사 결정을 가능하게 하며, 보다 정확한 예측을 할 수 있습니다.
기업들은 운영 시스템의 비즈니스 거래 및 잠재적 사기, 그리고 동적 가격 모델에 대한 정보를 얻기 위해 실시간 데이터 스트리밍을 활용할 수 있습니다. 한편, 사물 인터넷(IoT)의 확산은 일상적인 장치와 센서가 엄청난 양의 원시 데이터를 전송한다는 것을 의미하며, 이러한 데이터 세트에 즉시 액세스하면 잠재적인 문제를 해결하거나 위치별 권장 사항을 제시하는 데 도움이 될 수 있습니다.
요약하면, 실시간 데이터는 새로운 혁신적인 기회를 창출하거나 진행 중인 데이터 세트에 대한 통찰력을 제공함으로써 조직을 변화시킬 수 있는 잠재력을 가지고 있습니다.
자세히 보기
스트리밍 vs. 배치 처리
조직은 데이터를 처리하기 위해 전통적으로 지정된 간격으로 대량의 데이터 덩어리 또는 "배치"로 데이터를 수집하고 처리하는 배치 처리에 의존해 왔습니다. 오늘날, 기업들은 시기적절하지만 실시간은 아닌 데이터가 필요할 때 배치 처리를 활용할 수 있습니다. 여기에는 판매 예측, 재고 관리, 메인프레임에서 데이터 수집 및 소비자 설문 조사 처리가 포함됩니다.
그러나 오늘날의 글로벌 비즈니스 환경에서 경쟁하기 위해 조직은 데이터를 수집하는 즉시 데이터에 액세스해야 할 필요성이 점점 더 커지고 있습니다. 스트리밍 데이터는 데이터가 빠르고 정확하며 거의 실시간으로 처리되도록 보장하여 조직이 시기 적절한 결정을 내릴 수 있도록 돕습니다. 스트리밍은 데이터를 몇 초 또는 밀리 초 이내에 처리함으로써 초단타 매매, 실시간 입찰, 로그 처리, 실시간 분석 또는 사기 탐지와 같은 사용 사례에 이상적인 솔루션입니다.
조직은 스트리밍 데이터의 필요성을 인식할 수 있지만, 다음 이유로 인해 배치 데이터에서 스트리밍 데이터로 전환하기 어려울 수 있습니다:
- 새로운 API 및 학습해야 할 언어: 기존 데이터 팀이 이미 알고 있는 언어와 도구를 사용하는 것이 어려울 수 있습니다.
- 복잡한 운영 도구 구축: 조직은 프로덕션 환경에서 안정적으로 실행되는 스트리밍 데이터 파이프라인을 배포하고 유지 관리하는 데 어려움을 겪을 수 있습니다.
- 별도의 시스템의 실시간 및 기록 데이터: 적절한 사용자와 그룹의 액세스를 제어하는 기능을 제한하는 호환되지 않는 거버넌스 모델이 있을 수 있습니다.
데이터브릭스는 고객이 Data Intelligence Platform을 통해 배치 데이터와 스트리밍 데이터의 전통적인 이분법을 넘어설 수 있도록 돕고 있습니다. 실시간 분석, 머신 러닝(ML) 및 애플리케이션을 하나의 플랫폼에 통합함으로써 조직은 배치 데이터와 스트리밍 데이터를 모두 처리하는 단일 플랫폼에서 간소화된 데이터 처리의 이점을 누릴 수 있습니다.
Databricks 데이터 인텔리전스 플랫폼을 통해 사용자는 다음을 수행할 수 있습니다:
- 스트리밍 파이프라인 및 애플리케이션을 더 빠르게 구축. 고객은 SQL 및 Python의 통합 배치 및 스트리밍 API를 사용하여 이미 알고 있는 언어와 도구를 사용할 수 있습니다. 전체 조직을 위해 실시간 분석, ML 및 애플리케이션 을(를) 사용할 수 있습니다.
- 자동화된 도구를 통해 운영 간소화. 프로덕션 환경에서 실시간 파이프라인 및 애플리케이션을 쉽게 배포하고 관리할 수 있습니다. 자동화된 도구는 작업 오케스트레이션, 내결함성/복구, 자동 체크포인팅, 성능 최적화 및 자동 확장을 간소화합니다.
- 클라우드 전반에서 모든 실시간 데이터에 대한 거버넌스 통합. Unity 카탈로그 는 모든 스트리밍 및 배치 데이터에 대해 일관된 거버넌스 모델을 제공하여 실시간 데이터를 검색, 액세스 및 공유하는 방식을 간소화합니다.
스트리밍 vs. 실시간 처리
스트리밍 및 실시간 처리는 밀접하게 관련된 개념이며, 종종 같은 의미로 사용됩니다. 그러나 미묘하지만 중요한 차이점이 있습니다.
"스트리밍 데이터"는 움직이는 데이터로 생성된 연속적인 데이터 스트림을 의미합니다. 이는 데이터가 생성되는 대로 작은 덩어리 또는 이벤트로 처리되는 데이터 파이프라인 방식입니다. 반면에 "실시간 처리"는 데이터 수신 후 최소한의 지연으로 통찰력을 제공하는 것을 목표로 분석 및 응답의 즉시성을 강조합니다. 즉, 스트리밍 데이터 시스템은 실시간 데이터를 수집하고 도착하는 대로 처리합니다.
"실시간 스트리밍"의 범위 내에서도 "실시간"과 "준 실시간" 사이에 추가적인 구분이 있으며, 이는 주로 지연 시간과 관련이 있습니다. 실시간 데이터는 데이터 생성 후 밀리 초 이내에 데이터를 분석하고 처리하는 시스템을 의미합니다. 이러한 시스템은 자동 주식 거래, 의료 모니터링 시스템 또는 금융 거래의 사기 탐지와 같이 즉각적인 조치가 중요한 시나리오를 위해 설계되었습니다.
반면에 준 실시간 처리는 일반적으로 몇 초 단위로 측정되는 약간의 지연을 포함합니다. 이 방식은 즉각적인 응답이 필요하지 않지만 시기 적절한 업데이트가 여전히 선호되는 상황, 예를 들어 소셜 미디어 피드 업데이트, 물류 추적 및 운영 대시보드용 데이터 집계에 적합합니다.
데이터 파이프라인의 증분 처리
스트림 처리는 일부 조직에 적합한 선택일 수 있지만 실행하는 데 비용과 리소스가 많이 소요될 수 있습니다. 지속적인 데이터 처리 없이 데이터 스트리밍의 이점을 얻는 한 가지 방법은 증분화를 이용하는 것입니다. 이 방법은 전체 데이터 세트 대신 새로 추가, 수정 또는 변경된 데이터만 처리합니다.
증분화를 실행할 수 있는 한 가지 예는 데이터브릭스의 구체화된 뷰를 이용하는 것입니다. 구체화된 뷰는 쿼리 결과를 물리적 테이블로 저장하는 데이터베이스 개체입니다. 가상이며 기본 테이블에서 데이터를 파생하는 일반 데이터베이스 뷰와 달리 구체화된 뷰는 예약 또는 필요에 따라 증분 방식으로 업데이트되는 사전 계산된 데이터를 포함합니다. 데이터의 사전 계산을 통해 특정 시나리오에서 더 빠른 쿼리 응답 시간과 향상된 성능을 얻을 수 있습니다.
구체화된 뷰는 전체 데이터 세트가 아닌 더 작은 데이터 세트를 처리할 때 유용할 수 있습니다. 전반적으로 파이프라인 내에서 데이터의 증분화는 계산 노력, 시간 및 리소스 소비를 줄여 효율성을 높일 수 있습니다. 이는 업데이트 처리가 더 빠른 분석 및 의사 결정으로 이어질 수 있는 대규모 파이프라인에 특히 적합합니다.
스트리밍 시 고려 사항 및 트레이드 오프
조직이 실시간 데이터 스트림을 구현함에 따라 데이터 처리 아키텍처 내에서 고려해야 할 몇 가지 중요한 요소가 있습니다. 시스템을 설계하는 방식에 따라 몇 가지 중요한 트레이드 오프가 발생할 수 있으며 조직의 워크로드 요구 사항 및 비즈니스 결과에 따라 달라집니다. 고려해야 할 몇 가지 기능은 다음과 같습니다.
지연 시간: 이는 데이터가 수신된 순간부터 처리되어 전달되는 데 걸리는 시간을 의미합니다. 낮은 지연 시간 데이터는 사기 탐지 또는 라이브 비디오 스트리밍과 같은 실시간 애플리케이션에 중요하지만 유지 관리하는 데 비용이 많이 들 수 있습니다.
데이터에서 더 높은 지연 시간을 선택하는 것은 정기적인 보고만 필요하거나 즉각적인 처리 및 의사 결정이 중요하지 않은 워크플로우에 이상적일 수 있습니다. 로그 데이터를 저장하거나 일별 또는 주간 판매 보고서를 생성하는 시스템은 일반적으로 더 높은 지연 시간 데이터 스트림을 활용합니다.
처리량: 이는 일반적으로 초당 이벤트 수로 표현되는 시스템이 시간 경과에 따라 처리할 수 있는 데이터 볼륨의 척도입니다. 높은 처리량은 대규모 데이터 플로우를 효율적으로 처리하므로 IoT에 매우 중요합니다. 그러나 더 높은 수준의 처리량은 지연 시간에 어느 정도 타협을 초래합니다.
비용: 많은 조직의 경우 비용은 시스템에 적합한 지연 시간 및 처리량을 결정하는 데 가장 중요한 요소입니다. 시기 적절한 데이터 처리가 필요한 일부 워크로드의 경우 낮은 지연 시간, 높은 처리량 시스템을 설계하는 것이 투자의 가치가 있을 수 있습니다. 그러나 데이터 요구 사항이 즉각적이지 않거나 워크로드에 더 큰 데이터 배치가 필요한 경우 더 높은 지연 시간 시스템이 적합할 수 있습니다.
모든 스트리밍 아키텍처가 동일하게 생성되는 것은 아니며, 워크로드의 요구 사항과 예산에 맞춰 적절한 균형을 찾는 것이 중요합니다. 실시간이 아닌, 필요할 때 적절한 시기에 데이터에 액세스하는 것으로 생각하십시오.
Spark Streaming architecture
Apache SparkTM Structured Streaming는 데이터브릭스(Databricks) 데이터 인텔리전스 플랫폼에서 데이터 스트리밍을 가능하게 하는 핵심 기술로, 배치 및 스트림 처리를 위한 통합 API를 제공합니다. Spark는 지속적인 데이터 스트림을 처리할 수 있도록 작고 관리하기 쉬운 배치로 나누는 오픈 소스 프로젝트입니다. Structured Streaming을 사용하면 Spark의 구조화된 API를 사용하여 배치 모드에서 수행하는 동일한 작업을 스트리밍 방식으로 실행할 수 있습니다. 이를 통해 대기 시간을 줄이고 250ms의 낮은 대기 시간으로 점진적 처리가 가능합니다.
Structured Streaming에서 데이터는 무한 테이블로 취급되어 점진적으로 처리됩니다. Spark는 짧은 시간 간격으로 들어오는 데이터를 수집하여 배치를 형 성한 다음 기존 배치 작업과 같이 처리합니다. 이 접근 방식은 배치 처리의 단순성과 거의 실시간 기능을 결합하고, 장애 허용 및 실패 복구를 가능하게 하는 검사점을 제공합니다.
Spark의 데이터 파이프라인 접근 방식은 리소스를 효율적으로 사용하도록 설계되었습니다. 파이프라인은 원시 데이터 수집으로 시작하여 데이터 싱크로 이동하면서 필터링, 집계 또는 매핑됩니다. 그러나 각 단계는 파이프라인을 통과하면서 데이터를 점진적으로 처리하여 데이터베이스에 저장되기 전에 이상 또는 오류를 확인합니다.
Spark의 데이터 파이프라인 접근 방식은 리소스를 효율적으로 사용하도록 설계되었습니다. 파이프라인은 원시 높은 응답 속도를 요구하는 워크로드의 경우 Spark는 각 레코드를 도착하는 대로 개별적으로 처리하여 실시간 기능을 제공하는 Continuous Processing 모드를 제공합니다. 데이터브릭스에서 스트리밍 데이터를 관리하는 방법에 대해 이 곳에서 자세히 알아보세요.
스트리밍 ETL
스트리밍 ETL(추출, 변환, 로드)은 조직이 데이터 중심 애플리케이션 및 워크플로우의 요구 사항을 충족하기 위해 데이터를 실시간 또는 거의 실시간으로 처리하고 분석하는 데 도움이 됩니다. ETL은 일반적으로 배치로 실행되었지만, 스트리밍 ETL은 데이터가 생성되는 대로 데이터를 수집하여 데이터가 거의 즉시 분석될 수 있도록 합니다.
스트리밍 ETL은 데이터를 점진적으로 처리하여 대기 시간을 최소화하고, 데이터 세트가 배치될 때까지 기다리지 않고 지속적인 업데이트를 허용합니다. 또한 최신 정보에 따라 의사 결정을 내릴 수 있도록 데이터가 오래되었거나 관련이 없는 위험을 줄여줍니다.
모든 ETL 도구에는 비즈니스가 성장함에 따라 확장할 수 있는 기능이 내재되어야 합니다. 데이터브릭스는 안정적인 데이터 파이프라인을 구축하기 위해 간단한 선언적 접근 방식을 사용하는 최초의 ETL 프레임워크로 DLT를 출시하였습니다. 여러분의 팀은 SQL 및 Python과 같이 이미 알고 있는 언어와 도구를 사용하여 제어 가능하고 자동화된 새로 고침 설정을 통해 배치 및 스트리밍 데이터 파이프라인을 한 곳에서 구축하고 실행할 수 있습니다. 이는 시간을 절약할 뿐만 아니라 운영 복잡성을 줄여줍니다. 데이터를 어디로 보낼 계획이든 데이터브릭스 데이터 인텔리전스 플랫폼에서 스트리밍 데이터 파이프라인을 구축하면 원시 데이터와 정리된 데이터 사이에 시간을 낭비하지 않습니다.
스트리밍 분석
보시다시피, 데이터 스트리밍은 낮은 대기 시간으로 데이터의 지속적인 처리와 이벤트 발생 시 실시간 분석을 전송할 수 있는 기능을 제공합니다. 의사 결정자가 최신의 가장 관련성 있는 데이터에 액세스할 수 있도록 하므로 실시간(또는 거의 실시간) 원시 데이터에 대한 액세스는 비즈니스 운영에 매우 중요할 수 있습니다. 스트리밍 분석의 몇 가지 장점은 다음과 같습니다.
데이터 시각화. 가장 중요한 회사 정보를 주시하면 조직이 주요 성과 지표(KPI)를 매일 관리하는 데 도움이 될 수 있습니다. 스트리밍 데이터를 실시간으로 모니터링하여 회사가 매 순간 무슨 일이 일어나고 있는지 알 수 있습니다.
비즈니스 통찰력. 실시간 대시보드는 비정상적인 비즈니스 이벤트가 발생할 때 알림을 보내는 데 도움이 될 수 있습니다. 예를 들어, 비즈니스 위협에 대한 감지 및 대응을 자동화하거나 비정상적인 동작을 조사해야 하는 영역을 표시하는 데 사용할 수 있습니다.
경쟁력 향상. 경쟁 우위를 확보하려는 기업은 스트리밍 데이터를 사용하여 추세를 신속하게 파악하고 벤치마크를 설정할 수 있습니다. 이를 통해 배치 분석에 의존하는 경쟁사보다 우위를 점할 수 있습니다.
예방 가능한 손실 절감. 스트리밍 분석을 통해 조직은 보안 침해, 제조 문제 또는 고객 이탈과 같은 사고로 인한 피해를 예방하거나 줄일 수 있습니다.
일상적인 비즈니스 운영 분석. 스트리밍 분석은 조직이 데이터를 실시간으로 수집하고 즉각적이고 실행 가능한 통찰력을 얻는 데 도움이 됩니다. 리더가 관련성 있고 시기적절하며 신뢰할 수 있는 데이터에 액세스할 수 있으면 건전한 결정을 내릴 수 있습니다.
AI/ML을 위한 스트리밍
인공 지능(AI) 및 ML 모델이 발전하고 성숙해짐에 따라 기존 배치 처리는 이러한 애플리케이션에 필요한 데이터의 크기와 다양성을 따라가기 어려울 수 있습니다. 데이터 전송 지연은 부정확한 응답과 애플리케이션 비효율성을 증가시킬 수 있습니다.
스트리밍 데이터는 가장 최신의 사용 가능한 데이터를 기반으로 하는 실시간 정보의 지속적인 흐름을 제공하여 AI/ML 모델이 이벤트가 발생함에 따라 적응하고 예측할 수 있도록 합니다. 스트리밍 데이터가 AI 모델을 준비하는 데 도움이 되는 두 가지 방법이 있습니다.
AI 훈련: AI/ML 개발의 초기 단계에서 스트리밍 데이터는 구조화 또는 비구조화된 대규모 데이터 세트를 제공하여 모델을 훈련하는 데 핵심입니다. 모델은 패턴 또는 상관 관계를 인식하도록 훈련된 다음 무작위 또는 미리 정의된 매개변수를 기반으로 초기 예측을 수행합니다. 이 프로세스는 모델의 정확성과 신뢰성을 시간이 지남에 따라 개선하기 위해 대량의 데이터로 반복되고 개선됩니다. 이러한 모델은 패턴과 추세는 물론 해당 패턴의 편차를 통해 학습하여 보다 정확한 출력과 예측을 개발합니다.
AI 추론: AI/ML 시스템이 훈련되면 훈련에서 학습한 매개변수를 사용하여 입력 데이터를 기반으로 예측(추론)을 수행하는 프로덕션 환경에 배포할 수 있습니다. 스트리밍 데이터는 신선하고 보이지 않는 데이터를 제공하는 반면, 모델은 거의 즉각적인 통찰력과 예측을 생성합니다.
다양한 분야의 조직은 스트리밍 데이터 세트를 기반으로 구축된 AI의 통찰력을 활용합니다. 헬스 및 웰빙 소매업체는 고객 데이터에 대한 실시간 보고를 활용하여 약사가 맞춤형 권장 사항과 조언을 제공하도록 돕습니다. 통신 회사는 실시간 머신 러닝을 사용하여 불법 장치 잠금 해제와 같은 사기 행위를 감지하고 도난을 식별할 수 있습니다. 한편, 소매업체는 스트리밍 데이터를 활용하여 재고 및 시장 요인에 따라 실시간 가격 책정을 자동화할 수 있습니다.
스트리밍 데이터는 이러한 모델에 매우 중요하지만, AI/ML을 데이터 스트리밍과 통합하는 데 고유한 일련의 과제가 있다는 점에 유의해야 합니다. 이러한 과제 중 일부는 다음과 같습니다.
데이터 볼륨: 조직은 고객 정보, 거래 데이터, 장치 사용 데이터 등과 같은 방대한 데이터를 손쉽 게 사용할 수 있습니다. 이 모든 데이터를 관리하고 AI/ML 모델에 통합하려면 확장 가능하고 탄력적인 강력한 데이터 아키텍처와 처리 기능이 필요합니다.
데이터 품질: 데이터의 양이 기하급수적으로 증가하고 있지만 모든 데이터가 고품질이고 정확한 것은 아닙니다. 데이터는 다양한 시스템에서 서로 다른 형식으로 소싱되는 경우가 많으며 불완전하거나 일관성이 없을 수 있습니다. AI/ML 모델이 제대로 작동하려면 데이터의 신뢰성을 보장하기 위해 지속적으로 테스트하고 검증해야 합니다.
데이터 파이프라인: AI/ML을 위한 실시간 데이터 수집, 변환 및 제공을 처리할 수 있는 강력하고 효율적인 데이터 파이프라인을 구축하는 것은 복잡할 수 있습니다. 조직은 대규모 데이터 수집 및 데이터 처리를 처리할 수 있는 확장 가능한 인프라에 투자하는 것이 중요합니다.
데이터브릭스는 고객에게 AI 및 ML 솔루션을 구축, 배포, 평가 및 관리할 수 있는 통합 도구를 제공하는 Mosaic AI를 통해 이러한 문제를 해결하고 있습니다. 사용자는 엔터프라이즈 데이터로 사용자 지정된 정확한 출력을 수신하고 자체 사용자 지정 대규모 학습 모델(LLM)을 10배 저렴한 비용으로 훈련하고 제공할 수 있습니다.
데이터브릭스에서의 스트리밍
조직 내에서 데이터 스트리밍을 배포하려면 상당한 노력이 필요할 수 있습니다. 데이터브릭스는 데이터 스트리밍을 단순화하여 이를 더 쉽게 만듭니다. 데이터브릭스 데이터 인텔리전스 플랫폼은 실시간 분석, 머신 러닝 및 애플리케이션을 모두 하나의 플랫폼에서 제공합니다. 데이터브릭스에서 스트리밍 애플리케이션을 구축하면 다음을 수행할 수 있습니다.
- 모든 데이터 팀 활성화: 이미 알고 있는 언어와 도구, 그리고 이미 사용 중인 API로 스트리밍 데이터 워크로드를 쉽게 구축할 수 있습니다.
- 개발 및 운영 단순화: 실시간 데이터 파이프라인 구축 및 유지 관리와 관련된 많은 프로덕션 측면을 자동화하는 즉시 사용 가능한 기능을 활용할 수 있습니다.
- 데이터 사일로 제거: 이를 통해 스트리밍 및 배치 데이터를 위한 단일 플랫폼을 기반으로 보안 및 거버넌스 모델을 중앙 집중화합니다.
또한, DLT의 도움으로 고객은 자동화된 도구를 사용하여 데이터 수집 및 ETL을 단순화하여 실시간 분석, ML 및 운영 애플리케이션 전반에 걸쳐 배포할 데이터 세트를 준비합니다.
Spark Structured Streaming는 데이터브릭스의 실시간 기능의 핵심입니다. 수십만 명의 개인과 조직에서 널리 사용되며 배치 및 스트림 처리를 위한 단일 통합 API를 제공하여 데이터 엔지니어와 개발자가 코드를 변경하거나 새로운 기술을 배우지 않고도 실시간 애플리케이션을 쉽게 구축할 수 있도록 합니다.
전 세계적으로 조직은 데이터브릭스 데이터 인텔리전스 플랫폼에서 데이터 스트리밍을 활용하여 운영 시스템 최적화, 디지털 결제 네트워크 관리 및 재생 에너지를 탐색하고 사기로부터 소비자들을 보호하는 데 도움을 주고 있습니다.
데이터브릭스는 이러한 모든 긴밀하게 통합된 기능을 제공하여 하나의 플랫폼에서 실시간 사용 사례를 지원합니다.