目前隨著移動網際網路和物聯網的廣泛應用,90%以上的資料是和時間+空間相關的,而越來越多的資料應用場景與時間和空間資訊密不可分。時間+空間維度的資料(我們稱之為時空資料)是一種高維資料,需要更為高效的資料處理方式來處理,而普通的關係型資料庫更適合於儲存數值和字元型別資料,也缺少相關的時空運算元。在實際應用場景上例如感測器網路、移動網際網路、射頻識別、全球定位系統等裝置時刻輸出時間和空間資料,資料量增長非常迅速,這對儲存和管理時空資料帶來了挑戰,傳統資料庫很難應對以上場景。阿里雲時空資料庫能夠儲存、管理包括時間序列以及空間地理位置相關的資料,時空資料庫具有時空資料模型、時空索引和時空運算元,完全相容SQL及SQL/MM標準,支援時空資料同業務資料一體化儲存、無縫銜接,易於整合使用。
5月5日,阿里雲時空資料庫正式開始免費公測,公測期間我們提供了2core4g+100G雲盤的版本供客戶免費試用。
產品使用手冊:help.aliyun.com/document_de…
公測免費試用頁面:common-buy.aliyun.com/?commodityC…
產品優勢
易用(標準SQL介面)
SQL是目前最通用的資料庫訪問語言,時空資料庫基於標準PostgreSQL,支援JDBC/ODBC驅動訪問。時空資料同其它業務資料一體化處理,相容OGC空間計算函式;支援符合OGC規範的WKT和WKB格式資料輸入和輸出。
寫入效能強勁
時空資料,插入是一個強需求,往往有大量裝置上報軌跡、指標資料,因此對插入效能要求較高。阿里雲時空資料庫,單機不同規格下可以支援到數萬到數十萬的TPS寫入。
高效分析能力
時空資料,除單條的查詢、POI查詢,更多的是其他的分析類需求。這對時空資料庫的分析能力也是一個挑戰。阿里雲時空支援查詢條件自動選擇分割槽,高效空間索引,並行的聚合操作等提升分析效能。
自動擴充套件分割槽
業務對時空資料查詢,往往都會對時間區間進行過濾,因此時空資料通常在分割槽時,會有一個時間或空間分割槽的概念。時空資料庫支援自動擴充套件分割槽,減少使用者的管理量,不需要人為的干預自動擴充套件分割槽。
功能豐富
具有豐富的時間和空間處理查詢函式;支援點(POINT)、線(LINESTRING)、多邊形(POLYGON)、多點(MULTIPOINT)、多線(MULTILINESTRING)、多多邊形(MULTIPOLYGON)和幾何物件集(GEOMETRYCOLLECTION)等幾何型別儲存。
自動保留策略
根據使用者配置,自動刪除過舊資料,極大降低使用者使用成本,減少使用者管理工作。
自動Failover
阿里雲時空資料庫提供全自動Failover機制,一旦所在硬體發生不可恢復的故障,會在非常短的時間內使用其他硬體替換故障硬體。這樣可以減少因為不可控故障引發的服務中斷時間。該Failover是全自動的,無需人工干預,使用者也無需擔心服務由於硬體故障造成的長時間不可用。
高可靠
時空資料庫是一種高效能時空資料庫,底層儲存建立在阿里雲高效雲盤基礎之上,高效雲盤提供99.9999999%資料高可靠保障。可以保障時空資料庫資料一旦寫入,基本不會丟失。
生態
阿里雲時空資料庫在生態上非常易於同多種主流產品整合,比如地圖引擎(如GeoServer和MapServer)、地圖編輯系統(如QGIS和ArcGIS for Desktop)、資料分析與視覺化產品(如Grafana、Zeppelin和Jupyter)、大資料分析平臺(Spark),滿足模組化整合需求,為時空資料管理提供有力支撐。
資料寫入&查詢
時空資料庫寫入和查詢非常便利,讀寫採用標準SQL,使用者可以通過JDBC/ODBC驅動運算元據庫,進行讀寫操作。
使用者也可以通過psql互動式終端向時空資料庫寫入資料,下面是幾個簡單的例子:
INSERT INTO tsdb_test VALUES (1001, '2019-03-11 16:34:15', 1002.2,
ST_SetSRID(ST_MakePoint(10.3,20.1),4326)複製程式碼
使用者通過互動終端查詢資料,可以如下:
SELECT time,uid,speed,dev_type,ST_AsText(position) FROM metrics
WHERE time >'2017-01-01 01:02:00' AND time < '2017-01-01 01:11:02' AND
ST_Contains(ST_SetSRID(ST_MakeBox2D(ST_Point(12.4, 25.5),ST_Point(13.0,26.1)),4326),position);複製程式碼
關於時空資料庫的具體用法,可以參考阿里雲時空資料庫文件:開發指南
場景
地圖服務
地圖服務是一種非常廣泛的應用,便於各類業務資料空間化、空間分析和視覺化。這個場景介紹如何使用時空資料庫搭建地圖服務,並給出架構參考。
方案架構
時空資料庫作為儲存空間資料(如車輛定位資料)與空間查詢引擎,提供後端支援。GeoServer(GeoServer是一款知名的開源地圖服務引擎,支援OGC WFS、WMS、WPS等協議,易於部署,有大量的使用者)作為地圖服務引擎用於空間資料渲染和地圖釋出,前端客戶端採用Leaflet或openlayers框架,同時支援PC/Android/iOS多種型別終端。地圖釋出的主要流程包括三步:第一步在時空資料庫中匯入業務資料後;第二步通過GeoServer關聯資料庫;第三步選擇需要釋出的圖層,並對圖層設定相應對式樣。
人員監護
人員監護應用適用對兒童和老人監護,方便實時檢視活動軌跡、健康指標(體溫、血壓、心跳等);並設定電子圍欄(特定區域,比如學校、小區、公園等),當活動人員離開特定區域時觸發告警資訊。
方案架構
時空資料庫儲存時空和指標資料,並提供空間查詢功能,提供後端支援。GeoServer作為地圖服務引擎用於空間資料渲染和地圖釋出,前端客戶端採用Leaflet或openlayers框架。電子圍欄服務用於判斷移動目標同電子圍欄的空間關係,並觸發告警資訊。
車輛監控
車輛監控應用適用於檢視車輛當前和歷史軌跡,對車輛的行駛區域做限定,當脫離特定路線後能夠報警;並對車輛感測器獲取一些引數(比如車速、胎壓、電池電壓等)做實時監測。
方案架構
時空資料庫作為儲存軌跡及監測指標,提供空間及指標查詢功能,提供後端支援。GeoServer作為地圖服務引擎用於空間資料渲染、地圖釋出、時空資料入庫,前端客戶端採用Leaflet或openlayers框架。電子圍欄服務用於判斷移動目標同電子圍欄的空間關係,並觸發告警資訊。電子圍欄在這裡起到過濾器,再地圖伺服器的WFS服務寫入定位和感測器監測資料。
物流配送
物流配送應用適合於物流行業,提供導航規劃功能,並對物流過程做全程監控。
方案架構
時空資料庫作為儲存與路徑規劃引擎,提供後端支援。GeoServer作為地圖服務引擎用於空間資料渲染、地圖釋出、時空資料入庫,前端客戶端採用Leaflet或openlayers框架。在時空資料庫儲存路網資料,路網資料是做導航規劃的基礎;在客戶端選擇起始點和目的地後,由時空資料庫計算最佳導航路線,經客戶端確認後把導航路線推送給物流終端。時空資料庫充當兩個角色:軌跡資料儲存和導航路徑計算。從物流終端獲取的軌跡資料通過地圖伺服器WFS服務存入時空資料庫。
軌跡分析
軌跡分析用於計算軌跡之間的關係以及軌跡與專題地圖之間的關係;軌跡分析可以用於分析道路擁堵時空特徵、人員活動熱點區域、異常行駛車輛等,適用業務場景非常廣,比如可以用於商業選址、交通優化、公共安全等。
方案架構
地圖伺服器(GeoServer)接收軌跡輸入,軌跡和其它監測資料存入時空資料庫;軌跡關聯計算用於軌跡聚合計算,識別軌跡之間的關係(如軌跡聚類)和軌跡與地圖之間的關係(如以道路作為專題圖,車輛軌跡的密集程度反應道路的擁堵情況)。軌跡關聯計算涉及大量的時空查詢需要利用時空資料庫做加速處理。
總結
時空資料庫通過融合時序和空間資料模型,來滿足不同時空資料場景的要求,更貼近業務;提供多元化索引(空間索引和時序索引等)來滿足不同型別場景條件查詢需求;提供自動分片及自動刪除過舊資料策略,來降低使用者管理成本,提升便利性。同時還在穩定性、可靠性、運維上提供優化服務,讓使用者能夠在融合的PostgreSQL生態下,更專注於自己的業務。
本文為雲棲社群原創內容,未經允許不得轉載。