依托阿里云函数计算服务,日志服务提供流式数据加工服务。您可以通过配置一个日志服务ETL Job,定时获取更新的数据并触发函数的执行,进而增量消费日志服务Logstore的数据,并完成自定义加工任务。日志服务提供的函数模板或者用户自定义函数均可作为数据加工函数。

前提条件

适用场景

  • 数据清洗、加工场景
    通过日志服务,快速完成日志采集、加工、查询及分析。
  • 数据投递场景
    为数据的目的端提供支撑,构建云上大数据产品之间的数据管道。

ETL函数

  • 函数类型
  • 函数计算触发机制
    日志服务ETL Job对应于函数计算的一个触发器,当创建日志服务ETL Job后,日志服务会根据该ETL Job的配置启动定时器,定时器轮询Logstore中的Shard信息,当发现有新的数据写入时,即生成<shard_id,begin_cursor,end_cursor >三元组信息作为函数Event,并触发函数执行。
    说明 当存储系统升级时,即使没有新数据写入,也可能发生Cursor变化,在这种情况下,每个Shard会额外空触发一次。针对这种情况,您可以在函数内通过Cursor尝试获取Shard的数据,如果获取不到数据说明是一次空触发,可以在函数内做忽略处理,详情请参见自定义函数开发指南
    日志服务的ETL任务触发机制是时间触发。例如:您设置的ETL Job触发间隔为60秒,Logstore的Shard0一直有数据写入,那么Shard0每60秒就会触发一次函数执行(如果Shard没有新的数据写入则不会触发函数执行),函数执行的输入为最近60秒的cursor区间。在函数内,可以根据cursor读取Shard0数据进行下一步处理。

操作步骤

  1. 创建服务,详情请参见创建服务
    说明 日志服务Project所在地域和函数计算服务所在地域必须一致。
  2. 创建函数,详情请参见创建函数
  3. 创建触发器,详情请参见创建触发器

相关操作

  • 查询触发器日志

    您可以为触发器日志Logstore创建索引,查看任务执行统计结果。详情请参见开启并配置索引

  • 查看函数运行日志

    您可以通过命令行工具,查看函数执行过程的详细信息,详情请参见日志记录

常见问题

当您创建触发器后但未触发函数执行,可以从以下两个方面排查。
  • 确认ETL Job配置的Logstore是否有数据增量修改,当Shard数据有变化时会触发函数执行。
  • 查看触发器日志、函数运行日志查看是否有异常。