揭祕京東城市時空數據引擎—JUST如何助力交通流量預測

2014年跨年夜上海外灘人流隱患事件,使得公共安全問題受到了全體社會的普遍關注。解決這一問題的很重要一項工做就是:如何實時監控和快速預測城市中每一個地方的人流量。當某個地方的人流量超過給定的值或者有超過給定值的趨勢時,相關部門能及時地採起相關措施,例如:疏散人羣,交通引流等,這樣才能防止悲劇的再次發生。算法

爲避免相似公共安全隱患,解決因人流問題形成的交通、社會治安等問題,搭建城市實時人流監控預測系統勢在必行。數據庫

▲圖1 上海外灘的踩踏事件安全

京東城市做爲系統建設中標單位,對整個系統的需求進行了初步分析,發現一個區域的人流量與多種數據相關,如圖2所示。網絡

好比:(1)手機基站數據。當一個地方的手機信令數據越多時,說明周圍的人也越多;框架

(2)視頻監控數據。從視頻的畫面中,可以識別出大約有多少人;分佈式

(3)交通流量數據。某條路的交通流量直觀的反映了某個區域的流入流出人數;函數

(4)出行軌跡數據。軌跡數據可以反映出人的流向;性能

(5)天氣數據。人的出行受天氣的影響,好比下雨天,人們都不多出門,所以天氣數據也有助於人流量的預測;學習

(6)不一樣的地點所能承載的最大人流量是不一樣的。好比大型火車站,2萬的人其實不會形成公共安全威脅,可是若是一個小區忽然有2萬人,那就須要注意了。所以,每一個區域的建築類型(咱們稱之爲興趣點或POI)、建築密度、道路結構等均可以幫助人流的預警;大數據

(7)最後,若是事先了解到諸如舉行演唱會等事件信息,也有助於人流量的預測。

▲圖2 業務數據

上面說的這些數據,單從一項數據是沒法實時監測和有效預測某個區域的人流量的,由於一項數據僅僅反映某一方面的信息。必須綜合利用盡量多的數據,纔能有效地實現人流量的監控與預警,確保公共安全。

通過分析論證後,肯定的大致思路是:(1)利用上述的多種數據計算出某個時間段每一個區域的流入、流出的人流量;(2)採用AI算法模型對城市中每一個區域的人流量進行建模;(3)利用創建好的模型,根據最近一段時間各區域的人流量,快速預測將來一段時間內每一個區域的人流量,並給出潛在的預警。

總體解決思路肯定以後,最關鍵的就是研究數據並敲定建模方法。但問題是:(1)這麼多種類的數據須要如何有效管理?(2)如何從各類類型數據中快速地提取特徵指標,例如人流量?(3)如何方便快速地構建模型,並對模型進行有效性驗證?

若是上面三個問題沒法高效解決,那人流監控及預測根本沒法保證明時性。只有快速監控和預測人流量,纔能有效地施行交通管制、人流疏散,防止相似於踩踏事件的公共安全事故發生。

但這個問題要解決並不容易,首先,同類型的不一樣來源業務數據,數據格式可能不同,無法統一建表,這樣只能爲每一份數據單獨設計一張表,並且當入庫數據量達到1T的時候,MySQL數據庫直接崩潰。即便好不容易能把數據導入到MySQL數據庫,每每缺少更深刻的MySQL數據庫調優經驗,一個簡單的數據查詢過程,耗時費力。

針對這些困境,京東城市自研了——時空數據引擎(JUST引擎),經過把帶有時間、空間、位置屬性的數據統稱爲時空數據,而且藉助JUST引擎強大的數據建模能力,將數據歸類成6大類時空數據模型,全部的時空數據咱們均可以按照6大類數據模型進行入庫管理。這6種數據類型的分類方式爲:

一方面,世間萬事萬物均可以由實體對象以及實體對象之間的關係組成。若實體對象之間不存在關聯,咱們稱之爲點數據;若實體之間存在關聯,咱們稱之爲網數據。

另外一方面,根據數據的時間和空間的動態特性,咱們能夠將數據分紅4類:時空靜態數據、空間靜態時間動態數據、空間動態時間靜態數據、時空動態數據。可是,因爲同一物體在同一時刻只能出如今一個地方,空間動態時間靜態數據不會存在。所以,根據時空動態特性,咱們將時空數據最終分紅了3類,即:時空靜態數據、空間靜態時間動態數據和時空動態數據。

綜上,根據城市數據的時空特性以及實體間的關聯性,咱們能夠將城市數據劃分紅(4-1)×2 = 6類,如圖4所示。

(1)時空靜態點數據:以空間點的形式存在,空間位置和讀數都不隨時間變化。上述數據中,興趣點就是這類數據,例如,火車站一旦建好,它的位置、大小、分類等信息將再也不隨時間變化;

(2)空間靜態時間動態點數據:以空間點的形式存在,其位置信息不隨時間變化,但會接二連三地產生讀數。上述數據中,監控視頻數據、天氣數據就是這類數據;

(3)時空動態點數據,以空間點的形式存在,但位置和讀數均隨時間變化。上面用到的數據中,事件數據就是典型的時空動態點數據。生活中的打車數據、訂單數據也是這類數據;

(4)時空靜態網數據,以網絡的形式存在,位置和讀數均不變化。上面用到的數據中,路網數據就屬於此類;

(5)空間靜態時間動態網數據,是指空間網絡上產生的一系列讀數。例如交通流量,每條路上每隔一段時間都會產生一條讀數;

(6)時空動態網數據,以網的形式存在,且空間位置和讀數不斷變化。上面用到的軌跡數據就是一種特殊的時空動態網數據。

回到人流預測場景,計算某個區域的絕對流出人數,就是計算出某個時刻的總人數相對於上一時刻的總人數的差值。這是典型的時空範圍查詢的問題。傳統的關係型數據庫,例如MySQL、Oracle以及PostGIS,雖然整合了時空數據管理的模塊,可以知足小數據量的時空範圍查詢。可是一旦數據量很大,系統就會崩潰。

針對海量數據,目前採用的主流方法是分佈式非關係型數據庫,例如HBase。然而,原生的HBase是一個鍵值(key-value)數據庫,只能根據一維的鍵值快速找到記錄,沒有有效的時空索引(時空數據能夠當作是3維的:經度、緯度、時間),沒法高效實現時空範圍查詢等查詢分析。此外,HBase自己沒有對時空數據進行優化存儲,所以佔用的磁盤空間很是大。以軌跡數據爲例,傳統的存儲方式如圖5所示,每一個GPS點佔用一行數據,形成數據條目數與GPS點的數目相同,致使存儲空間開銷很大。

▲圖5 傳統HBase軌跡數據存儲方式

針對這些問題,JUST引擎爲HBase建立了多種高效時空索引,將多維的時空信息編碼到一維的鍵當中,可以快速定位諸如時空範圍查詢等查詢的數據。當前JUST支持的時空索引如圖6所示,分別對應不一樣的數據查詢場景。

這就比如你在圖書館的書架上找書的過程 ,沒有建立時空索引的HBase,須要你在書架上一本一本地查找你要的書。而擁有時空索引的JUST會告訴你,你所須要的書在哪一個書架、第幾層、第幾本中,大大減小你的查找時間。

除此以外,JUST還對6種時空數據類型的每種數據類型設計了最佳的索引存儲方式以及數據分析方法。仍是以軌跡數據爲例,咱們預置了多種開箱即用的軌跡處理方法,包括軌跡異常值過濾、軌跡分段、軌跡地圖匹配、軌跡插值等;對於每條分段後的軌跡,咱們將這條軌跡的GPS點存儲在同一條數據記錄中,並採用GZip壓縮方式,這樣可以大大減小數據的條目數和佔用空間,如圖7所示。經過咱們的實驗,採用JUST的軌跡存儲方法與原來傳統的非關係型數據庫的存儲方法相比,磁盤空間縮小至1/8。更小的存儲空間不只節約磁盤空間,在有限的網絡帶寬下還加速了查詢效率。比如一扇不大的門,對於胖子們來講,一次只能一我的穿過,而對於瘦子來講,能夠容許兩我的同時通過。

▲圖7 JUST中軌跡數據存儲方式

咱們還提出了更爲精確描述軌跡形狀的方法。如圖8所示。傳統的描述軌跡形狀的方法是使用一個矩形框,該矩形框很大空間都與軌跡位置無關。所以咱們提出了採用多個小格子來描述軌跡形狀的方法。更精確的軌跡形狀描述容許咱們設計出了更好的過濾方法,更進一步的提升了查詢效率。

▲圖8 精確描述軌跡形狀

正是先進的索引方法和存儲方法,使得JUST的計算效率有了巨大的提高。其中,存儲和索引效率相較於原生HBase提高超過7倍,查詢效率相對於其餘時空查詢框架有了上100倍的提高,如圖9所示。目前相關研究工做申請了多項國家專利,相關論文也已被國際頂尖會議ICDE 2020接收,受到了國際同行的承認。(TrajMesa: A Distributed NoSQL Storage Engine for Big Trajectory Data.ICDE 2020)

▲圖9 性能對比

在實現高效率的同時,JUST平臺一樣也具備「易用性」的特色。經過爲用戶提供JUST SQL模塊,以上全部的操做均可以經過SQL語句簡單實現。只要熟悉任何一種關係型數據庫,熟悉SQL語句,幾乎可以以零學習成本地玩轉JUST。

此外,咱們還爲AI算法工程師量身定作了一套Notebook,全部的數據處理和模型訓練,均可以在JUST Notebook上一站式進行,與此同時,還預置了豐富的開箱即用的數據預處理、數據分析、特徵提取方法,用戶能夠隨意進行組合。

目前,除了城市實時人流監控預測系統項目,JUST還完成了多個項目的交付,包括:雄安新區塊數據平臺、廣漢國家農業產業園、南通市域治理現代化項目等,如圖10所示。

▲圖10 更多的項目使用了JUST

JUST已經推出了公測版本,以PaaS的形式對外提供服務,讓更多的人可以享受到JUST的高擴展性、高效率以及強易用性。JUST的產品主頁和產品門戶分別如圖11和圖12所示。

【產品主頁】

http://just.urban-computing.cn/

【產品門戶】

http://portal-just.urban-computing.cn/

▲圖11 JUST產品主頁

▲圖12 JUST產品門戶

傳統GIS廠商的時空大數據管理平臺能夠理解爲一個數據集市,提供各種空間數據的可視化服務,查詢能力僅侷限於空間查詢,並非真正意義上的時空數據管理平臺,能夠理解爲大數據量空間數據管理平臺。

相較於業內同類型的其餘時空數據管理平臺,JUST提供了豐富的時空數據模型,可以全面覆蓋全部時空數據;同時設計了高效的索引存儲管理方法,爲每一種數據類型封裝了豐富的開箱即用的處理分析函數;此外,JUST還提供了完整的SQL引擎,全部的操做均可以簡單的使用SQL語句實現;爲AI算法工程師準備了完備的Notebook,方便一站式地模型構建。

總之,JUST容許用戶可以更方便、更快捷地管理更大規模的時空數據。

【相關論文】

  • JUST: JD Urban Spatio-Temporal Data Engine. (ICDE 2020)

  • TrajMesa: A Distributed NoSQL Storage Engine for Big Trajectory Data (Short Paper). (ICDE 2020)

 

推薦閱讀

歡迎點擊【京東科技】,瞭解開發者社區

更多精彩技術實踐與獨家乾貨解析

歡迎關注【京東科技開發者】公衆號

相關文章
相關標籤/搜索