耶利哥旅游攻略:玩转耶利哥,体验不一样的风情

天美租号

今天跟大家伙儿聊聊我最近搞的这个“耶利哥”项目,名字听起来挺唬人,就是个内部数据处理的小玩意儿,不过过程还是挺有意思的,所以想拿出来跟大家伙儿分享分享。

事情是这样的,前段时间,咱们部门不是接了个新活儿嘛数据量那叫一个大,而且格式乱七八糟的。之前用的那套老工具跑起来慢不说,还经常出错,搞得大家伙儿焦头烂额的。我寻思着这不行,得想个辙。

我就开始调研,看看有没有啥现成的轮子可以用。结果找了一圈,要么太重,要么不符合需求。得了,看来还是得自己撸袖子干。

耶利哥旅游攻略:玩转耶利哥,体验不一样的风情

第一步:数据清洗

  • 把那些个缺失值、重复值啥的先给它咔咔一顿处理,用Python写了个小脚本,专门干这个,跑起来那叫一个快。
  • 然后就是格式转换,有些数据是CSV,有些是JSON,还有些是XML,全都得统一成一种格式,我选了JSON,方便后续处理。

第二步:数据映射

耶利哥旅游攻略:玩转耶利哥,体验不一样的风情

这步是最麻烦的,因为不同来源的数据,字段名都不一样,得把它们映射到统一的字段上。我是这么干的:

  • 先人工分析了一部分数据,把所有可能的字段名都列出来。
  • 然后写了个配置文件,定义了字段之间的映射关系。
  • 用Python写了个程序,读取配置文件,自动进行字段映射。

耶利哥旅游攻略:玩转耶利哥,体验不一样的风情

第三步:数据校验

光映射还不行,还得校验数据的有效性。比如说,年龄不能是负数,电话号码必须是11位等等。我是这么做的:

  • 定义了一套校验规则,用JSON Schema来描述。
  • 然后用Python写了个程序,读取JSON Schema,对数据进行校验,把不符合规则的数据都记录下来。

耶利哥旅游攻略:玩转耶利哥,体验不一样的风情

第四步:数据存储

校验完的数据,总得找个地方存起来。我选了MySQL,因为咱们部门一直用这个,比较熟悉。我是这么做的:

  • 设计了数据库表结构,考虑到数据的特点,加了一些索引。
  • 然后用Python写了个程序,把校验完的数据导入到MySQL里。

耶利哥旅游攻略:玩转耶利哥,体验不一样的风情

第五步:数据查询

数据存起来了,还得能查才行。我用Flask写了个简单的API,提供数据查询接口。我是这么做的:

  • 定义了API接口,支持各种查询条件。
  • 然后用SQLAlchemy来操作MySQL,方便快捷。

耶利哥旅游攻略:玩转耶利哥,体验不一样的风情

数据可视化

为了方便大家伙儿查看数据,我还用ECharts做了几个简单的图表,展示数据的分布情况。这个就比较简单了,直接调用ECharts的API就行了。

总结

整个“耶利哥”项目,我前前后后花了大概一周的时间,主要用到的技术就是Python、MySQL、Flask和ECharts。虽然代码写得比较糙,但是基本满足了需求,而且跑起来也挺快的。最重要的是,通过这个项目,我感觉自己又学到了不少东西,也对数据处理有了更深的理解。

这个项目还有很多可以改进的地方,比如说可以增加更多的校验规则,可以优化数据库查询性能等等。以后有时间,我会继续完善它。

这回实践让我受益匪浅,也希望我的分享能对大家有所帮助。以后有啥好玩的项目,我还会继续跟大家伙儿分享。

耶利哥旅游攻略:玩转耶利哥,体验不一样的风情

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
验证码
评论列表 (暂无评论,41人围观)

还没有评论,来说两句吧...