999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于多層索引及緩存的空間數據管理系統

2024-01-27 16:44:03彭成
電腦知識與技術 2023年36期
關鍵詞:數據庫

彭成

摘要:為充分利用空間數據對象的位置信息,提升存儲結構化程度及查詢效率,基于多層索引及緩存建立空間數據管理系統。首先基于不同粒度建立用于渲染和查詢的兩層索引框架,同時為索引及空間數據建立內存緩沖隊列。在查詢過程中通過區域范圍及索引多級篩選空間數據對象,在空間數據變更時增量修改索引及數據記錄,在渲染時通過內存緩沖隊列及渲染區域對應索引讀取數據。結合實例,驗證了索引及內存緩沖的效果,為高效空間數據存儲及查詢提供了技術支持。

關鍵詞:數據庫;空間數據;多層索引;內存緩沖隊列;地理信息系統

中圖分類號: TP311 ? 文獻標識碼:A

文章編號:1009-3044(2023)36-0059-03

開放科學(資源服務)標識碼(OSID)

0 引言

地理信息系統的發展與應用,導致空間數據不斷增長,海量空間數據的存儲和查詢模式變得十分重要,也是地理信息系統發展的瓶頸所在[1-2]。如何設計高效的空間數據存儲和查詢模式,提高數據導入、加載、渲染、查詢的速度,成為地理信息系統中首要解決的問題[3]。

空間數據的存儲結構的發展經歷了五個時代:文件系統存儲、混合數據存儲、關系數據庫存儲、面向對象數據庫存儲、對象關系型存儲[4-5]。目前,在成熟的二維地理信息系統商業軟件方面,主要采用對象關系型,其擁有完善成熟的數據管理功能。現存在兩種方法,一是數據庫企業在其各自的數據庫產品中增加了支持空間數據類型的專用軟件(如Oracle的Spatial Cartridge)[6],二是地理信息系統軟件企業在傳統的關系數據庫管理系統之上進行功能和數據類型的擴張,外加一個空間數據管理引擎,如ESRI的ArcSDE,MapInfo與Oracle公司共同開發的Oracle Spatial等[7]。而在這一時期成熟的系統有加州大學Berkeley分校研制的PostGIS[8]。

對于現有的空間數據存儲及查詢,對空間數據對象的位置信息利用得不夠充分,存儲的結構化程度不夠高,查詢的效率也有提升空間。現有的空間數據存儲根據空間數據對象的位置建立索引,查詢時根據指定的查詢范圍對應的區域進行查詢,當查詢范圍與區域范圍大小不在同級別時效率較低。對于經常需要使用到的空間數據對象,也應該進行緩存以提升效率。同時,在空間數據導入、加載等過程中,應該充分利用計算機的性能進行多線程、生產者-消費者等模式來提升速度。

因此,針對上述問題,需要一種功能更為完善,更好地利用空間數據對象位置信息,建立更加靈活索引的空間數據存儲及查詢方法。

1 創建多層索引框架及內存緩沖隊列

1.1創建表及索引

如圖1所示,首先選擇要導入的空間數據文件,可以選擇多種格式的文件,如shp、cgm、mapgis、雙狐文本文件等,本文選擇shp文件類型,文件為countries.shp,是多邊形類型的數據。選擇完文件后,系統會創建相應的空間數據對象表、索引表、屬性表、參數配置表。屬性表默認只有對象編號字段,若導入的文件配有相應的屬性文件,則會根據屬性文件中的屬性信息增加相應的字段;空間數據對象表包含對象編號,類型,范圍及具體數據;索引表包含格子編號,格子類型,對象編號,格子與對象的關系,對象的范圍;參數配置表包含渲染索引框架x和y兩個方向的切分數量,查詢索引框架對渲染索引框架中一個格子在x和y方向進一步切分的數量,內存緩沖隊列中空間數據對象的數量限制及索引的數量限制,所有空間數據對象的總范圍。

建表之后系統會給空間數據對象表的對象編號字段,索引表的格子編號、對象編號字段建立索引,以加快數據庫訪問速度。

1.2 配置參數設置

配置參數基本屬性包括導入的空間數據對象渲染時顯示的圖層名稱,是否可見,以及備注信息,配置參數的SDE屬性即加載過程中的屬性包括是否存入數據庫,渲染索引框架x和y兩個方向的切分數量,查詢索引框架對渲染索引框架中一個格子在x和y方向進一步切分的數量,內存緩沖隊列中空間數據對象的數量限制及索引的數量限制,是否使用多線程,是否在每導入一個空間數據對象時將其插入緩沖隊列,空間數據對象和屬性數據的提交間隔。

如圖2所示,本文例子設置渲染索引框架劃分方式為10×10,查詢索引框架在渲染索引框架格子基礎上每個格子在x和y上進一步切分2塊,內存緩沖隊列中空間數據對象的數量限制為100,內存緩沖隊列中索引數量的限制為1 000,每導入5 000個空間數據對象和屬性時進行一次提交。

1.3 創建索引框架

索引框架共分為兩層,分別用于渲染和查詢。查詢索引框架是在渲染索引框架的每個格子基礎上,進一步對格子進行劃分。通常情況下,渲染涉及的區域較大,對精度要求低,采用粗粒度劃分,查詢涉及的區域較小,對精度要求高,采用細粒度劃分。本文例子渲染索引框架劃分粒度為10×10,查詢索引框架的劃分粒度為20×20。

建立索引框架時,先計算空間數據對象總體范圍外包矩形,將其按照x和y兩個方向進行分塊,切分為多個格子。本文例子可以從導入的文件中直接獲取到其總體范圍的外包矩形,x的最小值和最大值分別為-190.0,190.0,y的最小值和最大值分別為-99.9, 93.6。將這片區域分別劃分為10×10份和20×20份,建立渲染索引框架和查詢索引框架。

1.4 創建緩沖隊列

內存緩沖隊列包括索引及空間數據對象,通過將部分索引及空間數據對象存放在內存中,減少渲染和查詢過程中的數據庫訪問操作。其中索引在內存緩沖中以格子為單位進行存儲。當隊列已滿時將最早添加進隊列的元素剔除。本文例子索引隊列的大小限制為1 000,空間數據對象隊列的大小限制為100。

2 空間數據的導入與索引生成

2.1 導入空間數據

在建立完索引框架和內存緩沖隊列后,導入空間數據,具體的形狀和位置信息通過坐標存儲和表示。本文例子空間數據對象的文件類型為多多邊形,通過頂點坐標得到空間數據對象的形狀和范圍,用來判斷與給定的查詢和渲染范圍是否有相交的部分。

2.2 生成索引

對于每個導入的空間數據對象生成索引,根據空間數據對象的范圍,得到此范圍包含的渲染索引格子和查詢索引格子,再根據空間數據對象的形狀,判斷是否與格子范圍有交集,對有交集的生成索引。導入完畢后,每個格子對應若干條索引,每條索引表示與此格子有相交部分的空間數據對象。

2.3 存儲索引及空間數據

在到達提交間隔時,將生成的索引作為記錄存儲到數據庫的索引表中,存儲的信息包含索引類型、格子編號、對象編號、對象所占范圍、與索引格子的關系。這些索引用來快速獲取所給區域中包含的空間數據對象,提升顯示查詢速度。空間數據對象及其對應的渲染索引和查詢索引會添加到內存緩沖隊列中。同時,將每個空間數據對象作為一條記錄存儲到數據庫的空間數據對象表中,存儲的信息包含對象編號、類型、范圍以及具體形狀數據。本文例子每導入5000個空間數據對象進行一次提交。

導入空間數據采用多線程來讀取和提交空間數據對象和索引,并采用生產者-消費者模式,生成渲染索引和查詢索引作為生產者,提交作為消費者同時進行。

對于存在關聯屬性文件的情況,如本文例子,存在countries.dbf文件,其存儲了每個空間數據對象的相關屬性,如人口密度、名稱,會讀取這個屬性文件并將信息添加到屬性表中。

3 空間數據的渲染與查詢

3.1空間數據渲染

根據給定的渲染范圍,得到對應的渲染格子,然后逐一渲染這些格子所含的空間數據對象。對于一個渲染格子,如果對應的渲染索引記錄存在于內存緩沖隊列中,則直接獲取索引對應的空間數據對象編號,否則從數據庫索引表中獲取編號,然后根據編號獲取空間數據對象并渲染。對于存在于內存緩沖隊列中的空間數據對象,直接進行渲染,否則從空間數據對象表獲取數據然后渲染。本文例子效果如圖3所示,是由多個多邊形組成的世界地圖形狀。

3.2 空間數據查詢

空間數據查詢的分為初始過濾、中間過濾以及最終過濾。初始過濾是根據查詢所指定的區域,得到其對應哪些查詢格子,將這些格子作為初步結果;中間過濾是在初步結果基礎上,進一步進行過濾,先計算出查詢所指定區域對應的內切矩形,得到初步結果中存在于內切矩形中的格子,并獲取這些格子所對應的空間數據對象,將其添加到最終查詢結果中,對于初步結果中其他格子,在下一階段進行判斷;最終過濾是對上一階段剩余的查詢格子,獲取他們所含的空間數據對象,并逐一與查詢指定區域進行比較判斷,把與查詢區域有相交部分的空間數據對象添加到最終結果中。本文例子給出查詢請求結果如圖4所示,結果集中的空間數據對象以不同顏色顯示;在對話框中選中結果集中的某個空間數據對象顯示對應屬性信息,并以不同顏色顯示,圖中選中的空間數據對象的名稱為“Niger”,人口密度值為7.0。

4 空間數據的變更與加載

新增空間數據對象時,根據范圍計算對應渲染和查詢格子,生成索引添加到內存緩沖隊列,添加到新增集合;修改時,根據對象編號得到對應渲染和索引格子,將其刪除,然后根據修改后的空間數據對象范圍計算對應渲染和索引格子,生成索引添加到內存緩沖隊列,并添加到修改集合;刪除時,根據對象編號得到對應的渲染和索引格子,將其刪除,并添加到刪除集合。

提交變更時,對新增集合,將對應的渲染、查詢索引和對象數據提交到數據庫;對修改集合,在索引表中刪除對象編號相同記錄,并將對應的新渲染、查詢索引提交到數據庫,在空間數據對象表中更新對象編號相同記錄;對刪除集合,在索引表和空間數據對象表中刪除對象編號相同記錄。

空間數據加載時,根據配置參數建立渲染和查詢索引框架,然后讀取渲染格子索引,從空間數據對象表讀取空間數據對象加載到內存緩沖隊列。

5 結論

本文設計實現了高效的基于多層索引及緩存的空間數據管理系統,建立了多層索引,針對不同的渲染和查詢要求,都有較高的處理效率;建立了內存緩沖策略,對經常使用的空間數據對象直接從內存中給出,提升了效率;使用多線程及生產者-消費者模式進行空間數據對象的導入和加載,提升了數據存取的速度。

參考文獻:

[1] 王峰,安曉亞,朱璇.地理空間數據增量更新版本化管理方法研究[J].地理空間信息,2021,19(2):26-29,6.

[2] 宋軒,高云君,李勇,等.空間數據智能:概念、技術與挑戰[J].計算機研究與發展,2022,59(2):255-263.

[3] 郭名靜,景琳.空間數據挖掘驅動城市疫情監測常態化的作用研究[J].商業經濟,2022(2):11-13,16.

[4] 蘇瑤.基于GIS+BIM的空間數據可視化研究[J].自動化與儀器儀表,2021(12):28-31,35.

[5] 周群.基于GIS的綜合交通空間數據管理系統研究[J].地理空間信息,2021,19(11):75-78,8.

[6] 陳新.論空間數據挖掘和知識發現的理論與方法[J].電腦知識與技術,2021,17(33):20-21,31.

[7] 崔夢真,賀晗,王虎,等.便攜式采集裝置及鐵路基礎設施三維空間數據管理系統設計[J].鐵路計算機應用,2021,30(10):24-29.

[8] 石偉偉,劉皓宇,程麗麗,等.超大規模空間數據管理及計算框架關鍵技術研究[J].國土資源信息化,2021(5):15-21.

【通聯編輯:梁書】

猜你喜歡
數據庫
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
兩種新的非確定數據庫上的Top-K查詢
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
數據庫
財經(2015年3期)2015-06-09 17:41:31
數據庫
財經(2014年21期)2014-08-18 01:50:18
數據庫
財經(2014年6期)2014-03-12 08:28:19
數據庫
財經(2013年6期)2013-04-29 17:59:30
主站蜘蛛池模板: 99久久免费精品特色大片| 强奷白丝美女在线观看| 精品夜恋影院亚洲欧洲| 亚洲永久精品ww47国产| 国产成人精品一区二区免费看京| 亚洲男人的天堂视频| 亚洲水蜜桃久久综合网站| 国产亚洲视频免费播放| 国产白浆一区二区三区视频在线| 在线看片免费人成视久网下载| 中文字幕在线播放不卡| 扒开粉嫩的小缝隙喷白浆视频| 四虎亚洲精品| 99视频在线观看免费| 91久久精品国产| 亚洲系列无码专区偷窥无码| 欧美伊人色综合久久天天| 国产精品三区四区| 亚洲熟妇AV日韩熟妇在线| 五月激情婷婷综合| 欧美性久久久久| 日韩在线观看网站| av在线手机播放| 国产精品亚洲va在线观看| 国产精品免费电影| 四虎影视永久在线精品| 久热这里只有精品6| 有专无码视频| 啪啪国产视频| 成年人国产网站| 欧洲av毛片| 日韩人妻少妇一区二区| 精品无码一区二区三区电影| 四虎永久在线视频| 日韩中文欧美| 国产视频自拍一区| 五月婷婷欧美| 青青国产视频| 99re热精品视频中文字幕不卡| 国产精品成人不卡在线观看 | 国产精品自在线拍国产电影| 51国产偷自视频区视频手机观看 | 一本二本三本不卡无码| 欧美日韩成人在线观看| 伊人激情综合| 狼友av永久网站免费观看| 看国产一级毛片| 亚洲浓毛av| 亚洲一区二区约美女探花| 极品性荡少妇一区二区色欲| 精品一区二区三区视频免费观看| 国产免费久久精品99re不卡| 试看120秒男女啪啪免费| 91成人免费观看在线观看| 免费国产高清视频| 最新精品久久精品| h网址在线观看| 国产av一码二码三码无码| 1024你懂的国产精品| 特级毛片免费视频| 欧美精品aⅴ在线视频| 996免费视频国产在线播放| 国产一级妓女av网站| www中文字幕在线观看| 国产熟睡乱子伦视频网站| 亚洲天堂久久| 亚洲IV视频免费在线光看| 亚洲精品国产成人7777| 九九九精品视频| 91麻豆精品视频| 九色在线视频导航91| 国产成人综合网在线观看| 国产亚洲精品91| 国产色偷丝袜婷婷无码麻豆制服| 亚洲成a人片| 亚洲AⅤ无码国产精品| 久久综合九色综合97婷婷| 久久亚洲欧美综合| 国产成人AV综合久久| 无码人中文字幕| 伊人色综合久久天天| 久久77777|