ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [공식 문서 정리] InfluxDB 디자인 철학과 트레이드 오프
    레거시/레거시-influxdb 2020. 6. 14. 21:33
    반응형

    InfluxDB 공식 문서를 토대로 만든 문서입니다. 아직 설치가 되지 않았다면, 여기를 클릭해서 설치를 먼저 진행해주세요.

    Contents

    1. 개요
    2. 디자인 철학과 장/단점
    3. 결론

    개요

    이번 장에서는 InfluxDB의 디자인 철학과, 그 장/단점에 대해서 알아봅니다. 자세한 내용은 여기를 참고해주세요.

     

    이번 장은 이전 장과 마찬가지로, 공식 문서를 단순 번역하기 때문에, What, Why, How는 없습니다. 시작해봅시다.

    디자인 철학과 장/단점

    InfluxDB는 시계열 데이터베이스입니다. 아래 여러 유즈케이스들에 대한 최적화 방식은 트레이드오프를 동반하며, 주로 기능적인 비용을 들여, 성능을 향상시킵니다. 아래는 InfluxDB 디자인 철학에 대한 목록입니다.(이들은 장점과 동시에 트레이드 오프를 가지고 있습니다.)

     

    1. 시계열 데이터베이스는, 동일한 데이터를 여러 번 보내면, 고객이 그 여러번 보낸 데이터들을 정확히 동일한 하나의 데이터라고 가정합니다.

      • 장접 : 데이터 충돌 문제를 간단하게 해결하여, 쓰기 성능을 향상시킵니다.
      • 단점 : 중복 데이터를 저장할 수 없으며, 드문 상황에서 데이터를 덮어 쓸 수 있습니다.
    2. 삭제는 드물게 일어납니다. 삭제는 항상, 쓰기에 "콜드"한 오래된 데이터들의 거대한 영역에 맞지 않습니다.

      • 장점 : 삭제에 대한 접근을 제한하여 쿼리 및 쓰기 성능을 향상시킵니다.
      • 단점 : 삭제 기능이 상당히 많이 제한됩니다.
    3. 기존 데이터들에 대한 업데이트는 거의 일어나지 않습니다. 시계열 데이터는 대부분 업데이트되지 않는 새로운 데이터입니다.

      • 장점 : 업데이트에 대한 접근을 제한하여 쿼리 및 쓰기 성능을 향상시킵니다.
      • 단점 : 업데이트 기능이 상당히 많이 제한됩니다.
    4. 대부분의 쓰기는 최근 timestamp와 함께 데이터를 저장하며, 데이터는 시간 오름차순으로 추가됩니다.

      • 장점 : 시간 오름차순으로 데이터를 추가하는 것이 훨씬 효과적입니다.
      • 단점 : 무작위 시간 혹은 시간이 오름차순으로 정렬되지 않은 상태에서 포인트를 쓰는 것은 성능이 현저히 떨어집니다.
    5. 스케일은 중요합니다. 데이터베이스는 대량의 읽기와 쓰기를 처리할 수 있어야만 합니다.

      • 장점 : 데이터베이스는 대량의 읽기 및 쓰기를 처리할 수 있습니다.
      • 단점 : InfluxDB 개발 팀은 성능을 향상시키기 위해서, 트레이드 오프를 동반하게끔 만들었습니다.
    6. 데이터를 쓰고 쿼리할 수 있는 것이 강하게 일관된 시각을 갖는 것보다 중요합니다.

      • 장점 : 과부하 환경에서 여러 클라이언트에 의해 데이터베이스를 작성하고, 쿼리할 수 있습니다.
      • 단점 : 데이터베이스가 과부하 상태일 경우, 쿼리의 결과가 가장 최근의 포인트를 포함하지 않을 수 있습니다.
    7. 많은 타임 시리즈는 덧 없는 것입니다. 그들은 몇 시간 동안 잠깐 나타났다 사라질 때가 있는데, 예를 들어 새로운 호스트가 시작되고 잠시 보고했다가 종료되는 타임 시리즈가 있습니다.

      • 장점 : InfluxDB는 이러한 불연속적인 데이터를 잘 관리할 수 있습니다.
      • 단점 : Schema가 없는 설계는 일부 데이터베이스 기능이 지원되지 않음을 의미합니다. 예를 들어, SQL의 테이블 JOIN같은 기능은 없습니다.(Flux에는 도입되었습니다.)
    8. 어떤 포인트라도, 엄청나게 중요하지 않습니다.

      • 장점 : InfluxDB는 집계 데이터와 대용량 데이터 세트를 처리할 수 있는 매우 강력한 도구를 가지고 있습니다.
      • 단점 : 포인트들은 전통적인 의미(기존 SQL은 PRIMARY KEY로 데이터를 구분함)에서 ID를 가지고 있지 않고, 타임스탬프와 시리즈에 의해 구별됩니다.

    결론

    이번 시간에는 InfluxDB의 디자인 철학과 그에 따른 장/단점을 살펴보았습니다. 영어를 잘한다면 참 좋았을텐데..

Designed by Tistory.