Netflix 시계열 데이터 추상화 계층 소개 노트

Netflix 시계열 데이터 추상화 계층 소개

넷플릭스는 대용량의 시간 이벤트 데이터를 효율적으로 저장하고 조회할 수 있는 TimeSeries Abstraction을 개발했습니다. 이 시스템은 높은 처리량의 쓰기, 대용량 데이터의 효율적인 조회, 글로벌 읽기 및 쓰기, 설정 가능한 구성, 비용 효율성을 지원하도록 설계되었습니다. TimeSeries Abstraction은 분할된 데이터, 유연한 저장소, 구성 가능성, 확장성 및 샤딩된 인프라스트럭처를 포함한 핵심 설계 원칙을 중심으로 구축되었습니다.데이터 모델은 이벤트 항목, 이벤트, 시간 시리즈 ID 및 네임스페이스로 구성됩니다. 이벤트 항목은 키-값 쌍으로 이벤트 데이터를 저장하며, 이벤트는 하나 이상의 이벤트 항목으로 구성된 구조화된 컬렉션입니다. 시간 시리즈 ID는 데이터셋의 보존 기간 동안의 이벤트 컬렉션이며, 네임스페이스는 시간 시리즈 ID 및 이벤트 데이터의 컬렉션입니다.TimeSeries Abstraction은 이벤트 데이터와 상호 작용하기 위한 API를 제공합니다. 여기에는 WriteEventRecordsSync, WriteEventRecords, ReadEventRecords, SearchEventRecords 및 AggregateEventRecords가 포함됩니다. 저장소 계층은 기본 데이터 저장소와 선택적 인덱스 데이터 저장소로 구성되며, Apache Cassandra와 Elasticsearch가 각각 데이터 저장소 및 인덱싱에 대한 선호되는 선택입니다.기본 데이터 저장소는 시간 간격에 따라 데이터를 관리 가능한 청크로 나누는 시간 분할 방식을 사용하여 특정 시간 범위의 효율적인 조회 및 저장소 및 조회 성능 최적화를 허용합니다. 데이터는 또한 시간 버킷 및 이벤트 버킷으로 나누어져 효과적인 범위 스캔 및 높은 처리량의 쓰기 작업을 관리할 수 있습니다.TimeSeries Abstraction은 대규모 시간 이벤트 데이터의 저장 및 조회에 대한 도전을 해결하도록 설계되었습니다. 여기에는 높은 처리량, 효율적인 조회, 글로벌 읽기 및 쓰기, 설정 가능한 구성 및 비용 효율성이 포함됩니다. 고유한 이벤트 데이터 모델 및 확장 가능한 저장소 계층을 사용하여 TimeSeries Abstraction은 시간 데이터를 관리하기 위한 유연하고 비용 효율적인 솔루션을 제공합니다.