본문 바로가기
SW Developer/Iot ThingsBoard

Thingsboard 특정 device 나 Entity DB Migration 방법

by ashespia 2022. 7. 10.
SMALL

 

 

Thingsboard 특정 device 나 Entity DB Migration 방법

 

 

Thingsboard Device 단위 Backup Restore 전 사전 준비 사항

1.     Device ID 확인

백업하고자 하는 단말 정보의 Copy device ID 통해 준비

2. SQL문 실행을 위한 Console을 접속 및 DB 접속 해서 Thingsboard 테이블 접속

sudo -u postgres psql

postgres=# \c thingsboard;

 

1.   Backup Table 생성하여 Copy 테이블 생성 (Create a table with only the data you need to export:)

 

create table export_telemetry as

select * from ts_kv

where entity_id = '[your_device_id]' and ts>[your_value_start_ts] and ts<[your_value_end_ts];

 

[your_device_id] - ID of device you want to migrate telemetry from;
[your_value_start_ts] - start of range in epoch milliseconds
[your_value_end_ts] - end of time range in milliseconds

 

2.   이전 할 DBdevice 가 같은 지 확인 후 다른 경우 변경 작업 진행(이번 작업에서는 device_id 동일하여 생략) Create a device on the ThingsBoard you want to migrate this data to, copy its ID and edit the export table correspondingly:

 

update table export_telemetry

set entity_id='[new_device_id]'

where entity_id='[old_device_id]'


[new_device_id] - ID of the device you want import data to, from new ThingsBoard instance
[old_device_id] - ID of the device you are exporting data from, from old ThingsBoard instance

 

3.   CopyDB 테이블 덤프

Dump this specific table:

 

pg_dump -U postgres -h <host_name> -d thingsboard --table=export_telemetry --data-only --column-inserts > export_telemetry.sql

 

 

4. Edit the file (via any text editor) and change all

public.export_telemetry entries to public.ts_kv 

 

이전할 서버와 백업한 서버의 Table 정보가 같아서 thingsboard.ts_tv가 아닌 public.ts_tv로 교체 작업

sed 명령어로 파일 일괄 변환 

 

sed -i 's/public.export_telemetry_0695074/public.ts_kv/g' export_telemetry_0695074.sql

5. Restore it onto your new DB instance:

덤프 뜬 sql 문을 이용하여 Restore 

RDS의 경우는 -h 옵션의 localhost 정보를 AWS RDS Endpoint 정보로 교체 해서 restore 하면 된다.

 

psql -U postgres -d thingsboard -h localhost < export_telemetry_0695074.sql

LIST

댓글