일상/IT

스트리밍 데이터베이스 : 개념, 설명, 개요

얇은생각 2023. 8. 13. 07:30
반응형

스트리밍 데이터베이스는 더 나은 의사 결정을 내리고 기회를 식별하며 실시간 위협에 대응하는 데 도움이 될 수 있습니다. 스트리밍 데이터베이스는 대량의 실시간 스트리밍 데이터를 처리하도록 특별히 설계된 데이터베이스 유형입니다. 데이터를 처리하기 전에 일괄적으로 저장하는 기존 데이터베이스와 달리 스트리밍 데이터베이스는 데이터가 생성되는 즉시 데이터를 처리하므로 실시간 통찰력과 분석이 가능합니다. 데이터를 유지하지 않는 기존 스트림 처리 엔진과 달리 스트리밍 데이터베이스는 데이터를 저장하고 사용자 데이터 액세스 요청에 응답할 수 있습니다. 스트리밍 데이터베이스는 실시간 분석, 부정 행위 탐지, 네트워크 모니터링 및 사물인터넷(IoT)과 같은 대기 시간이 중요한 애플리케이션에 이상적이며 기술 스택을 단순화할 수 있습니다.

 

 

간략한 역사

스트리밍 데이터베이스의 개념은 2002년 학계에 처음 도입되었습니다. Brown, Brandeis MIT의 연구원 그룹은 데이터베이스 내부의 데이터 스트림 관리에 대한 요구를 지적하고 최초의 스트리밍 데이터베이스인 Aurora를 구축했습니다. 몇 년 후, 그 기술은 대기업에 채택되었습니다. 상위 3개 데이터베이스 공급업체인 Oracle, IBM Microsoft Oracle CQL, IBM System S Microsoft SQL Server Stream Insight라는 스트림 처리 솔루션을 연속으로 출시했습니다. 이러한 공급업체는 스트리밍 데이터베이스를 처음부터 개발하는 대신 스트림 처리 기능을 기존 데이터베이스에 직접 통합했습니다.

2000년대 후반부터 MapReduce에서 영감을 받은 개발자들은 스트림 처리 기능을 데이터베이스 시스템에서 분리하고 Apache Storm, Apache Samza, Apache Flink Apache Spark Streaming을 포함한 대규모 스트림 처리 엔진을 개발했습니다. 이러한 시스템은 수집된 데이터 스트림을 지속적으로 처리하고 다운스트림 시스템에 결과를 제공하도록 설계되었습니다. 그러나 스트리밍 데이터베이스와 비교하여 스트림 처리 엔진은 데이터를 저장하지 않으므로 사용자가 시작한 애드혹 쿼리를 처리할 수 없습니다.

스트리밍 데이터베이스는 스트림 처리 엔진과 병렬로 계속 진화합니다. PipelineDB KsqlDB라는 두 가지 스트리밍 데이터베이스가 2010년대에 개발되어 당시에 인기가 있었습니다. 2020년대 초에 RisingWave, Materialize DeltaStream과 같은 몇 가지 클라우드 기반 스트리밍 데이터베이스가 등장했습니다. 이러한 제품은 사용자에게 클라우드에서 스트리밍 데이터베이스 서비스를 제공하는 것을 목표로 합니다. 이러한 목표를 달성하기 위해 클라우드의 리소스를 완벽하게 활용하여 무제한적인 수평 확장성과 최고의 비용 효율성을 달성하는 아키텍처를 설계하는 데 중점을 둡니다.

 

 

일반적인 사용 사례

실시간 애플리케이션에는 스트리밍 데이터베이스가 필요합니다.실시간 애플리케이션에는 스트리밍 데이터베이스가 필요합니다.

스트리밍 데이터베이스 : 개념, 설명, 개요 1

 

실시간 애플리케이션에는 스트리밍 데이터베이스가 필요합니다. 스트리밍 데이터베이스는 몇 초에서 몇 분 사이의 신선도 요구사항으로 최신 결과를 요구하는 실시간 애플리케이션에 적합합니다. IoT 및 네트워크 모니터링과 같은 애플리케이션에는 1초 미만의 대기 시간이 필요하며, 광고 권장 사항, 재고 대시보드 및 음식 배달과 같은 애플리케이션의 대기 시간 요구 사항은 수백 밀리초에서 몇 분 사이일 수 있습니다. 스트리밍 데이터베이스는 짧은 대기 시간에 지속적으로 결과를 제공하므로 이러한 애플리케이션에 적합할 수 있습니다.

일부 응용 프로그램은 신선도에 민감하지 않으며 수십 분, 몇 시간 또는 며칠의 지연을 허용할 수 있습니다. 일부 대표적인 애플리케이션에는 호텔 예약 및 재고 추적이 포함됩니다. 이러한 경우 사용자는 스트리밍 데이터베이스 또는 기존 배치 기반 데이터베이스를 사용하는 것을 고려할 수 있습니다. 비용 효율성, 유연성 및 기술 스택 복잡성과 같은 다른 요인을 기준으로 결정해야 합니다.

스트리밍 데이터베이스는 일반적으로 실시간 애플리케이션에서 다른 데이터 시스템과 함께 사용되어 스트리밍 수집(ETL) 및 스트리밍 분석이라는 두 가지 전형적인 사용 사례를 촉진합니다. 스트리밍 데이터베이스는 일반적으로 다른 최신 데이터 시스템과 통합되어 스트리밍 수집(ETL) 및 스트리밍 분석이라는 두 가지 유형의 사용 사례를 촉진합니다.

스트리밍 데이터베이스는 일반적으로 다른 최신 데이터 시스템과 통합되어 스트리밍 수집(ETL) 및 스트리밍 분석이라는 두 가지 유형의 사용 사례를 촉진합니다.

스트리밍 데이터베이스 : 개념, 설명, 개요 2

 

 

스트리밍 수집(ETL)

스트리밍 수집은 한 시스템 세트에서 다른 시스템 세트로 지속적인 데이터 흐름을 제공합니다. 개발자는 스트리밍 데이터베이스를 사용하여 스트리밍 데이터를 정리하고, 여러 스트림을 결합하고, 결합된 결과를 실시간으로 다운스트림 시스템으로 이동할 수 있습니다. 실제 시나리오에서 스트리밍 데이터베이스로 수집되는 데이터는 일반적으로 OLTP 데이터베이스, 메시징 대기열 또는 스토리지 시스템에서 가져옵니다. 처리 후 결과는 이러한 시스템에 다시 투입되거나 데이터 웨어하우스 또는 데이터 레이크에 삽입될 가능성이 높습니다.

 

 

스트리밍 분석

스트리밍 분석은 복잡한 계산을 수행하고 새로운 결과를 즉시 제공하는 데 중점을 둡니다. 데이터는 일반적으로 스트리밍 분석 시나리오에서 OLTP 데이터베이스, 메시지 대기열 및 스토리지 시스템에서 가져옵니다. 결과는 일반적으로 사용자가 트리거한 요청을 지원하기 위해 서빙 시스템에 수집됩니다. 스트리밍 데이터베이스는 자체적으로 쿼리를 처리할 수도 있습니다. 사용자는 스트리밍 데이터베이스를 BI 도구로 직접 연결하여 결과를 시각화할 수 있습니다.

실시간 머신 러닝에 대한 수요가 증가함에 따라 스트리밍 데이터베이스는 민첩한 기능 엔지니어링을 가능하게 하는 중요한 도구가 되었습니다. 스트리밍 데이터베이스를 활용하여 변환된 데이터를 기능으로 저장함으로써 개발자는 변화하는 데이터 패턴과 새로운 이벤트에 신속하게 대응할 수 있습니다. 스트리밍 데이터베이스를 사용하면 실시간으로 데이터를 수집, 처리 및 의미 있는 기능으로 변환하여 머신 러닝 모델의 정확성과 효율성을 높이는 동시에 데이터 중복을 줄이고 데이터 품질을 향상시킬 수 있습니다. 이를 통해 조직은 보다 신속하고 정보에 입각한 의사 결정을 내리고, 머신러닝 워크플로우를 최적화하며, 경쟁 우위를 확보할 수 있습니다.

 

 

스트리밍 데이터베이스 대 기존 데이터베이스

스트리밍 데이터베이스와 기존 데이터베이스의 차이점

 

기존 데이터베이스는 대량의 배치 데이터를 저장하고 트랜잭션 및 쿼리를 통해 해당 데이터에 대한 빠르고 일관된 액세스를 제공하도록 설계되었습니다. 데이터를 대량으로 조작하는 집계 및 조인과 같은 복잡한 작업을 처리하는 데 최적화된 경우가 많습니다. 기존 데이터베이스의 실행 모델을 종종 HADP(Human-Active, DBMS-Passive) 모델이라고 합니다. , 기존의 데이터베이스는 수동적으로 데이터를 저장하고 인간이 능동적으로 시작한 쿼리는 계산을 트리거합니다. 기존 데이터베이스의 예로는 MySQL Postgre와 같은 OLTP 데이터베이스가 있습니다DuckDB ClickHouse와 같은 SQL OLAP 데이터베이스.

반면 스트리밍 데이터베이스는 지속적으로 수집되는 대량의 데이터를 즉시 점진적으로 처리하고, 추가 처리 및 분석을 위해 데이터 및 결과에 대한 짧은 지연 시간 액세스를 제공하도록 설계되었습니다. 데이터가 지속된 후 대량으로 처리하는 대신 데이터가 도착하는 즉시 처리하도록 최적화되어 있습니다. 스트리밍 데이터베이스의 실행 모델을 종종 DBMS-active, Human-Passive(DAHP) 모델이라고 합니다. 스트리밍 데이터베이스는 데이터가 들어오면 능동적으로 계산을 트리거하고, 인간은 수동적으로 데이터베이스로부터 결과를 수신합니다. 스트리밍 데이터베이스의 예로는 PipelineDB, KsqlDB RisingWave가 있습니다.

 

 

스트리밍 데이터베이스 대 OLTP 데이터베이스

OLTP 데이터베이스는 ACID를 준수하며 동시 트랜잭션을 처리할 수 있습니다. 반대로 스트리밍 데이터베이스는 ACID 컴플라이언스를 보장하지 않으므로 트랜잭션 워크로드를 지원하는 데 사용할 수 없습니다. 데이터 정확성 측면에서 스트리밍 데이터베이스는 일관성과 완전성을 강화합니다. 잘 설계된 스트리밍 데이터베이스는 다음과 같은 두 가지 특성을 보장해야 합니다:

정확히 한 번만 의미론. 시스템 오류가 발생하더라도 모든 데이터 이벤트가 한 번만 처리됨을 의미합니다.

무질서한 처리는 데이터 이벤트가 비정상적으로 발생하더라도 사용자가 스트리밍 데이터베이스를 강제로 사용하여 미리 정의된 순서대로 데이터 이벤트를 처리할 수 있음을 의미합니다.

 

 

스트리밍 데이터베이스 대 OLAP 데이터베이스

OLAP 데이터베이스는 사용자가 시작한 분석 쿼리에 효율적으로 응답하도록 최적화되어 있습니다. OLAP 데이터베이스는 일반적으로 대량의 데이터에 대한 복잡한 쿼리 처리를 가속화하기 위해 열 저장소와 벡터화된 실행 엔진을 구현합니다. OLAP 데이터베이스는 대화형 쿼리가 필수적인 사용 사례에 가장 적합합니다. OLAP 데이터베이스와는 달리 스트리밍 데이터베이스는 결과적인 신선도에 더 중점을 두고 지연 시간을 최적화하기 위해 증분 계산 모델을 사용합니다. 스트리밍 데이터베이스는 일반적으로 열 저장소를 채택하지 않지만 쿼리 처리를 위해 벡터화된 실행을 구현할 수 있습니다.

 

 

결론

결론적으로 스트리밍 데이터베이스는 대량의 데이터에서 실시간 통찰력을 요구하는 조직에 필수적인 시스템입니다. 스트리밍 데이터베이스는 실시간 처리, 확장성 및 안정성을 제공함으로써 조직이 더 나은 의사 결정을 내리고 기회를 식별하며 위협에 실시간으로 대응할 수 있도록 지원합니다.

반응형