ID/PW(influxdb-2/nonrtric)

ID/PW(my-release-influxdb-85888dfd97-n8688/default)

container 내부와 외부는 token 이름만 다른 점을 기억하면 편함

  1. 내부 : -t $INFLUXDB_ADMIN_USER_TOKEN
  2. 외부 : -t $INFLUXDB_TOKEN
    • ${INFLUXDB_TOKEN}
      • influxdb 설치시 미리 설정해두었던 변수
      • 재설정 방법
        1. token 추출
          • kubectl exec -it my-release-influxdb-c87cdb956-2mkr4 -- cat bitnami/influxdb/influxd.bolt | tr -cd "[:print:]" | grep -o '"token":"[^"]*"' | awk -F\" '{print $4}'
        2. token 설정
          • export INFLUXDB_TOKEN=<token>
        3. 확인 방법 : echo $INFLUXDB_TOKEN

InfluxDB 계정생성

container 접속 o

  1. container 접속
    • kubectl exec -it -n default my-release-influxdb-c87cdb956-zrnsp -- /bin/bash
  2. 계정 생성
    • influx user create --org primary --name <name> --password <password> -t $INFLUXDB_ADMIN_USER_TOKEN

container 접속 x

  1. 계정 생성
    •   kubectl exec -it -n default my-release-influxdb-c87cdb956-zrnsp -- influx user create --org primary --name <name> --password <password> -t $INFLUXDB_TOKEN`
      

InfluxDB web 열기

  1. port 열기
    • kubectl port-forward svc/my-release-influxdb 8086:8086
  2. vscode의 터미널에서 port 8086을 통해 접속 or http://localhost:8086/
  3. login

Data Preprocessing (container 밖)

  1. 새로운 directory 생성 후 preprocessing.py 파일과 csv 파일 저장
  2. venv 설정
    • sudo -i
    • python3 -m venv .venv
    • source .venv/bin/activate
    • pip3 install pandas
    • pip3 install influxdb_client
    • 해당 directory에서 설정하면 .venv directory가 생기면서 나중엔 2번째 4,5번째 줄은 생략 가능
  3. Data Preprocessing python code 실행
    • python3 ktdata_preprocessing.py <raw data filename> <processed data filename>
    • python3 ktdata_preprocessing.py KT_gimpo_1_1.csv KT_gimpo.csv
  4. venv 환경 나와서 확인
    • venv 환경에서 생성된 전처리된 csv는 sudo 권한이 있어야 수정가능

InfluxDB에 data 등록 (여기서 부터는 GUI로도 가능함)

        **글의 처음에서 명시한 것 처럼 container 내부, 외부에서는 token 값만 변경해주면 동일, container 외부만 작성하겠음**
  1. bucket 생성
    • kubectl exec -it my-release-influxdb-85888dfd97-bjr5g -- influx bucket create -n <bucket name> -o primary -t $INFLUXDB_TOKEN
    • bucket list 확인 방법
      • kubectl exec -it my-release-influxdb-85888dfd97-bjr5g -- influx bucket list -o primary -t $INFLUXDB_TOKEN
  2. local에 있는 전처리 완료된 file을 container의 /tmp에 복사
    • kubectl cp <filename> default/<podname>:/tmp -c <containername>
    • kubectl cp KT_gimpo.csv default/my-release-influxdb-85888dfd97-bjr5g:/tmp -c influxdb
  3. InfluxDB의 bucket에 Data 등록
    • kubectl exec -it my-release-influxdb-85888dfd97-bjr5g -- influx write -b <bucketname> -f tmp/<filename.csv> -t $INFLUXDB_TOKEN -o primary --header "#constant measurement,DLdata" --header "#datatype long,dateTime:RFC3339"

    • kubectl exec -it my-release-influxdb-85888dfd97-bjr5g -- influx write -b KT_gimpo -f tmp/KT_gimpo.csv -t $INFLUXDB_TOKEN -o primary --header "#constant measurement,DLdata" --header "#datatype long,dateTime:RFC3339"

    • --header "#constant measurement,<measurement name>" : data 맨 앞에 을 붙임

  4. bucket 삭제 방법
    • kubectl exec -it my-release-influxdb-85888dfd97-bjr5g -- influx bucket delete --name KT_gimpo -o primary -t $INFLUXDB_TOKEN
  5. data 삭제 방법
    • container 내부에서만 가능한듯
    • 추후 정리 예정
    • 애매하면 그냥 bucket 삭제하세요

influxdb data format

  • format : measurement, tag_key1=tag_value1, tag_key2=tag_value2, field_key1=field_value1, timestamp
  • example : temperature,location=New York,unit=celsius, value=23.5, 1628845800000000000
    • measurement = temperature
    • tag_key1 = location
    • tag_value1 = New York
    • tag_key2 = unit
    • tag_value2 = celsius
    • field_key1 = value
    • field_value1 = 23.5
    • timestamp = 1628845800000000000
  • format
    • Measurement : 데이터의 카테고리나 종류
    • Tags : 데이터를 분류하거나 필터링하는 데 사용되는 키-값
    • Fields : 실제 데이터를 저장하는 키-값
    • Timestamp : 데이터의 수집 시점, 라인 프로토콜의 끝에 위치