InfluxDB 설계 원칙
InfluxDB는 시계열 데이터에 대한 최적의 설계 원칙을 구현합니다. 이러한 설계 원칙중 일부는 성능과 관련된 트레이드 오프가 있을 수 있습니다.
- 시간순 데이터
- 업격한 업데이트 및 삭제권한
- 읽기 및 쓰기 쿼리를 먼저 처리합니다.
- 스키마리스 설계
- 개별 지점의 데이터 세트
- 중복 데이터
시간순 데이터
성능을 향상시키기 위해 데이터는 시간 오름차순으로 작성됩니다.
엄격한 업데이트 및 삭제 권한
쿼리 및 쓰기 성능을 높이기 위해 InfluxDB는 업데이 및 삭제 권한을 엄격하게 제한 합니다. 시계열 데이터는 대부분 업데이트 되지 않는 새로운 데이터 입니다. 삭제는 일반적으로 쓰기 대상이 아닌 데이터에만 영향을 미치며, 농쟁적인 업데이트는 발생하지 않습니다.
읽기 및 쓰기 쿼리를 먼저 처리합니다.
InfluxDB는 강력한 일관성보다 읽기 및 쓰기 요청을 우선시합니다. InfluxDB는 쿼리가 실행될 때 결과를 반환합니다. 쿼리된 데이터에 영향을 미치는 모든 트랜잭션은 나중에 처리되어 데이터가 일관되게 유지되도록 합니다. 따라서 수집 속도가 높으면(밀리초당 여러 번 쓰기) 쿼리 결과에 가장 최근의 데이터가 포함되지 않을 수 있습니다.
스키마리스 설계
인플럭스디비는 불연속적인 데이터를 보다 효율적으로 관리하기 위해 스키마리스 디자인을 사용합니다. 시계열 데이터는 종종 일시적인 특성을 가지며, 데이터가 일정 기간 동안 나타나고 사라지는 경우가 많습니다. 예를 들어, 새로운 호스트가 시작되어 일정 기간 동안 보고한 후 종료되는 경우가 있습니다.
스키마리스 디자인은 데이터베이스 에서 미리 정의된 고정 스키마나 구조를 요구하지 않습니다. 이는 인플럭스디비가 데이터를 동적으로 수용하고 저장할 수 있는 유연성을 제공합니다. 즉, 새로운 필드나 태그를 추가하거나 기존 필드나 태그를 변경할 수 있습니다. 이러한 유연성은 불연속적인 데이터의 특성을 반영학고, 데이터 스트림이 계속해서 반환하는 환경에서 유용합니다. 스키마리스 디자인은 INFLUXDB에서 데이터를 쉽게 적재하고 검색하며, 필요에 따라 동적으로 데이터 모델을 변경할 수 있는 장점을 제공합니다. 이는 데이터의 유연성과 확장성을 높여서 다양한 시나리오에 대응할 수 있게 합니다.
개별 지점의 데이터 세트
데이터셋은 개별 데이터 포인트보다 중요하기 떄문에, InfluxDB는 데이터 집계 및 대용량 데이터셋 처리를 위한 강력한 도구글 구현합니다. 포인트는 타임스탬프와 시리즈에 의해 구분되며, 전통적인 의미에서의 ID를 가지지 않습니다.
InfluxDB에서는 데이터를 집계하고 처리하기 위해 강력한 기능을 제공합니다. 이를 통해 여러 데이터 포인트를 그룹화하고 통계적인 측면에서 분석할 수 있습니다. 예를 들어, 특정 시간 범위 애네엇 평균, 최소값, 최대값 등을 계산할 수 있습니다. 이런한 집계 기능은 데이터의 크기가 커지거나 다양한 데이터셋을 처리해야 할 때 특히 유용합니다.
InfluxDB에서는 개별 데이터 포인트를 식별하는 고유한 ID를 사용하지 않습니다. 대신. 각 포인트는 타임스탬프와 시리즈에 의해 구분됩니다. 타임스탬프는 데이터가 생성된 시간을 나타내며, 시리즈 관련 데이터를 그룹화 하는 역할을 합니다. 이러한 방식으로 데이터를 관리합으로써 인플럭DB는 대규모 데이터셋을 효율적으로 처리할 수 있습니다.
Duplicate data