본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


Influxdb

인플럭스DB(influxdb) tag key, field key를 활용 Query 작성시 유의점

야근없는 행복한 삶을 위해 ~
by 마샤와 곰 2021. 11. 24.

인플럭스DB는 시계열형태의 데이터베이스 입니다.

데이터를 시간단위로 넣는 비관계형 데이터베이스이며, 각종 로그나 시간별로 쌓이는 데이터 처리에 능숙 합니다.

 

이러한 인플럭스DB에서는 데이터를 저장 할 때 태그키(tag key)필드키(field key) 라는 형태가 존재 합니다.

관계형 데이터베이스를 기준으로 설명하면 일종의 컬럼 입니다.

두 키의 차이를 보기 위해 인플럭스DB에서 데이터베이스와, measurement를 만들어서 진행 해 보겠습니다.

 

* 데이터베이스 이름 : hello_ifx

* measurement 이름 : test_table

hello_ifx 라는 데이터베이스를 만듭니다.
test_table이라는 measurement를 생성 하였습니다.

 

measurement는 관계형 데이터 베이스 기준으로 일종의 table을 의미 합니다.

여기서는 test_table이라는 이름으로 데이터를 생성하여 보았습니다.

이제 데이터를 좀더 넣고 간단하게 쿼리를 동작시켜 봅니다.

* 명령어 : select * from test_table

동작 쿼리도 매우 비슷하네요!

 

그러면 이제 테그키와 필드키가 무엇인지 알아보겠습니다.

* 테그키(tag key) 보는 명령어 : show tag keys from test_table

* 필드키(field key) 보는 명령어 : show field keys from test_table

테그키는2개, 필드키는 3개네요

 

테그키는 2개이며, 필드키는 3개가 나온 것을 볼 수 있습니다.

데이터를 넣는 insert 문법에서의 샘플을 분석하면 테그키와 필드키를 구분하여 넣는 방법을 확인 할 수 있습니다.

* 명령어 샘플
 - insert test_table,text=qqqq,name=refff value=2,number1=112,number2=66

* 분석
 1) insert 는 등록을 의미 합니다.
 2) insert 뒤에 오는 명칭은 등록 할 measurement 이름을 의미 합니다.
 3) measurement뒤의 콤마는 필드키 입니다.
 4) 콤마 없이 띄어쓰기를 하고 값을 대입한 구간부터 태그키를 의미 합니다.
  -> 요기부터 : value=2,number1=112,number2=66
 5) 태그키는 숫자 형식만 대입 할 수 있습니다.

 

위 내용이 이해가 되었다면 이제 태그키와 필드키의 차이를 살펴보겠습니다.

아래 사진은 각각의 키 값을 구분하여 조회(select)를 한 모습 입니다.

어...중간에 테그키만 가지고 한 쿼리는 아무런 동작결과가 없습니다??

 

사진을 보면 테그키(tag key)만 가지고 한 쿼리는 빈 값을 반환하는 것을 볼 수 있습니다.

그리고 필드키(field key)가 참조된 쿼리는 데이터가 나오는 것을 볼 수 있습니다.

 

인플럭스(influxdb)에서의 가장 핵심인 부분이 바로 "검색 대상에 태그키만 가지고는 조회(select), 그룹(group)이 되지 않는다, 태그키는 검색을 위한 색인의 목적이 크다" 입니다.

아래 where절 조건이 붙은 사진을 보면 좀 더 쉽게 확인이 가능 합니다.

테그키와 필드키의 차이입니다!

 

위 사진은 태그키인 name만 검색했을 때 아무런 결과를 보여주지 않는 쿼리와,

태그키 namer과 필드키 number1를 같이 검색하였을 때 결과를 보여주는 쿼리의 모습 입니다.

 

정리를 하면,

숫자 이외의 데이터, 쿼리의 인덱스를 위해서는 태그키를 사용 합니다.

측정된 값 데이터는 필드키(숫자만 허용)를 사용합니다.

검색 및 그룹화하여 데이터를 확인하려면 찾는 대상 값에 반드시 필드키가 1개라도 있어야 합니다.

 

이상으로 살펴본 인플럭스DB(influxdb) tag key, field key를 활용하여 질의문 작성 시 유의해야되는 점 이였습니다.

궁금한점 또는 틀린부분은 언제든 연락주세요! 👻

반응형
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)

댓글