0
에서
id timestamp status
167 6/28/2016 8:05:58 PM 0
167 6/28/2016 8:06:02 PM 0
167 6/28/2016 8:06:05 PM 0
167 6/28/2016 8:08:06 PM 0
167 6/28/2016 8:08:10 PM 0
167 6/28/2016 8:08:13 PM 3
167 6/28/2016 8:08:17 PM 3
167 6/28/2016 8:10:41 PM 3
167 6/28/2016 8:10:45 PM 3
167 6/28/2016 8:10:48 PM 3
167 6/28/2016 8:10:51 PM 0
167 6/28/2016 8:10:55 PM 0
167 6/28/2016 8:26:40 PM 0
167 6/28/2016 8:26:44 PM 0
167 6/28/2016 8:26:47 PM 3
167 6/28/2016 8:26:50 PM 3
167 6/28/2016 8:29:19 PM 3
167 6/28/2016 8:29:23 PM 3
167 6/28/2016 8:29:26 PM 0
167 6/28/2016 8:29:29 PM 0
167 6/28/2016 8:30:33 PM 0
167 6/28/2016 8:30:37 PM 0
167 6/28/2016 8:30:40 PM 3
167 6/28/2016 8:30:44 PM 3
167 6/28/2016 8:33:11 PM 3
167 6/28/2016 8:33:15 PM 3
167 6/28/2016 8:33:18 PM 0
167 6/28/2016 8:33:21 PM 0
167 6/28/2016 8:33:45 PM 0
167 6/28/2016 8:33:48 PM 0
167 6/28/2016 8:33:52 PM 0
167 6/28/2016 8:33:55 PM 3
167 6/28/2016 8:33:58 PM 3
167 6/28/2016 8:34:59 PM 3
167 6/28/2016 8:35:03 PM 3
위의 데이터는 우리의 IoT
시스템 중 하나이며 기본적으로 기계가 WRT에 어떤 상태에 알려줍니다 내가에 시간 단위에서 생산 된 부품을 계산할 timestamp
쿼리 튜닝 Dashdb
0 being Stop and 3 being running.
로 1 시간이고 논리는 기계 상태가 3에서 0으로 바뀌는 지 확인한 다음 aprt를 생성합니다.
다음 쿼리를 작성했으며 의도 한 결과를 제공합니다. 우리가 3-5 기계를 위해 그것을 실행하면 쿼리는 잘 작동하는데, 24 시간 안에 100 대의 기계가 실행된다면 오랜 시간이 걸릴 것입니다. 지금은 1 시간 데이터에 대해 장치 당 14 분이 걸립니다.
인프라 - DashDB in bluemix
,이 데이터베이스에 대한 데이터는 cloudant
에서 다시 bluemix
서비스로 푸시됩니다.
====
select a.runstatus,a.runcount ,b.runstatus,b.runcount from (SELECT a.run_status runstatus, count(a.run_status) runcount
FROM machinedata a where a.run_status <> (SELECT b.run_status
FROM machinedata b
WHERE a.machine_id = b.machine_id
AND a.timestamp > b.timestamp
ORDER BY b.timestamp DESC
LIMIT 1
) and a.machine_id = 167 and a.run_status=0 AND a.`timestamp` BETWEEN '2016-06-28 20:00:01'
AND '2016-06-28 20:59:59' group by a.run_status) as a,
(SELECT a.run_status runstatus, count(a.run_status) runcount
FROM machinedata a where a.run_status <> (SELECT b.run_status
FROM machinedata b
WHERE a.machine_id = b.machine_id
AND a.timestamp > b.timestamp
ORDER BY b.timestamp DESC
LIMIT 1
) and a.machine_id = 167 and a.run_status=3 AND a.`timestamp` BETWEEN '2016-06-28 20:00:01'
AND '2016-06-28 20:59:59' group by a.run_status) as b
HI 스텐, 구문은 내가 다시 확인 –
@LohithKumar "에 의해 순서"오류 근처를주고있다을 그리고 내가 그것을 붙여으로 잘 작동합니다. –
여기에 테스트를 위해 만든 테이블이 있습니다.'''CREATE TABLE MACHINEDATA (ID INT, TIMESTAMP TIMESTAMP, STATUS INT)''' –