使用函数计算对表格存储中数据做简单清洗

Posted 阿里云云栖号

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用函数计算对表格存储中数据做简单清洗相关的知识,希望对你有一定的参考价值。

云栖君导读: 表格存储的增量数据流功能能够使用户使用API获取Table Store表中增量数据,并可以进行增量数据流的实时增量分析、数据增量同步等。通过创建Table Store触发器,能够实现Table Store Stream和函数计算的自动对接,让计算函数中自定义的程序逻辑自动处理Table Store表中发生的数据修改,充分的利用了函数计算全托管、弹性伸缩的特点。


函数计算(Function Compute) 是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。


Table Store Stream是用于获取Table Store表中增量数据的一个数据通道,通过创建Table Store触发器,能够实现Table Store Stream和函数计算的自动对接,让计算函数中自定义的程序逻辑自动处理Table Store表中发生的数据修改。

表格存储高并发的写入性能以及低廉的存储成本非常适合物联网、日志、监控数据的存储,我们可以将数据写入到表格存储中,同时在函数计算中对新增的数据做简单的清洗、转换、聚合计算等操作,并将清洗之后的数据写回到表格存储的结果表中,并对原始明细数据及结果数据提供实时访问。


下面,我们使用函数计算对表格存储中的数据做简单的清洗,并写入到结果表中。


数据定义


我们假设写入的为日志数据,包括三个基础字段:



我们需要将 level>1 的日志写入到另外一张数据表中,用作专门的查询。


实现过程


创建实例及数据表


在表格存储的控制台创建表格存储实例(__本次以 华东2 distribute-test 为例__),并创建源表(__source_data__)及结果表(__result__),主键为均 __id (整型)__,由于表格存储是 schemafree 结构,无需预先定义其他属性列字段。


使用函数计算对表格存储中数据做简单清洗


开启数据源表的Stream功能


触发器功能需要先开启数据表的Stream功能,才能在函数计算中处理写入表格存储中的增量数据。


使用函数计算对表格存储中数据做简单清洗


Stream记录过期时长 为通过 StreamAPI 能够读取到的增量数据的最长时间。


由于触发器只能绑定现有的函数,故先到函数计算的控制台上在同region创建服务及函数。


创建函数计算服务


在函数计算的控制台上创建服务及处理函数,我们继续使用华东2节点。


1.在华东2节点创建服务。


使用函数计算对表格存储中数据做简单清洗


2.创建函数依次选择:空白函数——不创建触发器。


使用函数计算对表格存储中数据做简单清洗
使用函数计算对表格存储中数据做简单清洗


  • 函数名称为:etl_test,选择 python2.7 环境,在线编辑代码

  • 函数入口为:etl_test.handler

  • 代码稍后编辑,点击下一步。


3.进行服务授权


由于函数计算需要将运行中的日志写入到日志服务中,同时,需要对表格存储的表进行读写,故需要对函数计算进行授权,为方便起见,我们先添加 AliyunOTSFullAccess 与 __AliyunLogFullAccess __权限,实际生产中,建议根据权限最小原则来添加权限。


使用函数计算对表格存储中数据做简单清洗


4.点击授权完成,并创建函数。


5.修改函数代码。


创建好函数之后,点击对应的函数—代码执行,编辑代码并保存,其中,INSTANCE_NAME(表格存储的实例名称)、REGION(使用的区域)需要根据情况进行修改:


使用函数计算对表格存储中数据做简单清洗


使用示例代码如下:


使用函数计算对表格存储中数据做简单清洗
使用函数计算对表格存储中数据做简单清洗


对表格存储 Stream 数据的格式详情请参考Stream 数据处理


绑定触发器


1.回到表格存储的实例管理页面,点击表 source_data 后的 使用触发器 按钮,进入触发器绑定界面,点击使用已有函数计算, 选择刚创建的服务及函数,勾选 表格存储发送事件通知的权限, 进行确定。


使用函数计算对表格存储中数据做简单清洗


2.绑定成功之后,能够看到如下的信息:


使用函数计算对表格存储中数据做简单清洗


运行验证


1.向 source_data 表中写入数据。


在 __source_data__ 的数据管理页面,点击插入数据,如图依次填入id、level及message信息。

使用函数计算对表格存储中数据做简单清洗


2.在 result 表中查询清洗后的数据


点击 result 表的数据管理页面,会查询到刚写入到 source_data 中的数据。


当然,向 soure_data 写入level <=1的数据将不会同步到 result 表中



点击左下角【阅读原文】进入了解函数计算!


end





更多精彩

以上是关于使用函数计算对表格存储中数据做简单清洗的主要内容,如果未能解决你的问题,请参考以下文章

传感器数据进入python后后怎么直接计算机

办公常见WORD表格简单函数计算,两种方法均可实现,职场不求人

如何用Excel计算P值?

数据清洗之 分组对象与apply函数

sql 从函数或存储过程返回表

WPS表格公式函数怎么做?