热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

天气数据处理

1.site_code取前五位(因为是先用文件名作为site_code,然后从文件名中截取前五位即为site_code)(图上错了,图上取得是6位,但是懒得在找一遍截图了)2.存储

1.site_code 取前五位


(因为是先用文件名作为site_code,然后从文件名中截取前五位即为site_code)

image

image

(图上错了,图上取得是6位,但是懒得在找一遍截图了)


2.存储过程+游标对数据进行处理


(1)缺失数据(-9999)置为一个大概值

(2)将10比例的数据除以10,例如温度220→22

image

(好家伙,处理了一下午)

image


3.删除列


游标更新的时候忘了sky和wind_direction了,这两列问题不大,直接删了

image

image


4.SQL语句


(1)截取

update site_weather set site_code=left(site_code,5)

(2)创建索引

create index index_id on site_weather(id desc)

(3)存储过程

drop procedure processData;
/*创建存储过程,使用游标处理site_weather中的数据*/
create procedure processData() begin
/*声明临时变量,用于更改*/
declare result_code integer default 1; #定义返回结果并赋初值0
declare s int default 0; #标志变量
declare resultId bigint default 0;
declare air int default 0;
declare dew int default 0;
declare sea int default 0;
declare windDirection int default 0;
declare windSpeed int default 0;
declare sky int default 0;
declare one int default 0;
declare six int default 0;
/*声明游标*/
declare processCursor cursor for select
id,air_temperature,dew_point_temperature,sea_level_pressure,wind_direction,wind_speed,sky_coverage,one_hour_duration,six_hour_duration
from site_weather;
/*定义HANDLER*/
declare continue handler for sqlexception set result_code=0; #在执行过程中出任何异常设置result_code为0
declare continue handler for not found set s=1; #声明当游标遍历完后将标志变量置成某个值
/*打开游标*/
open processCursor;
/*将游标中的值赋值给变量,注意:变量名不要和返回的列名同名,变量顺序要和sql结果列的顺序一致*/
fetch processCursor into resultId,air,dew,sea,windDirection,windSpeed,sky,one,six;
-- 当s不等于1,也就是未遍历完时,会一直循环
while s<>1 do
-- 执行业务逻辑
/*
*处理air_temperature为缺失数据时(-9999)
*这里由于之前更新操作失误,因此-1000的值也是无效的,需要重新更新
*/
if air=-9999 or air=-1000 then
set air=200;
end if;
/*
*处理dew_point_temperature为缺失数据时(-9999)
*/
if dew=-9999 or dew=-1000 then
set dew=200;
end if;
/*
*处理sea_level_pressure为缺失数据时(-9999)
*/
if sea=-9999 or sea=-1000 then
set sea=10000;
end if;
/*
*处理wind_direction为缺失数据时(-9999)
*/
if windDirection=-9999 or windDirection=-1000 then
set windDirection=180;
end if;
/*
*处理wind_speed为缺失数据时(-9999)
*/
if windSpeed=-9999 or windSpeed=-1000 then
set windSpeed=40;
end if;
/*
*处理sky_coverage为缺失数据时(-9999)
*/
if sky=-9999 or sky=-1000 then
set sky=5;
end if;
/*
*处理one_hour_duration为缺失数据时(-9999)
*/
if one=-9999 or one=-1000 then
set one=0;
end if;
/*
*处理six_hour_duration为缺失数据时(-9999)
*/
if six=-9999 or six=-1000 then
set six=0;
end if;
/*
*转换为现实数据(前面都只是在判断以及赋值,这里才是真正的更新语句)
*/
update site_weather
set air_temperature=air/10,dew_point_temperature=dew/10,
sea_level_pressure
=sea/10,wind_speed=windSpeed/10,
one_hour_duration
=one/10,six_hour_duration=six/10
where id=resultId;
-- 将游标中的值再赋值给变量,供下次循环使用
fetch processCursor
into resultId,air,dew,sea,windDirection,windSpeed,sky,one,six;
-- 当s等于1时表明遍历以完成,退出循环
end while;
/*--关闭游标*/
close processCursor;
end
call processData();

(4)删除列

/*sky_coverage和wind_direction忘了更新了,就直接删掉了*/
alter table site_weather drop column sky_coverage;
alter table site_weather drop column wind_direction;





推荐阅读
  • 将XML数据迁移至Oracle Autonomous Data Warehouse (ADW)
    随着Oracle ADW的推出,数据迁移至ADW成为业界关注的焦点。特别是XML和JSON这类结构化数据的迁移需求日益增长。本文将通过一个实际案例,探讨如何高效地将XML数据迁移至ADW。 ... [详细]
  • Hadoop MapReduce 实战案例:手机流量使用统计分析
    本文通过一个具体的Hadoop MapReduce案例,详细介绍了如何利用MapReduce框架来统计和分析手机用户的流量使用情况,包括上行和下行流量的计算以及总流量的汇总。 ... [详细]
  • 如何在不损失质量的情况下压缩MP4视频的大小
    本文介绍了几种有效的方法来压缩MP4视频文件的大小,同时确保视频的质量不受影响。 ... [详细]
  • 本文详细探讨了如何根据不同的应用场景选择合适的PHP版本,包括多版本切换技巧、稳定性分析及针对WordPress等特定平台的版本建议。 ... [详细]
  • 2008年1月,微软发布了两则安全更新公告,分别针对Windows操作系统的不同漏洞。其中一项被评为‘关键’级,另一项为‘重要’级。此次更新并未涉及Microsoft Office产品。 ... [详细]
  • 一、使用Microsoft.Office.Interop.Excel.DLL需要安装Office代码如下:2publicstaticboolExportExcel(S ... [详细]
  • 本文介绍了如何在 Django 项目中集成和配置 REST Framework,以支持 API 开发。通过在 settings.py 文件中注册 'rest_framework' 应用,可以轻松启用这一功能。 ... [详细]
  • Python网络编程:深入探讨TCP粘包问题及解决方案
    本文详细探讨了TCP协议下的粘包现象及其产生的原因,并提供了通过自定义报头解决粘包问题的具体实现方案。同时,对比了TCP与UDP协议在数据传输上的不同特性。 ... [详细]
  • 实现Win10与Linux服务器的SSH无密码登录
    本文介绍了如何在Windows 10环境下使用Git工具,通过配置SSH密钥对,实现与Linux服务器的无密码登录。主要步骤包括生成本地公钥、上传至服务器以及配置服务器端的信任关系。 ... [详细]
  • PHP中Smarty模板引擎自定义函数详解
    本文详细介绍了如何在PHP的Smarty模板引擎中自定义函数,并通过具体示例演示了这些函数的使用方法和应用场景。适合PHP后端开发者学习。 ... [详细]
  • 本文详细介绍了MySQL InnoDB存储引擎中的Redo Log和Undo Log,探讨了它们的工作原理、存储方式及其在事务处理中的关键作用。 ... [详细]
  • 汇编语言标识符和表达式(四)(表达式与符号定义语句)
    7、表达式表达式是程序设计课程里的一个重要的基本概念,它可由运算符、操作符、括号、常量和一些符号连在一起的式子。在汇编语言中,表达式分为:数值表达式和地址表达式。(1)进制伪指令R ... [详细]
  • HDFS数据读写流程详解
    本文详细解析了HDFS(Hadoop分布式文件系统)中的数据读写过程,包括从客户端发起请求到最终完成数据传输的每一个关键步骤。 ... [详细]
  • 本文介绍了如何使用 Python 的 Pyglet 库加载并显示图像。Pyglet 是一个用于开发图形用户界面应用的强大工具,特别适用于游戏和多媒体项目。 ... [详细]
  • Gradle 是 Android Studio 中默认的构建工具,了解其基本配置对于开发效率的提升至关重要。本文将详细介绍如何在 Gradle 中定义和使用共享变量,以确保项目的一致性和可维护性。 ... [详细]
author-avatar
弹指遮天的小指头
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有