Machlake는 입력된 센서 tag데이터들을 자동으로 tag별, 시간별로 통계 데이터를 생성한다. 이렇게 생성한 통계데이터는 이 API를 통해서 검색할 수 있다. 이 API를 이용하면 대량의 센서 데이터를 연, 월, 일간 단위로 통계값을 얻어서 빠르게 차트를 생성하는 등의 연산이 가능하다.
자동으로 생성되는 통계데이터는 각 tag별 Min, Max, Sum, Count, Average이다.
HTTP Request
GET https://${CloudVendor}.${CountryCode}.machlake.com/lakes/${lake_id}/values/calculated Content-Type: application/json; charset=utf8 x-api-key: {API Key}
Parameters
Optional | Type | Description | Example |
---|---|---|---|
direction | int | 오름차순 혹은 내림차순 설정 | &direction=0 |
limit | int | 출력할 데이터의 수 | &limit=1000 (default : Limited according to Lake tier) |
offset | int | 검색후 건너뛸 데이터의 수 | &offset=500 |
date_format | string | Time값의 포멧 지정 DATE_FORMAT 혹은 timestamp 단위("SECOND", "MILLISECOND", "MICROSECOND", "NANOSECOND") | &date_format=YYYY-MM-DD HH24:MI:SS (default : YYYY-MM-DD HH24:MI:SS) |
interval_value | int | interval_type에서 지정된 단위의 배수. interval_type이 min이고 interval_value가 3이면 3분마다 결과를 출력 | &interval_value=10 (default : 1) |
end_time | string | 검색 종료 시간 (start_time보다 커야 함) same as start_time | same as start_time |
calc_mode | string | min,max,cnt,avg,sum | &calc_mode=min (default : avg) |
value_return_form | int | 결과 출력 방법
| 0 : separate standard (default) 1 : merged standard |
interval_type | string | sec,min,hour,day (or s,m,h,d) | &interval_type=hour (default : sec) |
separator | string | 매개변수의 tag_name, columns, and_condition들을 구분하는 구분자 | &separator=| (default : ,) |
start_time | string | 검색 시작 시간 (종료시간보다 적은 값이어야 함) 아래의 두가지 중 하나의 방법으로 설정 type 1 : 시간 문자열 start_time=2018-01-16 14:40:05 000 start_time=2018-01-16 14:40:05.000 type 2 : 밀리초 혹은 마이크로초 기반 타임스탬프 start_time=1618813188 start_time=1618813188123 | &start_time=2018-01-16 14:40:05 000
|
tag_name | string | Tag의 이름. 여러개를 명시하려면 ',' 문자를 이용하여 나열할 수 있다. | &tag_name=tag1,tag2,tag3 |
Request Example
GET https://aws1.us.machlake.com/lakes/xbacd1234/values/calculated?tag_name=tag_01,tag_02&value_return_form=0&start_time=2021-06-16 11:35:00&end_time=2021-07-06 12:12:28&calc_mode=avg&interval_type=min&limit=1000 Content-Type: application/json; charset=utf8 x-api-key: {API Key}
Response Example
Status 200 // return format = 0 { "status": "success", "data": { "calc_mode": "AVG", "columns": [ {"name": "TIME", "type": 5, "length": 4096}, {"name": "VALUE", "type": 20, "length": 17} ], "samples": [ { "tag_name": "tag_02", "data": [ {"TIME": "2021-06-16 11:36:00", "VALUE": 1524.3684}, {"TIME": "2021-06-16 11:37:00", "VALUE": 1490.107}, {"TIME": "2021-06-17 15:44:00", "VALUE": 1508.5176}, {"TIME": "2021-07-06 12:12:00", "VALUE": 1628} ] }, { "tag_name": "tag_01", "data": [ {"TIME": "2021-06-16 11:36:00", "VALUE": 1515.4806}, {"TIME": "2021-06-16 11:37:00", "VALUE": 1513.4624}, {"TIME": "2021-06-17 15:42:00", "VALUE": 1499.0289}, {"TIME": "2021-06-17 15:43:00", "VALUE": 1470.2225}, {"TIME": "2021-06-17 15:44:00", "VALUE": 1487.0528}, {"TIME": "2021-07-06 12:12:00", "VALUE": 1887.5} ] } ] } } // return format = 1 { "status": "success", "data": { "calc_mode": "AVG", "columns": [ {"name": "TIME", "type": 5, "length": 4096}, {"name": "VALUE", "type": 20, "length": 17} ], "samples": [ { "tag_name": "tag_02", "data": { "TIME": [ "2021-06-16 11:36:00", "2021-06-16 11:37:00", "2021-06-17 15:44:00", "2021-07-06 12:12:00" ], "VALUE": [ 1524.3684, 1490.107, 1508.5176, 1628 ] } }, { "tag_name": "tag_01", "data": { "TIME": [ "2021-06-16 11:36:00", "2021-06-16 11:37:00", "2021-06-17 15:42:00", "2021-06-17 15:43:00", "2021-06-17 15:44:00", "2021-07-06 12:12:00" ], "VALUE": [ 1515.4806, 1513.4624, 1499.0289, 1470.2225, 1487.0528, 1887.5 ] } } ] } }
Sample Code
아래 샘플에서 매개변수와 옵션에 따른 다양한 검색 방법을 제시한다.