一種地理位置信息相關聯的物聯網時間序列數據存取方法與流程
2023-04-27 11:25:01
本發明涉及計算機大數據存儲領域,特別涉及一種地理位置信息相關聯的物聯網時間序列數據存取方法。
背景技術:
近年來,隨著物聯網技術的日漸成熟,以及物聯網技術在各個行業應用中的快速拓展,物聯網傳感器在線監測管理變得尤為重要。面對海量物聯網傳感器和海量傳感器時間序列數據,採用何種方法來快速存儲和查詢是重要課題。以下以車輛行駛管理系統為例具象化當今面臨的與地理位置信息相關聯的物聯網時間序列數據存儲和查詢方面實際課題。在車輛行駛管理系統中,車輛行駛路徑的管理是基於車載導航設備記錄下來的時間序列位置坐標點而工作的。通常情況下,車輛管理應用會有幾種常用需求:全局範圍內全部車輛位置數據實時展示;指定時間範圍內具體車輛軌跡描繪;指定時間範圍內局部區域車輛數據分析。為了達到這些需求,需要對對象車輛在指定時間段內上傳的所有位置坐標點進行時間排序並連接。相鄰位置坐標點之間的時間間隔越短,路徑越精細。為了比較詳細的記錄出車輛的軌跡,管理系統中對於車輛的時間序列數據存儲必須要取比較小的時間間隔,這樣便產生了大量的車輛時間序列數據,如何存儲和快速讀取這些數據成為車輛信息管理中最首要的問題。例如:專利申請號CN201110139482.5公開號CN102214394A的中國發明專利「車輛信息智能化管理方法及系統」提供了北鬥和GPS定位單元集成方法和車輛管理系統,但北鬥和GPS定位單元產生的大量車輛時間序列數據如何存放並沒有考慮。由於在現實需求中,不但要對能夠存儲的與地理位置信息相關聯的物聯網時間序列數據有數據總量及吞吐量的要求,而且還要求能夠快速的獲取指定時間範圍的或指定空間範圍的地理位置信息相關聯的物聯網時間序列數據,利用傳統的數據存儲方式很難滿足所述需求。故,急需一種有效的海量地理位置信息相關聯的物聯網時間序列數據的存儲和查詢方法,解決物聯網傳感器在線監測管理系統中產生大量地理位置信息相關聯的物聯網時間序列數據的存儲和根據指定時間範圍、空間範圍以及全局範圍快速查詢數據的問題。
技術實現要素:
有鑑於此,本發明的目的在於克服上述不足,提供一種有助於解決物聯網傳感器在線監控系統中產生大量與地理位置信息相關的時間序列數據的存儲和根據指定時間範圍、地理位置範圍以及全局範圍快速查詢物聯網傳感器數據信息問題的地理位置信息相關聯的物聯網時間序列數據存儲和查詢方法。本發明的目的是通過以下技術方案實現的:一種地理位置信息相關聯的物聯網時間序列數據存取方法,其特徵在於,具體步驟如下:1)將最新一次數據信息存儲至最新數據緩存表,所述最新數據緩存表以設備ID為主鍵;2)確定基點時間,並生成時間索引表主鍵,計算增量時間;所述增量時間是當前時間與基點時間的差值;3)將地理位置數據轉換為geohash編碼,並在對應數據行的列族中保存增量時間、geohash編碼及實際數據至時間索引表;所述實際數據包括地理經度、緯度及傳感器上傳的其他數據;4)確定基點空間,根據geohash編碼生成基點空間與基點時間組合構成的時空索引表的主鍵;5)計算增量空間,並在對應數據行的列族中保存增量時間、增量空間、設備ID及實際數據至時空索引表;所述增量空間是具體位置geohash編碼與基點空間geohash編碼的差值;6)查詢數據信息:查詢全局範圍內所有目標對象最新的物聯網數據信息時,通過從高速存儲中讀取最新數據緩存表實現;查詢某目標對象在指定時間範圍內的物聯網數據信息時,通過查詢時間索引表實現;查詢指定時間範圍內某一空間範圍內的某些或全部目標對象的物聯網數據信息時,通過查詢時空索引表實現。進一步的,所述基點時間是通過以下方式確定的:根據實際應用情況需求,確定時間數據中每一行間隔的粒度,基點時間確定為每一間隔的起點;所述基點空間是通過以下方式確定的:根據實際應用情況需求,確定空間數據中每一行間隔的粒度,基點空間確定為每一間隔的最粗粒度。進一步的,所述時間索引表是以設備ID和基點時間的組合作為數據表主鍵;所述時空索引表是以基點時間和基點空間的組合作為數據表主鍵;時間索引表和時空索引表存儲在分布式非關係型資料庫中。進一步的,步驟1)中所述最新數據緩存表存儲在內存資料庫中,所述內存資料庫存放在高速存儲介質中;所述高速存儲介質包括但不限於內存、PCI-E快閃記憶體、固態硬碟。進一步的,步驟6)中所述查詢某目標對象在指定時間範圍內的物聯網數據信息的具體方法如下:5-1)根據給定時間範圍計算能夠包含此範圍的前後基點時間;5-2)提取在前後基點時間範圍內所涉及到的所有數據行;5-3)在提取的數據行中,遍歷第一行數據定位到起始時間;5-4)在提取的數據行中,遍歷最後一行數據定位到終止時間;5-5)取得起始和終止時間範圍內的數據。進一步的,步驟6)所述查詢指定時間範圍內某一空間範圍內的某些或全部目標對象的物聯網數據信息的具體方法如下:6-1)根據指定的空間範圍生成空間範圍的geohash編碼;6-2)根據生成的geohash編碼在時空索引表中通過主鍵中基點空間尋找符合範圍的行;6-3)根據在指定空間範圍的查詢方法裡已經找到的行中,進一步篩選符合時間範圍的行;6-4)提取符合指定時間範圍和空間範圍的數據。從以上技術方案可以看出,本發明提供的地理位置信息相關聯的物聯網時間序列數據存儲和查詢方法,對於物聯網傳感器在線監控系統中地理位置信息管理具有重要作用,主要優點如下:(1)由於本發明存儲和查詢方法在高速存儲中存儲了一張最新數據緩存表,所以可以快速地查詢全局範圍內最新的車輛定位數據、環境監測數據等最新的物聯網數據信息;(2)由於本發明中的主鍵設計相比常用的設備ID加時間戳的設計方法粒度更粗,所以減少了數據行數,縮減了主鍵所佔空間,從而節省了存儲開銷;(3)由於本發明存儲和查詢方法可以根據給定時間範圍,通過基點時間,快速定位到需要查詢的行從而可以快速地根據指定時間範圍查詢某車輛在指定時間範圍內的軌跡、某水質監測終端在指定時間範圍內數據、某區域大氣及氣象監測終端等時間序列數據;(4)由於本發明存儲方法存有一張以基點空間和基點時間組合為主鍵的數據表,因此可以快速地查詢某時間範圍內某地理位置範圍內的所有車輛軌跡、流域內河網水質監測數據、區域大氣及氣象數據或其它數據信息;(5)由於本發明存儲和查詢方法可以快速地查詢全局範圍內最新的車輛定位數據、環境監測數據等最新的物聯網數據信息,因此適用於實時全局信息展示;(6)由於本發明可以快速地根據時間範圍進行查詢,對時間序列數據敏感,因此適用於其他分析性數據、物聯網傳感器時間序列數據;(7)由於時間索引表和時空索引表中數據互為轉換關係,所以兩張表可以互為備份,省去了額外的備份空間;(8)由於時間索引表和時空索引表使用分布式非關係型資料庫,其良好的橫向擴展性保證了本發明可以處理海量數據。本發明的其它優點、目標和特徵在某種程度上將在隨後的說明書中進行闡述,並且在某種程度上,基於對下文的考察研究對本領域技術人員而言將是顯而易見的,或者可以從本發明的實踐中得到教導。附圖說明為了使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明作進一步的詳細描述,其中:圖1是面向地理位置信息相關聯的物聯網時間序列數據存儲的非關係數據表設計;圖2是地理位置geohash編碼示意圖;圖3是地理位置信息相關聯的物聯網時間序列數據存儲方法流程圖;圖4是根據指定時間範圍查詢指定傳感器時間序列數據流程圖;圖5是根據指定時間範圍查詢一定空間範圍傳感器時間序列數據流程圖。具體實施方式以下是本發明優選實施例的詳細描述,應當理解,優選實施例僅為了說明本發明,而不是為了限制本發明的保護範圍。在本發明中包括地理位置信息相關聯的物聯網時間序列數據的存儲和查詢。以車輛定位導航終端數據為例進行說明,其他類似的與地理位置信息相關聯的物聯網時間序列數據按照同樣方法進行管理。圖1是面向地理位置信息相關聯的物聯網時間序列數據存儲的非關係數據表設計,參照圖1,對於車輛地理位置信息時間序列數據存儲包含了三個數據表的構建:1、最新數據緩存表的構建:包括步驟1),將最新一次數據信息存儲至最新數據緩存表,所述最新數據緩存表以設備ID為主鍵。最新數據緩存表只存儲最新一次車輛設備上傳的數據信息,數據存儲到高速存儲介質中,當新一批數據上傳至數據平臺時,把原來的次新數據移除高速存儲,把最新數據保存至高速存儲,時間索引表中的新數據是由最新數據緩存表中數據轉換保存得來的。最新數據緩存表保存在內存資料庫中,如redis、memcached等,內存資料庫保存在高速存儲介質中,如內存、PCI-E快閃記憶體、固態硬碟等。2、時間索引表的構建:還包括步驟2)和步驟3),確定基點時間,並生成時間索引表主鍵,計算增量時間;所述增量時間是當前時間與基點時間的差值;將地理位置數據轉換為geohash編碼,地理位置geohash編碼轉換方法參見附圖2;並在對應數據行的列族中保存增量時間、geohash編碼及實際數據至時間索引表;所述實際數據包括地理經度、緯度及傳感器上傳的其他數據。時間索引表的主鍵是以車輛設備ID和基點時間的組合構成的,其中基點時間的確定方法是,根據基點時間粒度從時間戳取基點時間粒度的下一級單位向上取整,如確定的基點時間粒度為日,時間戳為某年某月某日某時某分,則基點時間為該年該月該日。其中數據表中geohash編碼由車輛設備上傳至管理系統的地理位置信息轉換得來。參照圖2,geohash編碼的轉換方法為:不斷的將由經緯度組成的二維空間進行均勻切分,直到精度符合要求為止,每一次切分都會為空間分配編碼,最後組合形成geohash編碼。行的列族中保存增量時間、geohash編碼及實際數據至時間索引表。時間索引表存儲在分布式非關係型資料庫中,如HBase、Mongodb等。3、時空索引表的構建:包括步驟4)和步驟5),確定基點空間,根據geohash編碼生成基點空間與基點時間組合構成的時空索引表的主鍵;計算增量空間,並在對應數據行的列族中保存增量時間、增量空間、設備ID及實際數據至時空索引表;所述增量空間是geohash編碼與基點空間的差值。時空索引表的主鍵是以一個空間範圍基點空間和基點時間的組合構成的。基點空間是通過以下方式確定的:根據實際應用情況需求,確定空間數據中每一行間隔的粒度,基點空間確定為每一間隔的最大粒度。使用前綴匹配法可以快速查找指定空間範圍內的數據。時空索引表也存儲在分布式非關係型資料庫中,如HBase、Mongdb等。圖3是地理位置數據存儲流程圖,參照圖3,作為一種車輛位置信息數據存儲的實施例,包括如下步驟:步驟1,存儲最新一次車輛設備上傳的數據信息,數據以設備ID為主鍵保存到高速存儲中,當新一批數據上傳至數據平臺時,把原來的次新數據移除高速存儲,把最新數據保存至高速存儲。最新數據緩存表保存在內存資料庫中,如redis、memcached等,資料庫部署在高速存儲介質中,如內存、PCI-E快閃記憶體、固態硬碟等;步驟2,從最新數據緩存表讀最新數據確定基點時間。優選地,通過分析數據查詢需求,每個需求較密集的時間段都作為一個基點時間,如對於車輛管理系統應該分別以小時、天、周、月作為基點時間,那麼基點時間就分別為年月日小時、年月日、年周、年月;步驟3,優選地,以車輛設備ID和步驟2中確定基點時間組合形成數據表主鍵;步驟4,計算當前時間與基點時間的差值。優選地,從時間戳中除去已經具有的主鍵中基點時間的重複幾位,如時間戳為某年某月某日某時某分,基點時間為該年該月該日,則差值便為該時該分;步驟5,在對應數據行的列族中保存時間差值及實際數據。特別地車輛數據中的經緯度坐標轉換為geohash編碼,將此geohash編碼作為地理坐標信息存儲;步驟6,以步驟5中生成的geohash編碼生成基點空間和基點時間的組合為一行數據主鍵,並將該數據行的列族中保存增量時間、增量空間及實際數據至時空索引表。本發明對地理位置數據信息的查詢包括3種情況:1、查詢全局範圍內所有目標對象最新的物聯網數據信息時,通過從高速存儲中讀取最新數據緩存表實現;包括在全局範圍內查詢所有車輛定位數據、環境監測數據等最新的物聯網數據信息等;2、查詢某目標對象在指定時間範圍內的物聯網數據信息時,通過查詢時間索引表實現;包括查詢某車輛在指定時間範圍內的軌跡、某水質監測終端在指定時間範圍內數據、某區域大氣及氣象監測終端在指定時間範圍內的數據信息等;3、查詢指定時間範圍內某一空間範圍內的某些或全部目標對象的物聯網數據信息時,通過查詢時空索引表實現,包括查詢指定時間範圍內某一空間範圍內的所有車輛軌跡、某流域內河網水質監測數據、某區域大氣及氣象數據或其它數據信息等。參照圖4,作為一種具體實施例,查詢車輛在指定時間範圍內的軌跡和其它數據信息,具體方法如下:5-1)根據給定時間範圍計算能夠包含此範圍的前後基點時間;優選地,前基點時間根據確定的起始時間的下一級單位向上取整,如起始時間為某年某月某日,則前基點時間取該年該月;後基點時間根據確定的終止時間的下一級單位向下取整,如終止時間為某年某月某日,則後基點時間取該年下一月;5-2)提取在前後基點時間範圍內所涉及到的所有數據行;5-3)在提取的數據行中,遍歷第一行數據定位到起始時間;5-4)在提取的數據行中,遍歷最後一行數據定位到終止時間;5-5)取得起始和終止時間範圍內的數據。參照圖5,查詢指定時間範圍內某一空間範圍內的所有車輛軌跡和其它數據信息,具體方法如下:6-1)根據指定的空間範圍生成空間範圍的geohash編碼;6-2)根據生成的geohash編碼在時空索引表中通過主鍵中基點空間尋找符合範圍的行;6-3)根據車輛在指定時間範圍的查詢方法裡已經找到的行中,進一步篩選符合空間範圍的行;6-4)提取符合指定時間範圍和空間範圍的車輛數據。最後說明的是,以上優選實施例僅用以說明本發明的技術方案而非限制,儘管通過上述優選實施例已經對本發明進行了詳細的描述,但本領域技術人員應當理解,可以在形式上和細節上對其做出各種各樣的改變,而不偏離本發明權利要求書所限定的範圍。