시계열 데이터베이스 InfluxDB 사용해보기 - 4편 - 데이터 다루기 Part. 1
이전글 - 시계열 데이터베이스 InfluxDB 사용해보기 - 3편 - 데이터 구조
InfluxDB 데이터 다루기
InfluxDB에서 데이터를 다루는 방법은 4가지가 있다.
1. Influx CLI
Mac OS의 터미널이나 윈도우의 파워쉘에서 influx 명령어를 이용하는 방법이다.
아래와 같은 예시로 터미널에서 데이터를 다룰 수 있다.
데이터 입력 예시
influx write \ --bucket get-started \ --precision s " home,room=Living\ Room temp=21.1,hum=35.9,co=0i 1641024000
데이터 조회 예시
influx query ' from(bucket: "get-started") |> range(start: 2022-01-01T08:00:00Z, stop: 2022-01-01T20:00:01Z) |> filter(fn: (r) => r._measurement == "home") |> filter(fn: (r) => r._field== "co" or r._field == "hum" or r._field == "temp") '
2. InfluxDB UI
http://localhost:8086 에 접속하고 로그인을 하면 DB를 직접 관리하거나 데이터를 다룰 수 있는 UI가 제공된다.
UI에서 직접 데이터 조작이 가능하며 분석까지 제공해주는게 많다.
좌측 패널에서 위로 향하는 화살표 방향 메뉴의 'Buckets' 메뉴를 선택하면 아래화면이 나타난다.
여기서 직접 데이터를 업로드도 할 수 있으며 버킷을 선택하면 접근 가능한 데이터 뷰어도 제공한다.
버킷 선택 화면
버킷 선택 후 데이터 조회 화면
InfluxDB UI가 꽤 직관적이고 설명이 친절하게 되어있어 UI로 다루는 방법은 패스하도록 하겠다.
3. InfluxDB API
http://localhost:8086/api/v2/write URL로 HTTP API를 이용한 방법이다.
API를 이용해 데이터를 입력하는 예시이다.
아래의 header에서 사용되는 org와 token 은 설정편에서 입력하고 확인했던 값을 넣어주면 된다.
curl --request POST \ "http://localhost:8086/api/v2/write?org=$INFLUX_ORG&bucket=get-started&precision=s" \ --header "Authorization: Token $INFLUX_TOKEN" \ --header "Content-Type: text/plain; charset=utf-8" \ --header "Accept: application/json" \ --data-binary " home,room=Living\ Room temp=21.1,hum=35.9,co=0i 1641024000 home,room=Kitchen temp=21.0,hum=35.9,co=0i 1641024000 "
4. Programming
보통 백엔드 개발에서 DB를 다루는것과 똑같이 DB Driver를 설치해서 코드에서 데이터를 다루는 방법이다.
http://localhost:8086 에 접속해서 로그인하면 기본 메인화면에서 아래와 같은 화면이 나오는데,
지원되는 프로그래밍 언어가 나열되어있고 언어를 선택하면 언어별로 친절한 상세 가이드가 정리되어있어서 따라하는데 어려움이 없다.
(Python, Node, Go 셋다 좋아하는 언어들이 기본으로 노출되는데 View more를 선택하면 더 많은 프로그래밍 언어가 노출된다)
파이썬을 선택하고 나서 단계별 가이드
정리
이번 포스팅에서는 데이터를 다루는 방법들에 대해 간단히 알아보았다.
InfluxDB 공식 홈페이지와 InfluxDB UI 에서 가이드가 너무 잘 정리되어있어서 천천히 읽어보며 그대로 따라해봐도 좋다.
아직 제대로 써보기 전이지만,
보통은 InfluxDB UI에서는 데이터 조회와 대시보드를 만들어 분석하는데 활용하기 위한 뷰어로 활용하며,
직접적인 데이터를 다루는건 프로그래밍 레벨에서 HTTP API를 직접 호출해 다루거나 DB Driver를 설치해 이용하게 될 것으로 보여진다.
다음 포스팅에서는 직접 데이터 예시를 만들어 쿼리 패턴에 대해 알아보도록 하겠다.