首页 > 数据库 > MySQL > 时间和空间的完美统一!阿里云时空数据库正式商业化




CREATE TABLE tsdb_test( uid bigint, time timestamp,
speed float, position geometry(Point,4326) );
SELECT create_hypertable('tsdb_test', 'time', chunk_time_interval => interval '1 hour');
INSERT INTO tsdb_test VALUES (1001, '2019-03-11 16:34:15', 102.2, ST_SetSRID(ST_MakePoint(10.3,20.1),4326)), (1001, '2019-03-11 16:34:16', 100.1, ST_SetSRID(ST_MakePoint(10.4,20.1),4326)), (1002, '2019-03-11 16:34:17', 60.0, ST_SetSRID(ST_MakePoint(10.5,20.2),4326)), (1002, '2019-03-11 16:34:18', 61.0, ST_SetSRID(ST_MakePoint(10.6,20.2),4326)), (1003, '2019-03-11 16:34:20', 39.0, ST_SetSRID(ST_MakePoint(10.7,20.2),4326)), (1003, '2019-03-11 16:34:21', 30.0, ST_SetSRID(ST_MakePoint(10.8,20.2),4326));
SELECT time,uid,speed,ST_AsText(position) FROM tsdb_test WHERE time >'2019-03-11 16:00:00' AND time < '2019-03-11 18:00:00' AND ST_Contains(ST_SetSRID(ST_MakeBox2D(ST_Point(2.4, 5.5),ST_Point(13.0,26.1)),4326),position) ; +---------------------+---------------+-----------------+---------------------+ | TIME | UID | SPEED | ST_ASTEXT | +---------------------+---------------+-----------------+---------------------+ | 2019-03-11 16:34:15 | 1001 | 102.2 | POINT(10.3 20.1) | | 2019-03-11 16:34:16 | 1001 | 100.1 | POINT(10.4 20.1) | | 2019-03-11 16:34:17 | 1002 | 60 | POINT(10.5 20.2) | | 2019-03-11 16:34:18 | 1002 | 61 | POINT(10.6 20.2) | | 2019-03-11 16:34:20 | 1003 | 39 | POINT(10.7 20.2) | | 2019-03-11 16:34:21 | 1003 | 30 | POINT(10.8 20.2) | +---------------------+---------------+-----------------+---------------------+
UPDATE tsdb_test set position = ST_SetSRID(ST_MakePoint(11.1,22.2),4326) WHERE uid=1002;
SELECT uid,time_bucket('5 minutes', time) AS interval, max(speed)
FROM tsdb_test
WHERE uid='1002' and
time < '2019-04-01 01:13:42'
GROUP BY uid, interval
ORDER BY interval DESC;
+---------------+---------------------+---------------+
| UID | INTERVAL | MAX |
+---------------+---------------------+---------------+
| 1002 | 2019-03-11 16:30:00 | 61 |
+---------------+---------------------+---------------+
SELECT time,uid,speed,ST_AsText(position)
FROM tsdb_test
WHERE time > '2019-01-01 01:02:00' and
time < '2019-04-01 01:11:02' and
ST_Distance('SRID=4326;POINT(2.4 5.5)'::geometry, position)>17.0;
+---------------------+---------------+-----------------+---------------------+
| TIME | UID | SPEED | ST_ASTEXT |
+---------------------+---------------+-----------------+---------------------+
| 2019-03-11 16:34:17 | 1002 | 60 | POINT(11.1 22.2) |
| 2019-03-11 16:34:18 | 1002 | 61 | POINT(11.1 22.2) |
+---------------------+---------------+-----------------+---------------------+
SELECT time,uid,speed,ST_AsText(position) FROM tsdb_test WHERE time > '2019-03-01 01:02:00' and time < '2019-03-15 01:11:02' and speed > 60; +---------------------+---------------+-----------------+---------------------+ | TIME | UID | SPEED | ST_ASTEXT | +---------------------+---------------+-----------------+---------------------+ | 2019-03-11 16:34:15 | 1001 | 102.2 | POINT(10.3 20.1) | | 2019-03-11 16:34:16 | 1001 | 100.1 | POINT(10.4 20.1) | | 2019-03-11 16:34:18 | 1002 | 61 | POINT(11.1 22.2) | +---------------------+---------------+-----------------+---------------------+
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69947441/viewspace-2657611/ ,如需转载,请注明出处,否则将追究法律责任。