使用LogHub进行数据清洗/ETL

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
阿里云盘企业版 CDE,企业版用户数5人 500GB空间
简介: 日志处理过程中一个假设是:数据并不是完美的。在原始数据与最终结果之间有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当前读写可以通过监控获得,消费进度可以通过控制台查看
目录
相关文章
|
12月前
|
存储 监控 应用服务中间件
日志服务之数据清洗与入湖
本教程介绍如何使用日志服务接入NGINX模拟数据,通过数据加工对数据进行清洗并归档至OSS中进行存储。
159 0
|
数据采集 运维 Ubuntu
使用kettle进行数据清洗
使用kettle进行数据清洗
使用kettle进行数据清洗
|
存储 数据采集 移动开发
日志服务之数据清洗与入湖-1
日志服务之数据清洗与入湖-1
110 0
日志服务之数据清洗与入湖-1
|
存储 数据采集 移动开发
日志服务之数据清洗与入湖-3
日志服务之数据清洗与入湖-3
127 0
日志服务之数据清洗与入湖-3
|
存储 数据采集 移动开发
日志服务之数据清洗与入湖-2
日志服务之数据清洗与入湖-2
101 0
日志服务之数据清洗与入湖-2
|
数据采集 存储 监控
日志服务之数据清洗与入湖-4
日志服务之数据清洗与入湖-4
105 0
日志服务之数据清洗与入湖-4
|
存储 SQL 数据采集
ETL 为什么经常变成 ELT 甚至 LET?
ETL是将数据从来源端经过清洗(extract)、转换(transform)、加载(load)至目的端的过程。正常的 ETL 过程应当是 E、T、L 这三个步骤逐步进行,也就是先清洗转换之后再加载进目标端(通常是数据库),最后在数据库中的只是合理的结果数据。这个过程本来很合理,但实际过程中经常被执行成ELT甚至LET,即源端数据先装载进目标库再进行清洗和转换。
159 0
ETL 为什么经常变成 ELT 甚至 LET?
|
数据采集 OLTP 数据库
|
存储 分布式计算 大数据
你真的了解ELT和ETL吗?
你真的了解ELT和ETL吗?
507 0
|
数据采集 Web App开发 存储
日志服务之数据清洗与-4
日志服务之数据清洗与-4
123 0
下一篇
云函数