使用LogHub进行数据清洗/ETL-阿里云开发者社区

开发者社区> 阿里云存储服务> 正文
登录阅读全文

使用LogHub进行数据清洗/ETL

简介: 日志处理过程中一个假设是:数据并不是完美的。在原始数据与最终结果之间有Gap,需要通过ETL(Extract Transformation Load)等手段进行清洗、转换与整理。

数据清洗/ETL

日志处理过程中一个假设是:数据并不是完美的。在原始数据与最终结果之间有Gap,需要通过ETL(Extract Transformation Load)等手段进行清洗、转换与整理。

案例

“我要点外卖“是一个平台型电商网站,用户、餐厅、配送员等。用户可以在网页、App、微信、支付宝等进行下单点菜;商家拿到订单后开始加工,并自动通知周围的外卖送货员;快递员将外卖送到用户手中。

deliver

运营小组有两个任务:

  • 掌握外卖送货员的位置,定点调度
  • 掌握优惠券、现金使用情况,定点投放优惠券进行互动运营

送货员位置信息(GPS)数据加工

GPS 数据(X,Y)通过送货员App每分钟汇报一次,格式如下:

2016-06-26 19:00:15 ID:10015 DeviceID:EXX12345678 Network:4G GPS-X:10.30.339 GPS-Y:17.38.224.5 Status:Delivering

其中记录了上报时间,送货员ID,使用网络,设备号,坐标位置GPS-X,GPS-Y。 GPS给出的经纬度非常准确,但运营小组需要统计每个区域当前的状态,并不需要这么细的数据。因此对原始数据需要做一次转换(Transformation),通过坐标变成可读的城市、区域、邮政编码等字段。

(GPS-X,GPS-Y) --> (GPS-X, GPS-Y, City, District, ZipCode)

这就是一个典型ETL需求,使用LogHub功能,创建两个Logstore(PositionLog),以及转换后Logstore(EnhancedLog)。通过运行ETL程序(例如Spark Streaming、Storm、或容器中启动Consumer Library),实时订阅PositionLog,对坐标进行转化,写入EnhancedLog。可以对EnhancedLog数据机型仓库,连接实时计算进行可视化,或建立索引进行查询。

整个过程推荐架构如下:

  1. 快递员App上埋点,每分钟汇报当前GPS位置一次,写入第一个Logstore(PositionLog)

  2. 通过实时程序实时订阅PositionLog数据,处理后实时写入EnhancedLog Logstore

  3. 对Enahanced Log进行处理,例如计算后进行数据可视化。推荐:

deliver

支付订单脱敏与分析

支付服务接受支付请求,包括支付的账号、方式、金额、优惠券等。

  1. 其中包含部分敏感信息,需要进行脱敏
  2. 需要对支付信息中优惠券、现金两个部分进行剥离

整个过程如下:

  1. 创建4个Logstore,原始数据(PayRecords),脱敏后数据(Cleaned),现金订单(Cash),代金券(Coupon)。应用程序通过Log4J Appender向原数据Logstore(PayRecords)写入订单数据

  2. 脱敏程序实时消费PayRecords,将账号相关信息剥离后,写入Cleaned Logstore
  3. 分流程序实时消费Cleaned Logstore,通过业务逻辑把优惠券、现金两个部分分别存入对账相关的Logstore(Cash、Coupon)进行后续处理

order

其他

  1. LogHub功能下每个Logstore可以通过RAM进行账号级权限控制,参见RAM
  2. LogHub当前读写可以通过监控获得,消费进度可以通过控制台查看

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

阿里云存储基于飞天盘古2.0分布式存储系统,产品多种多样,充分满足用户数据存储和迁移上云需求。

官方博客
最新文章
相关文章
存储产品
客户案例