阶段三:项目开发---搭建项目前后端系统基础架构:任务9:导入空管基础数据

任务描述

本阶段任务是导入项目的基础数据,包括空管基础数据和离线的实时飞行数据(已经脱敏)。

任务指导

本阶段任务需要导入两种数据:

1、在MySQL中导入空管基础数据

  • kongguan.sql空管基础数据表说明:
1告警信息表
2告警历史信息
3告警飞行历史信息
4用户和角色表
5用户表
6角色表
7权限表
8角色和权限表
9实时飞行变量表
10机场表
11航空公司表
12航空雷达表
13航空公司变量表
14扇形饱和度变量表
15值班变量表
16航空变量表
17机场变量表
18机场经纬度表
19航线变量表
  • 数据字典:

表1:告警信息表(warntp_number)

NameCodeCommentData TypeLength
主键idid int11
告警类型gj_type varchar100
告警唯一标识gj_id varchar50
告警的类型gj_msg_type varchar100
航迹号1gj_track_num1 varchar100
航迹号2gj_track_num2 varchar100
告警航班之间的距离gj_distinct varchar100
告警之间的夹角gj_radian varchar100
告警的名称gj_name varchar100
告警距离参数gj_distinct_bz varchar100
告警的城市gj_city varchar1000
告警的发生时间gj_date varchar100
航班号gj_acids varchar100
飞机1经度gj_num1_long varchar100
飞机1纬度gj_num1_lat varchar100
飞机2经度gj_num2_long varchar100
飞机2纬度gj_num2_lat varchar100
数量count int11

表2:告警历史信息表(warnsimilarhistory_number)

NameCodeCommentData TypeLength
主键idid int11
告警类型gj_type varchar100
告警唯一标识gj_id varchar50
告警的类型gj_msg_type varchar100
告警数量gj_num varchar100
航迹号gj_track_num varchar100
告警扇区号gj_sector varchar100
航班号gj_acid varchar100
状态gj_status varchar100
城市间gj_city varchar100
时间gj_date varchar100
数量count int11

表3:告警飞行历史信息(warnflighthistory_number)

NameCodeCommentData TypeLength
主键idid int11
告警类型gj_type varchar100
告警唯一标识gj_id varchar50
告警类型gj_msg_type varchar100
航迹号1gj_track_num1 varchar100
航迹号2gj_track_num2 varchar100
告警航班之间的距离gj_distinct varchar100
告警航班之间的夹角gj_radian varchar100
告警名称gj_name varchar100
告警距离参数gj_distinct_bz varchar100
告警的城市gj_city varchar100
告警发生时间gj_date varchar100
数量count int11
告警扇区号gj_sector varchar100

表4:用户和角色表(user_role)

NameCodeCommentData TypeLength
主键idid int10
用户iduser_id int11
角色idrole_id int11

表5:用户表(sys_user)

NameCodeCommentData TypeLength
主键idid int11
姓名name varchar50
账号account varchar50
密码password varchar100
类型type int11
用户类型iduser_type_id int11
是否删除is_del int11
创建时间create_time datetime0
创建角色create_user int11
修改时间update_time datetime0
修改用户update_user int11
是否启用is_enable int11
联系方式contact varchar11

表6:角色表(sys_role)

NameCodeCommentData TypeLength
主键idid int11
角色名role_name varchar100
是否删除is_del int11
创建用户create_user int11
创建时间create_time datetime0
修改的用户update_user int11
修改时间update_time datetime0
是否启用is_enable int11
角色编码role_code varchar50

表7:权限表(sys_auth)

NameCodeCommentData TypeLength
主键idid int11
权限名称auth_name varchar100
权限编码auth_code varchar100
删除状态(0,正常;1,删除)is_del int11
创建人create_user int11
创建时间create_time datetime0
更新人update_user int11
更新时间update_time datetime0
权限类型(0:按钮;1,菜单)type int11
菜单Urlmenu_url varchar255
父级idparent_id int11
菜单图标地址menu_icon varchar255
菜单顺序menu_order int11

表8:角色和权限表(role_auth)

NameCodeCommentData TypeLength
主键idid int10
角色idrole_id int11
权限idauth_id int11

表9:实时飞行变量表(multiradar_number)

NameCodeCommentData TypeLength
主键idid int11
轨迹编号TRACK_NUMBER varchar50
哪个地区的综合航迹AREA_SOURCE varchar100
发送时间utcSEND_RADAR_TIME varchar100
雷达种类RADAR_TYPE varchar100
航班号ACID varchar50
二次代码SSR_CODE varchar100
直角坐标xZHIJIAO_X varchar100
直角坐标YZHIJIAO_Y varchar100
小数形式的经度RADAR_LONGTITUDE varchar100
小数形式的纬度RADAR_LATITUDE varchar100
高度RADAR_HEIGHT varchar100
x分量速度SPEED_X varchar100
y分量速度SPEED_Y varchar100
速度RADAR_SPEED varchar100
航向DIRECTION varchar100
指令高度RADAR_CFL varchar100
飞行员报告高度FCU varchar100
时间戳TIME varchar100
飞行状态FLYSTATUS varchar100
爬升/下降速度CLIMBORDOWN_SPEED varchar100
扇区sectionvarchar100

表10:机场表(kg_airport)

NameCodeCommentData TypeLength
机场标识idID int11
机场四字码AIRPORT_CODE4 varchar4
机场三字码AIRPORT_CODE3 varchar10
机场中文全称AIRPORT_CNAME varchar50
机场英文全称AIRPORT_ENAME varchar50
机场坐标经度AIRPORT_LONGTITUDE varchar50
机场坐标纬度AIRPORT_LATITUDE varchar50
中文简称AIRPORT_SNAME varchar20
排序描述AIRPORT_DESCRIPTION varchar255
机场标高AIRPORT_HEIGHT varchar20
机场跑道磁项AIRPORT_RUNWAYCOURSE varchar20
机场跑道长度AIRPORT_RUNWAYLENGTH varchar20
机场跑道宽度AIRPORT_RUNWAYWIDTH varchar20

表11:航空公司表(kg_airlinecompany)

NameCodeCommentData TypeLength
主键idID int11
二字码AIRCOMPANY_CODE2 varchar4
三字码AIRCOMPANY_CODE3 varchar3
中文全称AIRCOMPANY_CNAME varchar50
中文简称AIRCOMPANY_SNAME varchar50
排序描述AIRCOMPANY_DESCRIPTION varchar50
英文名称AIRCOMPANY_ENAME varchar100

表12:航空雷达表(kg_aftn)

NameCodeCommentData TypeLength
主键idid int11
发送时间utcsend_time varchar255
地区资源area_source varchar255
计划资源plan_source varchar255
飞机idacid varchar255
起飞adep varchar255
降落ades varchar255
计划起飞的时间stod varchar255
计划落地的时间stoa varchar255
状态aftn_status varchar255
执行时间execute_date varchar255
编码ssr_code varchar255
飞行类型fly_type varchar255
飞机类型aircraft_type varchar255
尾速tail_flow varchar255
计划高度plan_height varchar255
计划速度plan_speed varchar255

表13:航空公司变量表(company_number)

NameCodeCommentData TypeLength
主键idid int11
飞机idacid varchar100
公司三字码company_code3 varchar100
公司名company_name varchar100
延误数delay_count int11

表14:扇形饱和度变量表(callsaturation_number)

NameCodeCommentData TypeLength
主键idid int11
消息发送时间SEND_TIME varchar100
数据区域AREA_SOURCE varchar100
计算时间THBH_TIME varchar100
计算的扇区THBH_SECT varchar100
计算后饱和度THBH_VALUE varchar100

表15:值班变量表(atcduty_number)

NameCodeCommentData TypeLength
主键idid int11
发送时间send_time varchar100
数据区域area_source varchar100
值班岗位atc_duty_position varchar100
值班人员atc_duty_person varchar100
值班人员管制扇区atc_duty_sector varchar100
数量count int11

表16:航空变量表(atc_number)

NameCodeCommentData TypeLength
主键idid int11
航班号ACID varchar100
航班时间ATC_TIME varchar100
执行日期EXECUTE_DATE varchar100
计划扇区名称PLAN_SECTOR_NAME varchar100

表17:机场变量表(airport_number)

NameCodeCommentData TypeLength
主键idid int11
飞行编码flightcode varchar20
机场名称cname varchar100
经常英文名ename varchar100
数量count int11

表18:机场经纬度表(airport_longlat)

NameCodeCommentData TypeLength
三字码code3 varchar255
城市city varchar255
纬度latitude varchar255
经度longitude varchar255
四字码code4 varchar255

表19:航线变量表(airline_number)

NameCodeCommentData TypeLength
主键idid int11
飞机idacid varchar50
起飞机场编码adepcode varchar50
目标机场编码adescode varchar50
 acids varchar500
机场名称adepname varchar100
机场名称adesname varchar100
机场经度adeplong varchar100
机场纬度adeplat varchar100
机场经度adeslong varchar100
机场纬度adeslat varchar100
数量count int11

2、将离线的实时飞行数据(data.tar.gz)导入到HBase中

  • HBase数据表说明:
1管制值班人员表
2ATFN报文数据
3综合航迹表
4计划数据
5相似航班号数据表
  • HBase数据字典:
kg_ATCDutyInfo    管制值班人员表   
NameCodeCommentData TypeLength
消息发送时间SEND_TIME string 
数据区域AREA_SOURCE string 
值班岗位名称ATC_DUTY_POSITION string 
值班人员ATC_DUTY_PERSON string 
值班人员管制扇区ATC_DUTY_SECTOR string 
Kg_AFTN  ATFN报文数据   
NameCodeCommentData TypeLength
发送者时间,UTC 时间SEND_TIME string 
数据区域AREA_SOURCE string 
消息类型PLAN_SOURCE string 
航班号ACID string 
起飞机场ADEP string 
目的机场ADES string 
计划起飞时间STOD string 
计划落地时间STOA string 
当前状态AFTN_STATUS string 
执行日期EXECUTE_DATE string 
二次代码SSR_CODE string 
飞行规则FLY_RULE string 
飞行类型FLY_TYPE string 
机型AIRCRAFT_TYPE string 
尾流TAILFLOW string 
注册号REGID string 
巡航高度(来源 FPL 报)PLAN_HEIGHT string 
巡航速度(来源 FPL 报)PLAN_SPEED string 
任务TASK string 
机载设备AFTN_EQUIPMENT string 
性能CAPABILITY string 
FPL 报预计起飞时间ETOT string 
FPL 报预计落地时间ELDT string 
实际起飞时间ATOT string 
实际落地时间ALDT string 
备降机场EVENING_PORT string 
入界点IBP string 
入界点时间IBP_TIME string 
出界点OBP string 
出界点时间OBP_TIME string 
飞行总时间FLY_TIME string 
Kg_MultiRadarData        综合航迹表   
NameCodeCommentData TypeLength
哪个地区的综合航迹AREA_SOURCE String 
发送时间(UTC 时间)SENDRADARTIME String 
雷达种类(综合航迹:MULTI,RADAR_TYPE String 
航班号ACID String 
航迹号TRACK_NUMBER Int 
二次代码SSR_CODE String 
直角坐标 X 分量(单位:km)ZHIJIAO_X double 
直角坐标 Y 分量(单位:km)ZHIJIAO_Y double 
小数形式的经度(单位:度)RADAR_LONGTITUDE double 
小数形式的纬度(单位:度RADAR_LATITUDE double 
高度RADAR_HEIGHT double 
X 分量速度SPEED_X double 
Y 分量速度SPEED_Y double 
速度RADAR_SPEED double 
航向DIRECTION double 
指令高度RADAR_CFL double 
飞行员报告高度FCU double 
时间戳TIME double 
飞行状态FLYSTATUS String 
爬升/下降速度CLIMBORDOWN_SPEED double 
Kg_PlanData    计划数据   
NameCodeCommentData TypeLength
消息发送时间,UTC 时间SEND_TIME string 
数据区域AREA_SOURCE string 
数据类型,来源于哪个系统PLAN_SOURCE string 
航班号ACID string 
起飞机场ADEP string 
落地机场ADES string 
计划起飞时间(次日计划时间)STOD string 
计划落地时间(次日计划时间)STOA string 
FPL 起飞时间ETOT string 
FPL 落地时间ELDT string 
机型AIRCRAFT_TYPE string 
注册号REGID string 
任务TASK string 
航班执行日期EXECUTE_DATE string 
Kg_WarnSimilarHistory相似航班号数据表   
NameCodeCommentData TypeLength
告警类型GJ_TYPE String 
告警的唯一标示编号GJ_ID String 
告警的类型GJ_MSG_TYPE String 
航迹号 1GJ_TRACK_NUM1 String 
航迹号 2GJ_TRACK_NUM2 String 
告警的扇区号GJ_SECTOR String 
告警航班之间的距离GJ_DISTINCT Double 
告警航班之间的夹角GJ_RADIAN Double 
告警的名称GJ_NAME String 
告警的距离参数GJ_DISTINCT_BZ String 
告警的城市GJ_CITY String 
告警发生的时间GJ_DATE String 
  • 其它表字段与mysql表字段相同

任务实现

【注意:当前任务的操作在node3节点上完成】

1、首先将data.tar.gz解压到自定义目录中

注意:由于数据文件的压缩包比较大,解压过程可能会持续3~5分钟,请耐心等待。

[root@node3 ~]# cd /opt/software/
[root@node3 software]# tar -xzf data.tar.gz -C /opt/

2、利用SQLyog或者其他数据库工具将保存在/opt/data目录中名为kongguan.sql的文件导入到MySQL数据库

  • 使用 【mysql -uroot -p】 登录到MySQL(输入密码登录123456)
  • 使用 show databases 命令,查看数据库列表

  • 创建数据库:
mysql> create database kongguan;
mysql> use kongguan;

  • 进入kongguan数据库,使用 source 命令执行kongguan.sql脚本导入数据(假设sql文件的位置:/opt/data/kongguan.sql)
mysql> use kongguan;
mysql> source /opt/data/kongguan.sql;

导入数据后,可使用 MySQL的show tables; 语句查看导入情况:

3、将HBase备份文件(空管数据及实时飞行数据)导入到集群的HBase数据库

  • 切换到node3节点,在控制台输入以下命令,在HDFS上创建如下目录
[root@node3 ~]# hadoop fs -mkdir /hbase/table/ 
[root@node3 ~]# hadoop fs -mkdir /hbase/table/Kg_CallSaturation 
[root@node3 ~]# hadoop fs -mkdir /hbase/table/Kg_ATC 
[root@node3 ~]# hadoop fs -mkdir /hbase/table/Kg_PlanData 
[root@node3 ~]# hadoop fs -mkdir /hbase/table/Kg_ATCDutyInfo 
[root@node3 ~]# hadoop fs -mkdir /hbase/table/Kg_FlightState 
[root@node3 ~]# hadoop fs -mkdir /hbase/table/Kg_WarnFlightHistory 
[root@node3 ~]# hadoop fs -mkdir /hbase/table/Kg_AFTN 
[root@node3 ~]# hadoop fs -mkdir /hbase/table/Kg_WarnSimilarHistory
[root@node3 ~]# hadoop fs -mkdir /hbase/table/Kg_MultiRadarData

查看HDFS上目录的创建情况:

  • 把数据上传至hdfs

注意:由于数据量较大,上传数据的过程可能会持续3-5分钟的时间,请耐心等待。

[root@node3 ~]# hadoop fs -put /opt/data/Kg_CallSaturation /hbase/table/Kg_CallSaturation 
[root@node3 ~]# hadoop fs -put /opt/data/Kg_ATC /hbase/table/Kg_ATC 
[root@node3 ~]# hadoop fs -put /opt/data/Kg_PlanData /hbase/table/Kg_PlanData 
[root@node3 ~]# hadoop fs -put /opt/data/Kg_ATCDutyInfo /hbase/table/Kg_ATCDutyInfo 
[root@node3 ~]# hadoop fs -put /opt/data/Kg_FlightState /hbase/table/Kg_FlightState 
[root@node3 ~]# hadoop fs -put /opt/data/Kg_WarnFlightHistory /hbase/table/Kg_WarnFlightHistory 
[root@node3 ~]# hadoop fs -put /opt/data/Kg_AFTN /hbase/table/Kg_AFTN 
[root@node3 ~]# hadoop fs -put /opt/data/Kg_WarnSimilarHistory /hbase/table/Kg_WarnSimilarHistory
[root@node3 ~]# hadoop fs -put /opt/data/Kg_MultiRadarData /hbase/table/Kg_MultiRadarData
  • 进入HBase客户端运行【hbase shell】进入
[root@node3 software]# hbase shell
  • 创建HBase表
create 'Kg_CallSaturation','SaturationHome' 
create 'Kg_ATC','ATCHome' 
create 'Kg_PlanData','ReportHome' 
create 'Kg_ATCDutyInfo','ATCDutyHome' 
create 'Kg_FlightState','StateHome' 
create 'Kg_WarnFlightHistory','WarnFlightHome' 
create 'Kg_AFTN','AFTNHome' 
create 'Kg_WarnSimilarHistory','WarnSimilarHome'
create 'Kg_MultiRadarData','RadarHome'

  • 查看创建情况

  • 退出HBase客户端

  • 然后执行导入操作

注意:由于此过程要执行多个MapReduce操作,可能需要5-10分钟左右的时间,请耐心等待。

[root@node3 software]# hbase org.apache.hadoop.hbase.mapreduce.Import Kg_CallSaturation /hbase/table/Kg_CallSaturation/Kg_CallSaturation
[root@node3 software]# hbase org.apache.hadoop.hbase.mapreduce.Import Kg_ATC /hbase/table/Kg_ATC/Kg_ATC
[root@node3 software]# hbase org.apache.hadoop.hbase.mapreduce.Import Kg_PlanData /hbase/table/Kg_PlanData/Kg_PlanData 
[root@node3 software]# hbase org.apache.hadoop.hbase.mapreduce.Import Kg_ATCDutyInfo /hbase/table/Kg_ATCDutyInfo/Kg_ATCDutyInfo
[root@node3 software]# hbase org.apache.hadoop.hbase.mapreduce.Import Kg_FlightState /hbase/table/Kg_FlightState/Kg_FlightState
[root@node3 software]# hbase org.apache.hadoop.hbase.mapreduce.Import Kg_WarnFlightHistory /hbase/table/Kg_WarnFlightHistory/Kg_WarnFlightHistory
[root@node3 software]# hbase org.apache.hadoop.hbase.mapreduce.Import Kg_AFTN /hbase/table/Kg_AFTN/Kg_AFTN 
[root@node3 software]# hbase org.apache.hadoop.hbase.mapreduce.Import Kg_WarnSimilarHistory /hbase/table/Kg_WarnSimilarHistory/Kg_WarnSimilarHistory
[root@node3 software]# hbase org.apache.hadoop.hbase.mapreduce.Import Kg_MultiRadarData /hbase/table/Kg_MultiRadarData/Kg_MultiRadarData

例如:

  • 查看数据导入情况

4、实时飞行数据说明

  • 解压data.tar.gz后的文件导入到集群的HBase数据库,所以直接读取HBase即可,但是由于真实的数据里实时飞行数据的时间间隔过短,在地图上不能感觉到飞机的实时运动状态,所以在项目中使用的实时飞行数据是从HBase中取出的真实飞行数据经过一定的处理后将时间间隔变大的数据,这样做可以在地图上明显感觉到飞机的运动状态。
  • 当前项目提供了已经处理好的实时飞行数据,即:part-00000 ~ part-00011。使用时需要根据当前位置修改后台读取的位置即可,如下图:

part-000xx文件的内容格式如下:

这些文件可以放到本地,也可以放到HDFS上,例如:如果要在【client节点机器上】上读取“实时飞行数据”,可以使用【scp】命令将该数据从node3节点复制到client节点上。

 [root@node3 ~]# scp -rq /opt/data client:/opt/

在后面阶段任务,读取时要根据自己的实际存放位置修改代码中的读取路径:

  • 9
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值