依托阿里云函数计算服务,日志服务提供流式数据加工服务。您可以通过配置一个函数计算触发器任务,定时获取更新的数据并触发函数的执行,进而增量消费日志服务Logstore的数据,并完成自定义加工任务。日志服务提供的函数模板或者用户自定义函数均可作为数据加工函数。
前提条件
-
已为日志服务触发函数执行授权。更多信息,请参见云资源访问授权。
-
已创建Project和Logstore。更多信息,请参见创建Project和Logstore。
适用场景
-
数据清洗、加工场景
通过日志服务,快速完成日志采集、加工、查询及分析。
-
数据投递场景
为数据的目的端提供支撑,构建云上大数据产品之间的数据管道。
数据加工函数
-
函数类型
-
模板函数
更多信息,请参见aliyun-log-fc-functions。
-
用户自定义函数
函数配置的格式与函数的具体实现有关。更多信息,请参见ETL函数开发指南。
-
-
函数计算触发机制
函数计算触发器任务对应于函数计算的一个触发器,当创建函数计算触发器任务后,日志服务会根据该触发器任务的配置启动定时器,定时器轮询Logstore中的Shard信息,当发现有新的数据写入时,即生成
三元组信息作为函数Event,并触发函数执行。
说明
当存储系统升级时,即使没有新数据写入,也可能发生Cursor变化,在这种情况下,每个Shard会额外空触发一次。针对这种情况,您可以在函数内通过Cursor尝试获取Shard的数据,如果获取不到数据说明是一次空触发,可以在函数内做忽略处理。更多信息,请参见自定义函数开发指南。
函数计算触发器任务触发机制是时间触发。例如:您设置的函数计算触发器任务触发间隔为60秒,Logstore的Shard0一直有数据写入,那么Shard0每60秒就会触发一次函数执行(如果Shard没有新的数据写入则不会触发函数执行),函数执行的输入为最近60秒的Cursor区间。在函数内,可以根据Cursor读取Shard0数据进行下一步处理。
操作步骤
-
创建函数计算服务。
具体操作,请参见创建服务。
说明
日志服务Project所在地域和函数计算服务所在地域必须一致。
-
创建函数。
具体操作,请参见创建函数。
-
创建触发器。
具体操作,请参见配置SLS触发器。
相关操作
-
查询触发器日志
您可以为触发器日志Logstore创建索引,查看任务执行统计结果。更多信息,请参见创建索引。
-
查看函数运行日志
您可以通过命令行工具,查看函数执行过程的详细信息。更多信息,请参见查看调用日志。
常见问题
-
当您创建触发器后但未触发函数执行,如何解决?
您可以从以下两个方面排查。
-
确认函数计算触发器任务配置的Logstore是否有数据增量修改,当Shard数据有变化时会触发函数执行。
-
查看触发器日志、函数运行日志查看是否有异常。
-
-
为什么函数触发频次有时会高于预设的触发间隔?
每个Shard是单独触发的,您看到的可能是一个Logstore整体触发次数很多,但每个Shard实时触发时间是符合间隔的。
单个Shard的触发间隔和每次处理的数据范围相同(时间区间)。触发间隔在函数执行时分如下两种情况,假设触发间隔为60秒。
-
触发没有延迟:按照设定周期触发,每60秒触发一次,处理的数据范围为
[now -60s, now)
。说明
函数触发是分Shard独立进行的, 假设Logstore有10个Shard,在实时处理数据时(触发无延迟),每60秒对应10次函数触发执行。
-
触发发生延迟(当前处理到的日志服务Shard位置落后于最新写入数据超过10秒):触发器会进行追赶,可能缩短到2秒触发一次,每次处理的数据范围仍是60秒窗口。
-
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/164929.html