-
[공식 문서 정리] InfluxDB 디자인 철학과 트레이드 오프24년 11월 이전/레거시-influxdb 2020. 6. 14. 21:33반응형
InfluxDB 공식 문서를 토대로 만든 문서입니다. 아직 설치가 되지 않았다면, 여기를 클릭해서 설치를 먼저 진행해주세요.
Contents
- 개요
- 디자인 철학과 장/단점
- 결론
개요
이번 장에서는 InfluxDB의 디자인 철학과, 그 장/단점에 대해서 알아봅니다. 자세한 내용은 여기를 참고해주세요.
이번 장은 이전 장과 마찬가지로, 공식 문서를 단순 번역하기 때문에, What, Why, How는 없습니다. 시작해봅시다.
디자인 철학과 장/단점
InfluxDB는 시계열 데이터베이스입니다. 아래 여러 유즈케이스들에 대한 최적화 방식은 트레이드오프를 동반하며, 주로 기능적인 비용을 들여, 성능을 향상시킵니다. 아래는 InfluxDB 디자인 철학에 대한 목록입니다.(이들은 장점과 동시에 트레이드 오프를 가지고 있습니다.)
-
시계열 데이터베이스는, 동일한 데이터를 여러 번 보내면, 고객이 그 여러번 보낸 데이터들을 정확히 동일한 하나의 데이터라고 가정합니다.
- 장접 : 데이터 충돌 문제를 간단하게 해결하여, 쓰기 성능을 향상시킵니다.
- 단점 : 중복 데이터를 저장할 수 없으며, 드문 상황에서 데이터를 덮어 쓸 수 있습니다.
-
삭제는 드물게 일어납니다. 삭제는 항상, 쓰기에 "콜드"한 오래된 데이터들의 거대한 영역에 맞지 않습니다.
- 장점 : 삭제에 대한 접근을 제한하여 쿼리 및 쓰기 성능을 향상시킵니다.
- 단점 : 삭제 기능이 상당히 많이 제한됩니다.
-
기존 데이터들에 대한 업데이트는 거의 일어나지 않습니다. 시계열 데이터는 대부분 업데이트되지 않는 새로운 데이터입니다.
- 장점 : 업데이트에 대한 접근을 제한하여 쿼리 및 쓰기 성능을 향상시킵니다.
- 단점 : 업데이트 기능이 상당히 많이 제한됩니다.
-
대부분의 쓰기는 최근 timestamp와 함께 데이터를 저장하며, 데이터는 시간 오름차순으로 추가됩니다.
- 장점 : 시간 오름차순으로 데이터를 추가하는 것이 훨씬 효과적입니다.
- 단점 : 무작위 시간 혹은 시간이 오름차순으로 정렬되지 않은 상태에서 포인트를 쓰는 것은 성능이 현저히 떨어집니다.
-
스케일은 중요합니다. 데이터베이스는 대량의 읽기와 쓰기를 처리할 수 있어야만 합니다.
- 장점 : 데이터베이스는 대량의 읽기 및 쓰기를 처리할 수 있습니다.
- 단점 : InfluxDB 개발 팀은 성능을 향상시키기 위해서, 트레이드 오프를 동반하게끔 만들었습니다.
-
데이터를 쓰고 쿼리할 수 있는 것이 강하게 일관된 시각을 갖는 것보다 중요합니다.
- 장점 : 과부하 환경에서 여러 클라이언트에 의해 데이터베이스를 작성하고, 쿼리할 수 있습니다.
- 단점 : 데이터베이스가 과부하 상태일 경우, 쿼리의 결과가 가장 최근의 포인트를 포함하지 않을 수 있습니다.
-
많은 타임 시리즈는 덧 없는 것입니다. 그들은 몇 시간 동안 잠깐 나타났다 사라질 때가 있는데, 예를 들어 새로운 호스트가 시작되고 잠시 보고했다가 종료되는 타임 시리즈가 있습니다.
- 장점 : InfluxDB는 이러한 불연속적인 데이터를 잘 관리할 수 있습니다.
- 단점 : Schema가 없는 설계는 일부 데이터베이스 기능이 지원되지 않음을 의미합니다. 예를 들어, SQL의 테이블 JOIN같은 기능은 없습니다.(Flux에는 도입되었습니다.)
-
어떤 포인트라도, 엄청나게 중요하지 않습니다.
- 장점 : InfluxDB는 집계 데이터와 대용량 데이터 세트를 처리할 수 있는 매우 강력한 도구를 가지고 있습니다.
- 단점 : 포인트들은 전통적인 의미(기존 SQL은 PRIMARY KEY로 데이터를 구분함)에서 ID를 가지고 있지 않고, 타임스탬프와 시리즈에 의해 구별됩니다.
결론
이번 시간에는 InfluxDB의 디자인 철학과 그에 따른 장/단점을 살펴보았습니다. 영어를 잘한다면 참 좋았을텐데..
728x90'레거시 > 레거시-influxdb' 카테고리의 다른 글
[공식 문서 정리] InfluxDB와 SQL 데이터베이스의 비교 (0) 2020.05.30 [공식 문서 정리] InfluxDB 용어집 (0) 2020.05.16 [공식 문서 정리] InfluxDB 핵심 개념 (0) 2020.05.10 [공식 문서 정리] InfluxDB 시작하기 (0) 2020.05.02 Holt-Winters Method를 이용하여 값 예측하기(Feat. Grafana) (0) 2020.04.19