時間和空間的完美統一!阿里雲時空資料庫正式商業化
經過一段時間公測,得到廣大客戶的熱烈支援,阿里雲時空資料庫已經於2019年9月10日正式商業化售賣!
產品介紹
時空資料庫能夠儲存、管理包括時間序列以及空間地理位置相關的資料。我們的社會生產、經濟活動和社會交往同時空資料密切相關,比如感測器網路、移動網際網路、射頻識別、全球定位系統等裝置時刻輸出時間和空間資料,資料量增長非常迅速,這對儲存和管理時空資料帶來了挑戰,傳統資料庫很難應對時空資料。時空資料是一種高維資料,普通的關係型資料庫更適合於儲存數值和字元型別資料,也缺少相關的運算元。阿里雲時空資料庫具有時空資料模型、時空索引和時空運算元,完全相容SQL及SQL/MM標準,支援時空資料同業務資料一體化儲存、無縫銜接,易於整合使用。
產品首頁
產品使用手冊詳見:https://help.aliyun.com/document_detail/116088.html?spm=a2c4g.11174283.6.727.1b22130eu4OBeh
適用場景
交通監控與分析、物流配送、可穿戴裝置監測、新能源車輛監測、LBS、地圖服務等。
產品特性
- 時間序列資料與空間資料有效統一,滿足大規模時空資料儲存和查詢,方便從多個維度分析和利用資料;
- 基於PostgreSQL擴充套件,改進PostgreSQL索引,大幅度提升時空檢索效能,同時相容PostgreSQL現有生態;
- 儲存依託於阿里雲盤古系統,資料可靠性超過6個9;
- 具有自動備份和恢復能力;
- 具有完善的高可用架構,支援自動化主機與備機切換;
- 有時空領域資深專家提供支援,為客戶的業務保駕護航;
產品購買流程
在購買時空資料庫之前,需要先滿足以下前提條件:
- 您已經註冊了阿里雲賬號並完成實名認證。否則,請先註冊阿里雲賬號。
- 您已擁有阿里雲專有網路(VPC)。時空資料庫只支援在 VPC 網路建立例項(但之後您可以選擇通過 VPC 或公網訪問例項)。如果沒有 VPC 網路,請登入專有網路(VPC)控制檯開通 VPC,然後在對應的地域和可用區建立專有網路和交換機。關於建立 VPC 的具體資訊,請參考
以“華北1(杭州)” 地域為例,下面演示具體建立流程。
ACTION1: 在使用的區域內,建立VPC例項
https://vpc.console.aliyun.com/vpc/cn-hangzhou/vpcs
以“華北1(杭州)”區為例,選擇地域:華東1(杭州),交換機選項中,選擇需要的可用區如“杭州 可用區B”, 後續建立時空資料庫例項,會用到 “地域” 、“可用區”、“VPC”、“交換機” 這幾個概念。
建立VPC完成之後,可以檢視VPC的詳情
ACTION2: 建立時空資料庫例項
https://common-buy.aliyun.com/?commodityCode=hitsdb_spatialpre#/buy
- 地域:華東1(杭州)
- 可用區:華東1 可用區B
- 版本:選擇基礎版或高可用版。詳細介紹請參考文件
- 專有網路(VPC): 選擇剛剛建立的VPC
- 專有網路交換機:選擇剛剛建立的VPC下的交換機
ACTION3: 購買成功之後,登入TSDB控制檯,檢視例項詳情
ACTION4: 在“例項詳情”頁面中,檢視“公共網路地址” 和 “VPC網路地址”,設定網路白名單。
這裡為了測試方便,VPN和公共網路的引數都設定成“0.0.0.0/0”
ACTION5: 在“例項詳情”頁面中,左側選擇“賬戶管理”進入賬戶建立頁面,建立高許可權賬號
至此,整個時空資料庫的初始化工作已經完成,可以通過外部網路或VPC專有網路,連線時空資料庫互動。
資料寫入查詢
時空資料庫寫入和查詢非常便利,讀寫採用標準SQL,使用者可以通過JDBC/ODBC驅動操作資料庫,進行讀寫操作。
使用者也可以通過psql互動式終端向時空資料庫寫入和查詢資料,下面是幾個簡單的例子:
建立一個時空表:
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;
時空分析功能
使用者可以使用時間&空間分析函式,對時空資料庫中的表做分析查詢。以共享汽車平臺中車輛資料為背景,舉幾個簡單的例子。
按時間視窗聚合
按照5分鐘為一個聚合時間視窗,獲取共享汽車平臺中車輛的最大速度;常見聚合函式如:sum,max,min,avg等
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 |
+---------------+---------------------+---------------+
按時間段和距離過濾
返回某個時間段,與指定物件的距離大於“17米”的車輛。空間範圍函式比如: ST_Distance等使用,參考:空間物件關係函式。
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) |
+---------------------+---------------+-----------------+---------------------+
普通屬性值過濾
根據使用者設定的數值限制條件,返回某時間段內“速度>60”的車輛記錄。比如: “>”, “<”, “=”, “<=”, “>=”, “!=”。ST_AsText的使用,參考:空間物件輸出函式
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) |
+---------------------+---------------+-----------------+---------------------+
關於時空資料庫的具體用法,可以參考阿里雲時空資料庫-開發指南
阿里雲時空資料庫致力於推動時空領域生態發展,為客戶提供低成本高效能服務,讓時空資料價值線上化!
產品首頁:https://www.aliyun.com/product/hitsdb_spatialpre
產品使用手冊詳見:https://help.aliyun.com/document_detail/116088.html?spm=a2c4g.11174283.6.727.1b22130eu4OBeh
時空資料庫例項建立:https://common-buy.aliyun.com/?commodityCode=hitsdb_spatialpre#/buy
本文作者:胡笳
本文為雲棲社群原創內容,未經