HDInsight Spark 및 Kafka 사용
데이터 엔지니어는 솔루션을 빌드하기 위해 만들 가장 적절한 유형의 HDInsight 클러스터를 결정해야 합니다. Spark 및 Kafka 클러스터는 함께 사용할 경우 실시간 또는 거의 실시간으로 데이터 스트림을 수집하고 처리할 수 있습니다.
Kafka를 사용하여 실시간 데이터 수집
Apache Kafka는 메시지 시스템, 게시 구독 시스템 또는 스트리밍 처리 플랫폼으로 사용할 수 있습니다. 이는 실시간으로 읽고, 후처리되고, 여러 소비자가 동시에 읽을 수 있는 로그에 데이터를 저장합니다.
Spark 구조적 스트리밍을 사용하여 실시간 이벤트 처리
Apache Spark는 대규모 데이터를 신속하게 처리, 쿼리, 분석 및 변환하는 여러 환경에서 사용할 수 있는 오픈 소스 분산형 데이터 처리 엔진입니다. Spark는 빅 데이터에 ETL 및 SQL 작업을 수행하고, 스트리밍 데이터 처리 및 기계 학습 수행에 주로 사용됩니다.
Spark 구조적 스트리밍에는 다른 플랫폼에서 사용할 수 없는 기능(예: 내결함성 보증, 일괄 처리 및 스트리밍 데이터를 조인하는 기능, 지연 도착 데이터를 처리하는 기능 등)이 포함되어 있습니다. 이 모듈의 뒷부분에서 자세히 알아보세요. 또한 Azure HDInsight를 사용하여 Spark 및 Kafka 클러스터를 모두 포함하는 VNet을 만들 수 있습니다. 단일 VNet에 두 클러스터를 모두 사용하는 경우 Spark 클러스터는 클러스터나 엔드포인트 간에 통신하는 대신 Kafka 클러스터 내에서 데이터의 개별 파티션에 액세스할 수 있습니다. 데이터의 개별 파티션에 대한 액세스를 제공하여 실시간 처리 작업에 있는 병렬 처리를 늘리면 처리량이 향상됩니다.
Kafka를 Spark와 함께 사용하는 시나리오
Apache Kafka 및 Spark를 사용하는 실시간 스트리밍을 활용한 많은 실시간 분석 시나리오가 있습니다. 이러한 시나리오에는 스트리밍 데이터 수집 구성 요소(Kafka 구성 요소)와 데이터에서 실행되는 분석 프로세스(Spark 구성 요소)가 모두 있습니다.
- 금융 거래 데이터를 수집하고 사기성 동작의 기록 패턴과 비교하는 실시간 사기 감지.
- IoT 디바이스 데이터를 수집하고 주행 거리, 속도, 위치 또는 온도 데이터와 같은 특정 센서 데이터가 임계값에 도달할 때 반응하는 차량 관리 및 연결된 자동차 시나리오.
- 충동 구매나 클릭률에 영향을 미치는 상품의 페이지 배치를 분석하는 전자 상거래 솔루션에 대한 클릭 동향 분석.
- 혈압 및 심박수 정보를 관찰하고 환자가 위험 상태일 경우 의사에게 전달하는 실시간 환자 모니터링.
- 전기 사용을 관찰하고 수요 변화에 대응하는 스마트 그리드 솔루션.
- 재입고 일정을 잡고 계산대 직원 배치를 조정하기 위해 하루 중 특정 시간에 어떤 구매가 이루어지는지 알아보는 매장 내 고객 행동 시나리오.
- 서버 가용성 및 대역폭을 감시하고 필요한 경우 트래픽을 다시 라우팅하는 IT 인프라 및 네트워크 모니터링.
- 낮은 재고 수준을 확인하고 해당 품목의 신속한 재주문 또는 재입고를 확인하는 실시간 수요 및 재고 관리.
일괄 처리에서 스트리밍으로 간편한 마이그레이션
대부분의 경우 이러한 시나리오는 온-프레미스로 시작하거나 데이터 일괄 처리를 사용하여 시작되지만, 솔루션 개발 및 요구 사항이 발전함에 따라 일괄 처리는 스트리밍으로, 온-프레미스 애플리케이션은 클라우드로 전환됩니다. 위에서 설명한 것처럼 Spark 구조적 스트리밍은 일괄 처리 및 스트리밍 작업을 모두 처리하는 고유한 기능으로 동일한 애플리케이션 및 프레임워크를 사용하여 한 작업에서 다른 작업으로 전환하거나 동시에 사용할 수 있어 어떤 일괄 처리든 실시간 작업으로 간편하게 전환할 수 있습니다.