InfluxDB Tag Key와 Field Key의 이름 중복 사용시 이슈

InfluxDB에서 Tag key와 Field key의 이름을 같게 설정하는 것은 기술적으로 가능하지만, 여러 가지 문제나 혼란을 야기할 수 있어 절대로 같은 이름으로 사용하지 않는 것을 권장합니다.

1. Query시 혼란

  • 명확성 부족: 태그와 필드가 같은 이름을 가질 경우, 쿼리를 작성할 때 해당 이름이 태그를 참조하는지 필드를 참조하는지 명확하지 않을 수 있습니다. 이는 데이터 조회 및 분석 과정에서 혼란을 초래할 수 있습니다.

  • 성능 차이: InfluxDB에서 태그와 필드는 성능상 다르게 처리됩니다. 태그는 인덱싱되어 쿼리 성능을 향상시키지만, 필드는 인덱싱되지 않습니다. 이름이 같은 태그와 필드가 있을 경우, 쿼리 최적화에 어려움을 겪을 수 있습니다.

2. 데이터 모델링 문제

  • 의미의 모호성: 동일한 이름을 가진 태그와 필드는 데이터의 의미를 모호하게 만들 수 있습니다. 예를 들어, host이라는 이름으로 태그와 필드가 모두 존재한다면, 이 host 장비의 host name을 나타내는 메타데이터인지, 아니면 측정된 데이터인지 구분하기 어려울 수 있습니다.

  • 데이터 관리의 복잡성 증가: 같은 이름의 태그와 필드를 유지 관리하려면 추가적인 주의가 필요하며, 이는 데이터 관리의 복잡성을 증가시킬 수 있습니다.

3. 쿼리 결과의 예측 불가능성

  • 쿼리 시스템이 태그와 필드 중 어느 것을 우선시할지 결정하는 로직이 명확하지 않을 수 있으며, 이로 인해 예상치 못한 쿼리 결과가 발생할 수 있습니다.