实验一:地图数据的查询与显示

2024-04-24

实验一:地图数据的查询与显示(精选5篇)

篇1:实验一:地图数据的查询与显示

ArcGIS实验一:地图数据的查询与显示

一、实验目标

熟悉ArcGIS基于Arc Catalog数据管理环境,掌握相关数据及其背景信息的简单查询与显示。

二、实验要求

依次完成下列任务,并整理成实验过程word文档,必要时截图说明。

三、实验环境

1.利用ArcGIS的Arc Catalog和ArcMap模块完成相关任务 2.实验数据:ftp://172.16.38.100/, 位于“实验指导书-》地理信息系统原理”文件夹下

四、任务清单 1.任务

(一)到处看看,熟悉一下ArcCatalog操作界面。

2.任务

(二)MygisdataOregon文件夹的oregon地理数据库中有多少要素数据集、多少要素类、多少栅格数据集?每个要素数据集有多少个要素类,其中每个要素类包含了多少点、线和多边形?

提示:(1)找到oregon.mdb数据库;(2)通过内容(contents)选项卡分析数据库文件类型;(3)通过预览(Preview)选项卡的预览模式,查看数据信息。

(1)打开ArcCatalog,找到oregon.mdb数据库。

(2)通过内容(contents)选项卡分析数据库文件类型。

(3)通过预览(Preview)选项卡的预览模式,查看数据信息。

答:oregon地理数据库中有2个要素数据集、9个要素类、2个栅格数据集。

Transportation要素数据集中有3个要素类。Water要素数据集中有2个要素类。

Airports要素类中有13个点,highways要素类中有1954条线,rail100k要素集中有1806条线。Rivers要素集中有74条线。Waterbodies要素集中有157个多边形。

3.任务

(三)MygisdataWorld文件夹中的country shape 文件采用何种坐标系统?oregon地理数据库中parks要素类又采用了何种坐标系统?

提示:(1)找到数据;(2)查看其属性(Properties)选项卡获取相关信息。

oregon地理数据库中parks要素类又采用了何种坐标系统GCS_WGS_1984

4.任务

(四)利用MygisdataUsausdatalakes文件,判断一下美国最大的湖泊叫什么名字?其面积有多大?

提示:找到数据,通过预览(Preview)选项卡查看数据,并按面积排序。

(1)打开软件找到数据。

(2)通过预览(Preview)选项卡查看数据,并按面积排序。

答:美国最大的湖泊叫Lake Superior,面积为32213.001.5.任务

(五)MygisdataBlackHillsrasters

中陆地卫星影像TM_24Sep98_utm有多少行和多少列,像元尺寸是多大(包括距离单位)?有几个波段?坐标系统是什么?

提示:找到数据,查看属性选项卡获取相关信息。答:有680列,939行。像元尺寸:4.26 MB,有7个波段,坐标系统是D_North_American_1927。

6.任务

(六)利用MygisdataUsausdatastates文件,判断一下该数据是由谁在什么时候创建的,有什么使用权限限制?总结一下这个数据文件的元数据提供了那些信息点?

提示:通过元数据获取相关信息。(1)打开软件,找到数据。(2)查看数据的属性。

答:此数据没有制作者名单。使用权限限制:

提供的信息点:类型、标签、摘要、描述、制作者名单、使用限制、范围、比例范围等。

7.任务

(七)先在ArcCatalog下利用MygisdataUsausdatacounties文件,判断一下Itawamba县位于美国哪个州?然后利用该要素类文件创建一个名为mycountieslayer的图层。进入ArcMap操作界面,打开刚才创建的countieslayer图层,在ArcMap界面下,利用ArcMap的“查找”菜单选项或工具,再次找到Itawamba,定位并显示该县域,并查看其属性信息。

在ArcMap的内容表窗口中删除刚才打开的图层,重新添加打开源文件counties要素类,指出图层方式与源要素类文件有何不同?

提示:(1)ArcCatalog下用Preview选项卡;(2)单击ArcCatalog界面下的ArcMap图标可直接进入ArcMap界面。

(1)打开软件,找到文件。

(2)判断Itawamba县位于美国哪个州

(3)利用该要素类文件创建一个名为mycountieslayer的图层。

(4)单击ArcCatalog界面下的ArcMap图标直接进入ArcMap界面。(5)打开新建图层。

(6)用“查找”菜单选项,找到Itawamba,定位并显示该县域,查看其属性信息。

(7)在ArcMap的内容窗口中删除图层,重新添加打开源文件counties要素类。

答:Itawamba县位于美国的Mississippi。一个图层就是一组同类型要素的集合。

心得体会:

通过本次实验熟悉ARCGIS软件,初步了解了ARCGIS的基本操作方法。同时知道了一些地理信息系统的基本知识。

篇2:实验一:地图数据的查询与显示

实验 1-1 “响当当”网上书店的数据库创建

实验目的

• 理解数据库的概念;

• 理解关系(二维表)的概念以及关系数据库中数据的组织方式; • 了解数据库创建方法。

实验环境

• microsoft office access

实验要求

创建“响当当”网上书店数据库,其中共有七个表,分别用于存放会员、订单、订单明细、商品、付款方式、类别和级别等信息,各个表的结构如图1-

1、图1-2和图1-3所示,其中带钥匙图标的字段是各表的主键。

会员表

订单表

图1-1 会员和订单表的结构

订单明细表

商品表

图1-2 订单明细和商品表的结构

付款方式

类别

级别

图1-3 付款方式、类别和级别的结构

实验指导

实验 1-1 “响当当”网上书店的数据库创建

一、表的创建和联系的建立

步骤1:创建空数据库“xddbookstore”。

在 access 中选择“文件”菜单中的“新建”命令(或单击工具栏中的“新建”按钮),屏幕右边将“新建文件”任务窗格,单击其中的“空数据库”,再在接着出现的 “文件新建数据库”对话框中为即将建立的数据库规定好文件名(xddbookstore.mdb)和存放该文件的适当的文件夹,然后单击“创建”按钮,于是一个名为“xddbookstore”的“数据库”窗口就会出现在屏幕上,如图1-4所示。

图1-4 数据库窗口

步骤2:数据库中表结构的定义。

这里将以“商品”表为例介绍数据库中表结构的定义方法。在“创建”功能区,点“表设计”,打开表视图。

在“设计”视图的“字段名称”列中,单击第一个空单元格,键入“商品”以新建“商品号”字段;将鼠标移至“数据类型”列,在其下拉列表框中选择“文本”数据类型,如 图1-5所示。

图1-5 设计视图

使用与上面同样的方法完成书表中其他字段的定义。然后开始定义书表的主键(书号),方法是:将鼠标移至书号字段最左边的灰色矩形块(行选择块)并单击,选中整个行,然后单击工具栏上的主键()按钮或编辑菜单中的主键命令即可以将书号字段定义为主键,成为主键的字段旁会显示一个小钥匙标记。

步骤3:保存数据表。

单击工具栏上的保存按钮()或文件菜单的保存命令,出现如图1-8所示的“另存为”对话框,在表名称项中输入“商品表”,然后单击“确定”按钮,就可以在数据库窗口中看到保存好的商品表了。

单击关闭()按钮关闭其“设计”视图。

图1-6 另存为对话框

步骤4:定义“响当当”数据库的其他表。

方法与书表的定义相同。步骤5:“响当当”数据库中表之间联系的建立。

单击“数据库工具”功能区的“关系”命令,出现如图1-7所示的“显示表”对话框,分别选择其中的每个表并按“添加”按钮,直到将所有表添加到“显示表”对话框后面的“关系”窗口中。

图1-7显示表对话框

以会员表和订单表为例,在“关系”窗口中建立表之间联系的方法是:单击“会员”表中用于联系的“会员号”字段,然后按住鼠标左键拖动鼠标,将随后出现的一个小矩形块拖动到“订单”表的“收货人”字段上,松开鼠标,出现如图1-8所示的“编辑关系”对话框,选中其中的“实施参照完整性”复选框,单击“创建”按钮即可在这两个表之间建立联系,“会员”表和“订单”表之间的连线代表了它们间的联系。

图1-8 编辑关系窗口 使用同样的方法,建立数据库的七个表间的所有联系,如图1-9所示。单击关系窗口右上角的“关闭”按钮()关闭该窗口。

图1-9数据库七个表间的联系

二、付款方式表的数据输入

选中需要输入数据的表并录入相应数据(如付款方式表)。

在数据库”窗口的“表”选项卡中选中付款方式表图标并单击“打开”按钮,这时一个名为“付款方式:表”的“数据表”视图窗口便显示出来,如图1-10所示。

图1-10付款方式表的数据表视图

三、订单表的数据导入

在提供的xddbookstore.xls文件中,包含了响当当数据库所有表的数据。可以利用该文件将订单表数据导入到“响当当书店.mdb”数据库中。

步骤1:选择要导入的文件。

单击文件菜单的“获取外部数据/导入”命令,出现如图1-11所示的“导入”对话框。单击要导入的文件“xddbookstore.xls”,然后单击“导入”按钮,出现导入数据表向导对话框。

图1-11 导入对话框

步骤2:规定要导入的数据表。

步骤3:指明在要导入的数据中是否包含列标题。

可以选择(不要主键),等数据导入完成后再设置主键。

步骤4:规定数据应导入到哪个表中,可以是新表或现有的表。

步骤5:完成数据导入工作。可以使用同样的方法导入响当当数据库的其他表数据。实验1-2 “响当当”网上书店库存、图书和会员信息查询

实验目的

• 理解odbc的概念;

• 掌握利用microsoft query进行数据查询的方法。

实验环境

• microsoft office access;

实验要求

响当当网上书店的库存管理人员常常需要了解库存量小于10的图书的商品号、书名、库存量等信息;其会员则对自己喜爱的作者的图书信息感兴趣,或想了解一些低价图书的信息,或想知道最新出版的图书信息等;请你设计若干个查询,帮助他们获取相关信息。

实验1-2 “响当当”网上书店库存、图书和会员信息查询

一、查询设计—低库存量图书信息查询

对低库存量信息的查询,如查询库存量小于100的图书的商品、书名和库存量,需要在查询时设定对库存量的查询要求,如“库存量<100”。

查询设计窗口

运行结果

二、设置其他查询条件

如果仅仅想了解书名包含“经济”两个字的图书信息,就需要修改查询的条件,那么如何表达“书名包含经济字样”这个查询条件呢?可以使用”LIKE”关键字建立模糊查询。

在条件框中输入:Like “*” & [请输入书名:] & “*”,其中“*”是通配符,[ ] 中的内容为弹出的对话框中用户录入的信息,运行该语句,将返回以任意字符开头或结尾,并包含用户录入的内容的信息(如果什么也不录入,将返回全部记录)。如下图示:

运行查询,会弹出对话框:

输入“经济”,显示“宏观经济学”的图书信息

实验1-3 “响当当”网上书店会员分布和图书销售信息查询

实验目的

•掌握复杂的数据查询方法:多表查询、计算字段和汇总查询

实验环境

• microsoft office access;

实验内容

为了研究新的市场营销策略促进图书的销量,响当当网上书店的营销人员需要了解如下的信息:各个地区会员的分布情况,例如北京、上海等城市的会员人数;会员在网上订购图书的信息,如2005年7月份图书的总订购量和总销售金额;另外公司人员也想了解这些图书是由哪些城市的会员订购的?分别订购了多少量?

实验指导: 实验1-3 “响当当”网上书店会员分布和图书销售信息查询

一、查询设计—图书总订购量和总销售金额查询

书店工作人员想了解会员在网上订购图书的信息,如2005年7月份的总订购量和总销售金额。具体查询步骤如下:

运行结果

二、查询设计—各城市会员图书订购数量和销售金额统计

书店工作人员想了解位于各个城市的会员在网上订购的图书的总订购数量和总销售金额。查询步骤如下:

先建立如下查询,计算出销售金额。

再基于上面的查询,进行分类汇总:

篇3:实验一:地图数据的查询与显示

关键词:区域气象站,数据查询,显示,系统设计,实现,河北秦皇岛

随着山洪工程项目的顺利实施, 秦皇岛市的区域自动气象站无论是总数还是密度, 都达到了前所未有的高度, 原来所使用的雨量实时采集系统由于无法显示全部区域站雨量信息而无法满足需求;同时由于原系统数据库存放在省局, 在市县局通过原客户端进行查询统计时存在数据保存周期较小、查询费时等缺点。进入汛期后, 由于局地性强降水极易出现, 原采集系统没显示出来的区域往往就有强降水发生, 而这些地方又是山洪灾害频发地, 所以对这些新建区域站的降水信息进行监控就显得尤为重要。鉴于以上几点, 并结合台站使用要求, 设计开发了一套新的区域站数据查询显示系统, 囊括了秦皇岛市所有区域站的同时选择在本地架设数据库服务器, 便于统一管理和提高查询统计时效, 同时提供将查询结果按常用格式导出的功能, 便于为地方政府和居民服务, 也让后建的区域站发挥积极作用。

1 系统功能及架构

系统功能及架构如图1所示。系统采用C/S架构, 数据入库客户端以省局数据库为数据源, 在入库配置文件和定时器的作用下, 从省局数据库查询最新更新过的数据并插入本地数据库, 整个过程可以自动执行, 也可以根据情况通过手动点击按钮执行;数据查询显示客户端则依托本地数据库提供了数据显示 (雨量、温度) 、历史数据查询、数据分析及数据导出等功能。对于数据显示功能, 缺省情况下显示日累积雨量及最近整点时次的各区域站温度;历史数据查询则提供了任意时间段雨量和温度数据的查询统计功能;数据分析则可根据各区域站点的降水或温度数据插值后根据量级填充相应的颜色, 得到雨量或温度分布情况;数据导出功能则可以将查询或插值分析产生的结果导出为Web页面或Word文件或简单的文本文件, 方便用户制作各类服务材料;还可对各区域站雨量进行监控, 当达到或超过指定量级时发声报警。

为了尽可能的减少系统开发成本, 本地数据库采用开源的My SQL, 安装和维护都简单易行, 且功能足够强大而稳定[1]。入库客户端和数据查询显示客户端均采用Visual Studio 2010为开发平台, 开发语言为C#[2]。

2 数据库设计

区域站数据每隔5 min便将采集数据以固定格式上传到省局, 经处理后进入省局数据库服务器, 为了便于数据的统一管理以及提高查询时效, 新建本市区域站数据库系统, 通过开发入库客户端软件定时从省局服务器查询新插入的数据并插入本地数据库。本地数据库首先需要建立一个存放本地区域站基本信息的Station List表, 基本信息包括区站号、行政归属 (所属的省、市、县) 、经纬度信息等, 以及用于存放区域站小时温度数据的Temperature表和存放区域站降水数据的Rain表, 建立2张表的SQL语句如下。

这2个表中, 都有observetime、create Time、lastmodify 3个时间类型字段, observetime表示数据属于那个时次的观测数据, create Time表示该条记录被建立的时间, 而lastmodify则表示该条记录最后被修改的时间, 对于雨量数据由于每条记录包含了1 h内60 min的分钟雨量数据, 如果观测到有降水, 那么每隔5 min发出的数据都可能会刷新前面已插入数据, 同时更新最后更新时间即lastmodify字段。

3 数据入库客户端设计

数据入库客户端界面设计如图2所示。整个界面简洁明了, 其中各项参数如数据库IP、用户名、口令、数据库名等信息均存放在配置文件中, 客户端启动时自动从配置文件中读取加载。测试按钮用于对应数据库服务器的连通性测试, 操作命令分别用于手工拷贝数据、保存配置信息、退出客户端。

软件启动后自动最小化到托盘区, 然后按照程序流程设定的循环进行数据入库操作, 程序操作流程如图3所示。当程序启动后, 首先从配置文件加载数据库连接参数, 然后使用连接参数查询本地数据库获取本地区域站列表, 然后启动定时器, 开始周期为1 min的循环。根据2种数据的更新频率不同, 设计温度数据每10 min拷贝1次, 降水数据则1 min拷贝1次。拷贝数据的操作是以站为单位按照区域站列表进行循环, 每个站都分别进行新数据的查询和插入。

在数据查询拷贝的过程中, 不可避免会出现数据库操作异常的情况, 这些异常会影响该次循环运行过程中的数据拷贝, 但由于每次循环均会重复查询未插入的数据, 所以本次循环未插入成功的数据会在后面循环过程中继续进行再次插入, 直到成功为止。

4 数据查询显示客户端设计

4.1 主界面设计

数据查询显示客户端是最终提供给业务人员使用的, 软件主界面用于显示查询结果, 分为左、右2个部分。左边占据了整个窗口的大部分, 显示以本地地图为背景的数据信息, 缺省情况下显示日累积雨量, 各区域站位置由经纬度定位, 可以直观地显示数据在地理上的分布特性;右侧以表格的形式显示经过排序后的区域站数据信息。左、右2个部分还可以进行联动, 当鼠标选中右边列表中某一行时, 左边地图对应区域站将弹出信息, 以更加醒目的形式显示该站点的详细信息如区站号、降水量或温度数值, 弹出的信息显示一段时间后自动消失。

软件采用秦皇岛地图作为背景, 各种数据就显示在背景地图之上, 为了使地图随窗口大小进行等比例放大以确保程序可以在不同分辨率的显示器中正确显示, 设置Background Image Layout属性为Zoom, 且最小值不得小于地图原值。各区域站在地图上位置可以通过如下公式来确定:

x= (longitude-xMin) ×width/ (xMax-xMin)

y= (yMax-latitude) ×height/ (yMax-yMin)

其中longitude、latitude分别代表区域站的经纬度, xMin、xMax、yMin、yMax分别代表秦皇岛市地理范围的最大最小经纬度, width和height则分别表示控件的长和宽, 当窗口大小发生变化时, width和height也将发生变化, 但其长宽比保持固定, 以保持背景图像不变形。

软件启动后按照配置参数的设置定时从数据库读取数据, 查询结果将用于填充右边的表格以及左边对应位置的数据显示控件, 当数据有变化时则更新旧数据, 并以闪烁的红色站标来加以提醒, 当降水量超过某个量级时还会发声报警, 提醒值班业务人员加以关注。

4.2 历史数据查询

历史数据查询主要用来查询历史时段的小时降水和小时温度数据。对于降水, 以表格和图形的形式显示查询时段内各小时降水量及小时内各分钟的降水分布情况;对于温度除了以列表形式显示各小时的整点温度、1 h内最高最低温度及出现时间外, 还以逐小时分布曲线的形式形象地显示了查询时段内温度的小时变化曲线。

4.3 插值分析

插值分析功能主要是根据各区域站雨量, 插值后根据量级填充相应的颜色[3,4], 填充颜色的选取严格按照国家标准执行。该部分功能主要采用在气象部门较为常用的Surfer软件来完成, 产生的图形化结果很形象地显示了秦皇岛市降水的分布情况, 可以更好地为地方政府进行服务。Surfer软件是美国Golden Software公司研制的基于Windows系列操作系统的插值绘图软件, 是一个十分流行的小型软件。同时还可通过VB等编程语言将其强大的功能嵌入到用户开发的系统中[4]。

通过Surfer插值绘图流程如图4所示。第一步:通过查询数据库获取的站点数据经插值后生成格点数据。此处数据源是1个至少包含3列的文本文件, 其中2列表示区域站的经纬度, 1列表示降水量, 还可以有其他的例如区站号或区站名等。Surfer缺省情况下是以第1列为经度、第2列为纬度、第3列为值, 如果文件不是按照这个格式写入的, 那么在进行插值时就需要手动指定。第二步:格点数据在地图文件的控制下经白化后生成新的格点文件。地图文件是表示秦皇岛市地理边界封闭曲线的数据文件, 用于控制数据的范围, 经白化后只对封闭曲线指定范围的数据予以保留。第三步:利用白化后的格点数据绘制等值线。第四步:将刚绘制的等值线根据量级填充相应颜色后生成成品图。

4.4 其他功能

其他功能包括数据导出和日志。数据导出功能可以将查询结果导出为Word文件格式或html格式或txt普通文本文件, 可满足不同情况下的应用需求。其中降水数据是按照不同的县来排序的, 同一个县按照降水量降序排列, 如果是Word文件格式或网页文件格式, 还可以以不同的颜色表示各个县区的第1个数据, 这样很容易就找到各个县的数据列表, 方便了各县业务人员进行查看。日志功能则主要用来记录各区域站雨量级别变化情况, 当某个区域站开始降雨或降水量级别发生变化后发声报警, 并产生1条日志信息, 方便业务值班人员查看降水量的变化情况。

5 结语

秦皇岛区域站数据查询显示系统极大地方便了业务值班人员获取全部区域站的降水信息, 使得新装的区域站在地方气象服务中发挥积极作用。该软件运行逾1年来, 稳定可靠。但由于该软件后台的数据库来自于省局数据库, 而不是直接来自区域站, 故时效性稍差。另外, 由于开发时间较短、开发经验有限以及调研不到位, 整个系统难免会有不尽如人意的地方, 这只能在以后的工作中不断加以改进和完善。

参考文献

[1]PAUL Du Bois.My SQL权威指南[M].北京:机械工业出版社, 2004.

[2]KARLI Watson, CHRISTIAN Nagel.C#入门经典[M].5版.北京:清华大学出版社, 2010.

[3]任印国, 魏永强.使用Surfer软件绘制地质图件和处理地质数据的方法[J].测绘技术装备, 2006 (1) :35-37.

篇4:实验一:地图数据的查询与显示

关键词:海量数据;多数据库;表分区;分表技术

中图分类号:TP311.131文献标识码:A文章编号:1007-9599 (2010) 14-0000-03

Massive Data Query Optimization Research and Application Based on Data Partition

Jia Junkai1,Xu Hui1,Gu Guoqiang1、2

(1.Donghua University,School of Computer Science,Shanghai200051,China;2.Shanghai Triman Informatin&Technology Co.,Ltd.,Shanghai200051,China)

Abstract:The low efficiency of massive data data query,comparison and analysis of a variety of massive data query optimization solutions,advantages and disadvantages,division massive data based on data query performance optimization.The method uses multi-database processing,table partitioning,sub-table technology will be in three dimensions the data stored in the data division,reducing the size of massive data queries.After large-scale experiments that the method improves the efficiency of massive data queries.

Keywords:Massive data;Multi-database;Table partition;Points table technology

在面对海量数据时,用户关心的是如何从其中查询出对自己有价值的信息而非海量数据本身,如何使查询海量数据的性能更为高效是目前国内外数据库系统研究的热点问题。

在海量数据查询优化策略有:一:代数优化;它对查询语句进行变换以减少语句执行开销[1]。二:规则优化;它是根据启发式规则选择执行策略[2]。两种方法的不足表现在:当数据量规模超出系统软硬件处理能力时,通过优化语句很难提升查询性能。三:物理优化;它是选择合适的存储策略进行的优化,但是在对语句的执行效率考虑不足。四:代价估算优化。它是对已经存的优化策略进行代价估算,选择最小的执行代价策略[3]。不足:计算最小执行代价耗费时间过多且实用性不高。

目前的海量数据查询性能低下大都是由于数据的规模超出系统的软硬件处理能力。本文利用多数据库中间件插件技术在存储海量数据时将数据划分存储到多个自治的数据库中,在一维上降低数据规模并优化查询语句;在本地数据库中运用表分区技术,将海量数据划分存储到多个表分区中,在二维上降低海量数据的规模;利用分表措施将分区表分成多个子表,再次降低海量数据的规模。通过对海量数据的三维划分、优化查询语句以及降低数据的扫描规模提高了海量数据的查询性能。

一、数据划分

数据划分是指按照某种规则将数据分布到特定范围内,使得在对数据进行查询时系统并行处理能力提高,以此降低查询的响应时间,提高数据库的查询性能。数据划分对于能否充分利用系统的cpu和带宽资源,减少通信开销,平衡系统负载和减少计算量,最佳的发挥并行性和系统性能至关重要[4]。

(一)多数据库并行处理技术

多数据库并行处理技术是以中间件为技术支撑,对海量数据进行合理存储,高效查询的一种技术。多数据库并行处理结构如图a所示:

当用户提出加载请求时,通过负载均衡系统将请求均衡的分发给并行加载服务,并行加载服务首先读取全局数据字典中的元数据,通过数据划分器和表加载器将数据加载到底层数据库中,当用户提出的查询服务时,系统将请求发给并行查询服务,并行查询服务首先读取全局数据字典用于获得多数据库的配置信息,然后通过查询语句改写服务优化查询语句并发送给查询服务器,用以完成数据的查询功能。

多数据库并行查询技术通过中间层组件对查询语句进行分析、优化,根据分析的结果将查询分解或者复制为多个等价的子查询,将多个子查询语句在相应的数据库节点上执行,它降低了每个本地数据库的查询规模,并实现查询的本地化并行查询,提高了数据的查询效率。

(二)表分区

针对底层数据库数据查询规模大的问题,对其特定业务的查询条件属性做表分区,以提高查询的性能。图b为根据时间将底层数据库中的数据进行表分区的示意图。

由图可知,经表分区后,数据在数据库中按一定的规律存放。当进行数据查询时,系统只需扫描存放数据的响应表分区,因而查询扫描规模可以大大降低,数据查询性能也会得到相应的提高。

当分区的规模较大时,在海量数据库中无法有效降低数据规模,这样的数据划分无意义;当用户分区规模较小时,在进行多数据查询时,会涉及到多个表分区,查询性能也难以提高。因此表分区的粒度需要优先考虑两方面:一是数据的存储规模;二是用户的查询粒度。

(三)分表技术

1.原理。

在分区表的基础上,将表根据所查找的属性字段划分成为多个子表,利用数据库的Union ALL视图将需要查询的子表动态的合并起来,使对原表的查询转化为对视图或者子表的查询,以此降低数据查询的扫描规模。

2.算法。

输入:业务层提交给中间层的查询语句;

输出:语句改写后的查询语句;

流程:

(1)将业务层提交的查询语句提交给语法分析器;通过语法分析器截取where子句后的条件表达式。

(2)分析条件表达式中是否含有与分表字段有关的条件。当不包含分表字段时返回原语句,算法结束;否则提取该字段。

(3)根据提取的字段分析其涉及到的数据范围,找到相对应的视图或者子表。

(4)将原语句中from子句后的原表改为3得到的视图或者子表,此时得到查询语句a。

(5)去除a中与分表有关字段的条件,返回改写后的查询语句,算法结束。

二、数据划分性能分析

(一)数据库级别的数据划分

通过中间件,将复杂查询语句转化为简单查询,将的串行查询改为在各个本地库上的并行查询。如果将数据分布到各个数据库中,此时需要的网络和磁盘I/O开销会非常的大,通过中间组件服务在数据加载时预先进行数据布局,在对大规模的数据进行处理的时候,不需要将中间结果在局部数据库之间的网络上进行传输,可以极大提高并行处理的性能。

(二)数据库表级别的数据划分

为更好的分析数据划分对查询性能的作用,建立以下场景:设有结构为TB{RID,CSDZ,XZDZ,CJSJ,NRXX}的表,RID为主键,CSDZ和XZDZ为二维空间属性,其各自的值域为0-31,CJSJ为时间属性,NRXX为内容信息属性。

通过表分区的方式将其按照时间来进行数据划分。由于数据量大并且查询针对小时范围较为频繁,选取按小时对海量数据进行表分区。

不考虑物理存储的条件下:

假设a查询扫描同等数据规模所花费的时间相同。

假设b查询的响应时间仅仅考虑数据的扫描时间。

假设c查询数据划分的各部分时能充分并行。

对于基于表分区的数据划分:

查询时间间隔为n小时的数据时,理想条件下,数据被平均的分成24分,这样查询扫描的数据在规模上减少到n/24;在假设a和假设b的条件下,查询的响应时间会减少到n/24,在查询性能上提高了24/n倍。实际情况下,数据不可能被完全的平分,这样查询扫描的数据在最坏情况下受到最大表分区规模的制约。

对于基于分表的数据划分:

设关系R为CSDZ和XZDZ之间组成的关系,关系R可以划分成多个子关系Rc_x,在CSDZ和XZDZ的数据划分基础上,针对全表的查询,在假设c成立的条件下,其查询性能受限于最大子关系的数据规模上。假设最大子关系的数据规模为m,总的数据规模为v,在上述假设都成立的情况下,查询性能的响应时间减少为原来的m/v,性能提高了v/m;考虑数据结果合并的开销,设原来查询相应时间为T,查询处理时间为T1,查询合并时间为T2,则T=T1+T2。基于上述分析,T1的时间减少为原来的m/v,查询合并时间不变,则经过数据划分后查询的响应时间为m/v*T1+T2,其查询性能提升T1+T2/(m/v*T1+T2)。

在考虑物理存储的条件下:

假设rownum为原表中信息总数,length为每条记录的长度,k为子关系的个数,ROWNUMi为子关系i的信息总数。在数据划分之前,设q为查询的总时间复杂度,则q=O(rownum*length)。设q1为数据划分后的查询总时间复杂度,q2为所有子关系的查询时间复杂度总和,q3为返回合并结果的时间复杂度。则q1=q2+q3。因海量数据查询时查询的响应时间远远大约返回合并结果的时间复杂度,即q3<

三、海量数据划分策略的总体架构

通过对数据划分的理解以及对数据划分性能的分析,本文提出基于数据划分策略的海量数据查询模型总体架构分为如图c所示:

底层是各种异构数据库,通常我们称之为“本地数据库”;此层主要用来存放海量数据,并在此层实现表分区、分表的数据划分。中间层是一个基于CORBA标准的事务处理“中间件”层。它的作用是优化数据的存储结构,改写语句的执行策略。上层为业务层,为中间层提供数据和查询语句来源。

该架构数据划分存储到多个自治的数据库中并优化查询语句的执行效率,在底层数据库中用表分区、分表减少数据规模以期提高查询效率。

四、试验

试验一:

试验方案:在公安系统中的oracle9i数据库中选取一组集群,在集群中建立一张TB表,同时建立1000张与TB表相同表结构的子表,其表命名为TB1-TB1000。将数据量为1TB的数据导入到TB表中,并将这1TB的数据平均划分然后导入到1000张子表中,同时将子表动态的组成一张和TB表相同的视图。对TB表和视图分别进行大规模数据查询。

本试验的目的在于测试相同数据规模下单表查询和对多表建立的视图查询的数据查询性能对比,因此在视图查询时不采用并行查询方式,仅测试多表建立的全局视图对查询性能的影响。

试验结果:在数据规模都在80000万的条件下,在串行条件下,对无索引的时间进行顺序扫描,单表扫描的时间大约为十五至二十分钟多分钟,而对分表建立的索引所花费时间要超过二十五分钟;对分表属性进行查询时,二种方式的查询都不超过三分钟。当调整查询方式为并行查询,并行度为10时,对时间的扫描,二者都约三分钟。对内容字段的查询,二者在查询性能上差别不大。

试验结论:在相同规模的海量数据情况下,虽然通过对分表建立统一视图会导致存储空间的增大,但是不明显。并行全视图扫描在查询性能和单表查询达到相同的水平,因而得出结论分表视图的方案可行。

试验二:

方案:在试验一得基础上,通过中间件的并行查询服务对TB表进行单向匹配、双向匹配、不同属性值之间组合的统计查询。

试验结果:

结果分析:在三类查询中除测试c中的一般查询外,分表后的查询相应时间都比为分表后的响应时间短。测试c的一般查询涉及到未进行分表的内容字段,此时会受到文本索引的影响,同时查询结果会在局部的数据库之间传递,此时网络通信时间会占据数据查询响应时间的大部分时间。在对常用的分表字段进行条件查询时,因对数据的扫描规模降低,数据查询相应时间会小于未分表的查询相应时间。进而证实了多维数据划分查询优化方法的可行性。

五、结论

通过对海量数据查询的优化与性能的分析,基于数据划分策略的海量数据优化方法解决了因数据规模在系统的软硬件处理能力之外所造成的数据查询性能低的问题。查询性能得到大幅提升。

数据划分中的分表技术将原表转为子表,子表太多会使系统I/O的次数剧增,造成数据查询性能降低。因此我们要不断的总结、探索找到子表个数的峰值,使得系统充分利用并行性的时候数据的查询性能最高。

参考文献:

[1]朱宁贤.数据库查询的优化策略探讨.办公自动化杂志,2007,8

[2]王能斌.数据库系统.电子工业出版社,1998

[3]韩忠,汪伟.海量数据的查询优化.科技资讯,2006,10

[4]侯潇.海量数据处理中基于数据划分的查询优化研究与实现,2007,11

[5]陈光.多数据库事务处理策略的研究,2000,4

篇5:实验一:地图数据的查询与显示

1 自动观测系统的组成及存在的问题

1.1 自动观测系统的组成

自动气象观测系统(AWOS)是一套高精密的观测设备,由探测模块、数据采集模块、数据处理模块、输入输出模块等好几部分组成,包括测量跑道视程、常规气象要素、云和天气现象等传感器以及相应的监控和远程显示的集成自动化系统。现在的自动观测系统基本上被芬兰的VALSALA公司所垄断,全世界目前有100多个国家使用该公司产品,我国大部分机场安装的也是该公司的产品。由于引进时间的差异,存在版本的差异,但其从终端显示界面、数据采集、传输方式等存在一脉相承的特性,存在的问题也是大同小异。

1.2 自动观测系统存在的问题

2008年年初,厦门机场引进了芬兰VALSALA公司生产的自动观测系统MIDASⅳ。该系统继承了早期自动观测系统的某些特性,改进性能并增加了许多新的功能。但仍存在不少不足之处。

1.2.1 显示方面的不足

显示方面的不足主要体现在以下3方面:(1)显示界面为全英文的,不直观,看得很费劲;(2)某些数据输出不规范,比如风速等没有按照《民用航空行业标准民用航空气象第1部分:观测和报告》的要求进行相应的取整处理,风向不是以10°为间隔的360方向度等;(3)重要要素,比如RVR的显示不突出,无法做到一目了然,影响使用。

1.2.2 查询数据不方便

查询数据不方便主要体现在以下3方面:(1)没有实用的数据库,实时数据的存储还是早期的类似文本的格式,只能通过终端去访问历史数据;(2)查询数据很不方便,各个要素的存储也是分开的,必须进入主机的历史文件夹,再打开相应的文件调阅查询,无法输出;(3)数据只保存1年,超过1年自行覆盖,数据无法长期保存。

1.2.3 显示终端及输出端口的不足

自动观测系统安装完成后,主机(CDU)上一般配有四五个显示终端和三四个串行通讯输出口。VALSALA公司为了其商业利益,对终端的数目和串行通讯口的个数进行了限制。当用户多了以后,显示终端及通讯端口往往不够用。如何解决这些问题,成为摆在我们面前的难题。

2 解决办法

通过现场调研我们发现,自动观测系统安装完成后,主机上一般配有三四个串行通讯口。这几个串行通讯口是系统重要的输出设备,可以输出实时数据和报文等。系统型号不同,输出格式也略有不同,一般是10 s发送一组实时数据,每小时发送一次自动METAR报。

设计思路:了解了自动观测系统的实时数据输出方式后,我们能不能通过接收串行口输出的实时数据,按需求重新做一个新的直观且实用的显示界面,同时把历史数据存储成我们需要的数据格式,通过简单的查询动作实现我们所需要的查询数据的功能,并且能把经过处理的数据按照一定的格式重新发送到任何一个新的终端上呢?

如果这样的设想能够实现,上文提到的系统存在的问题就可以迎刃而解了,而且不会影响系统的正常运行,终端数目也可以无限扩充了。

通过摸索和实践,笔者发现,这种方法是可行的,而且所有的功能也是可以实现的。

3 软件功能及实现方法

3.1 功能设计

功能:根据《民用机场气象观测资料处理系统技术规范》第十条:“机场气象观测资料处理系统应当具有实时采集自动气象观测设备测量的各种气象要素的功能”和第十一条:“机场气象观测资料处理系统应当具有同步显示自动气象观测设备测量的各种气象要素的功能”。我们要开发的软件应该具有实时采集和同步显示自动观测系统数据的功能。

具体设计:通过软件编程,接收串行口输出的实时数据,做一个中文版的实时数据显示界面,同时把历史数据存储成通用的数据格式(例如简单易用的ACCESSS数据库),再通过SQL查询语句实现我们需要的查询功能,而且把经过处理过的规范的数据按照一定的格式通过网络线或通讯端口送到任何一个新的终端上。

3.2 软件实现

3.2.1 接收实时数据

在了解了自动观测系统的工作原理及实时数据输出方式后,就需要通过编程实现数据的读取,笔者所采用的是微软的软件开发工具——VISUAL BASIC。VISUAL BASIC(简称VB)是微软公司开发的一套编程工具,具备简单易用,与WINDOWS操作系统兼容性好,功能极其强大等优点。

通过介绍我们知道,实时数据已经通过串行端口送出来了。要实现预期的功能,首先要把实时数据串完整而正确地接收下来。这就需要一定的串行通讯知识,比如波特率、数据位、奇偶校验、停止位等。现在的编程软件已经高度集成化,可以调用现成的控件编程,只要输入相应的参数就可以了。笔者用的就是VB的COMM通讯控件。COMM通讯控件提供了一系列标准通讯命令的使用界面。使用它可以建立与串行端口的连接,通过串行端口连接到其他通讯设备,对接收口等参数进行正确设置就可以了。当一切设置妥当,就可以读出一组实时数据字符串。以下是笔者从系统串行通讯口读出来的一串数据,系统为MIDASⅳ自动观测系统,数据为10 s/次,可以使用VB的时钟控件进行时间设置,控制每隔10 s读取一次串口数据。

(MIDASDATACAAC 2009-03-20T06:04:10 8.30 5.20 8.306.94 4.00 10.60 7.11 90 88 128 101 80 126 104 4200 2100 01010.57 1012.64-999 24.80 16.39 59.00 27.40 17.10///0 6558 1100 0 4900 2100 19.80 7.70 10.90 9.22 6.90 11.40 9.28 109 97 120109 95 121 107 8000 2100 0 1011.19 1012.64-999 24.00 16.6563.00 26.70 17.30 4931 PWSTART BR PWEND RWSTART///RWEND 4300 4200///ENDZSAM)

有了实时数据,我们就可以对它解读,厂家一般会提供数据的输出格式。前期的自动观测系统的数据格式与后期的格式有较大不同——前期为字符定位,后期以空格分隔兼字符定位。需要注意的是,系统输出的字符串有时候并不一定按其给出的格式输出。这就需要我们进行辨别及纠错处理,需要在程序中调用相应的字符串处理函数。这是一项需要耐心和细心的工作,还需要一定的处理字符串的能力。

3.2.2 建立显示界面

通过编程建立一个实时数据显示界面,把接收下来的实时数据字符串进行处理,取出有用的数据,把它显示在界面上,按照数据的重要性及优先级进行颜色区分:对RVR用红颜色突出显示,10 min发报数据用蓝色显示,2 min、瞬时数据用绿色显示,其余数据用黑色显示,做到一目了然,清清楚楚。图1即实时数据显示界面。

3.2.3 建立数据库

利用微软(MICROSOFE,简称MS)的ACCESS数据库工具建立一个新的数据库,考虑兼容各个机场的自动观测系统,对所有可能输出的数据都建立了数据字段保存。图2即接收的实时数据入库后的情况。

3.2.4 建立查询界面

为了查询方便,查询界面的数据显示排版采用和显示界面同样的样式,只要在“日期时间”栏输入正确的日期时间就可以进行相应的查询。图3即历史数据查询界面。当然,形成数据库后,我们可以设计更加强大的数据库查询功能,这里不再赘述。

3.2.5 数据再输出

将数据进行接收、显示及入库处理后,经过整理后的符合《民用航空气象地面观测规范》的数据可以通过网络线或通讯端口进行再输出。输出格式可以根据用户的需求进行定义。这时,接收的这台计算机又相当于一台数据服务器了,功能可以进一步扩展。

4 使用效果

该软件于2012-01开发成功,在厦门机场投入使用。软件的开发成功并投入使用,实现了预期的目标,填补了原配自动气象观测系统在数据显示、存储及查询等方面的不足,取得了良好的效益。具体体现在以下几方面:(1)方便了气象观测员和预报员直观地读取数据,进行发报、通报等服务工作;(2)作为自动观测系统的备份显示终端,在原配的显示终端故障时,起到应急作用;(3)方便了气象设备维护人员使用,可以实时监控气象数据是否正常;(4)方便了管制员、航空公司等用户的使用,可以直接获取气象观测实时资料。

这项技术在笔者参加的民航华东空管局“民航华东气象观测数据自动处理系统升级改造项目2007”中得到应用,在民航华东地区进行推广和使用。

5总结

本文介绍的是笔者通过自己的实践和摸索,探索出来的一套通过自动读取自动观测系统串行通讯端口实时数据,对该数据进行规范化处理,并把实时数据显示在中文版界面上、入库保存及查询的方法,并介绍了通过软件编程将这种方法实现的具体过程。该软件具有以下优点:(1)安全性高。这种读取数据的方式不会影响自动观测系统的主机运行,很安全。(2)适用性广。适合在全国各个机场推广使用,兼容自动气象观测系统和自动气象站2种设备。(3)实用性强。由工作在一线的气象观测员开发,实用性强,与气象业务契合度高。(4)简单易用。可以提供给塔台、航空公司等用户使用,用户使用门槛低。(5)可以扩展。前端和后端都留有接口。在取得实时数据并入库后,我们还可以作进一步的软件开发,比如嫁接或开发气象观测发报软件;积累下来的实时数据资料还可以用来建立长期的气象资料库,进行气象要素的统计及分析,为气象预测和预报服务。这些后期开发应用已经在笔者参加的民航华东空管局“民航华东气象观测数据自动处理系统升级改造项目2007”和“民用航空气候资料处理和服务系统2010”中得到实现。

摘要:为了更好地利用自动气象探测设备开展航空气象服务工作,以厦门机场的自动气象观测系统为例,结合气象、通讯等专业的知识,运用计算机编程技术进行软件开发,开发出一整套实用的自动观测系统实时数据采集、入库、显示及查询软件。该软件已经投入业务使用,能够实时直观地显示数据,方便了用户使用,提高了天气监控效率,保障了飞行安全。该软件简单易用,适用对象广,值得在全国机场推广使用。

关键词:厦门机场,民航气象,软件开发,自动观测系统

参考文献

[1]中国民用航空局令第98号.航空器机场运行最低标准的制订和实施规定[S].2001-02-26.

[2]中国民用航空局.MH/T 4016.4—2008中国人民共和国民用航空行业标准民用航空气象第4部分:设备配备[S].北京:中国标准出版社,2008.

[3]中国民用航空局.MH/T 4016.1—2007中国人民共和国民用航空行业标准民用航空气象第1部分:观测和报告[S].北京:中国标准出版社,2007.

[4]李长林.Visual Basic串口通信技术与典型实例[M].北京:清华大学出版社,2007:13-16.

[5]MICROSOFT公司.MICROSOFT Visual Basic 6.0 Component Tools Guide[M].北京:希望电子出版社,1999:16-17.

[6]何文俊,马杰.Visual Basic 6.0编程实例精解[M].北京:希望电子出版社,2000:88-90.

[7]赛奎春,李俊民.Visual Basic函数参考大全[M].北京:人民邮电出版社,2007:88-122.

[8]万里新,苏玲.Visual Basic数据库开发全程指南[M].北京:电子工业出版社,2008:227-229.

上一篇:成语有解释和造句下一篇:课题《“减负增效”下语文课堂高效性探究》工作总结201