创建日志服务(Log Service)源表

本文涉及的产品
实时计算 Flink 版,1000CU*H 3个月
日志服务 SLS,月写入数据量 50GB 1个月
简介:

什么是日志服务

日志服务(Log Service),简称LOG,原SLS。是针对实时数据的一站式服务,在阿里巴巴集团经历大量大数据场景锤炼而成。无需开发就能快捷完成数据采集、消费、投递以及查询分析等功能,帮助提升运维、运营效率,建立DT时代海量日志处理能力。
日志服务本身是流数据存储,实时计算 Flink能将其作为流式数据输入。对于日志服务而言,数据格式类似JSON,示例如下。

 
  
  1. {
  2. "a": 1000,
  3. "b": 1234,
  4. "c": "li"
  5. }

对于实时计算而言,我们需要定义的DDL如下(sls即Log Service)。

 
  
  1. create table sls_stream(
  2. a int,
  3. b int,
  4. c varchar
  5. ) with (
  6. type ='sls',
  7. endPoint ='http://cXXXXXXXXyuncs.com',
  8. accessId ='0iXXXXXXXAs',
  9. accessKey ='yF60EXXXXXXXPJ2zhCfHU',
  10. startTime = '2017-07-05 00:00:00',
  11. project ='ali-XXXXX-streamtest',
  12. logStore ='strXXXtest',
  13. consumerGroup ='consXXXXroupTest1'
  14. );

属性字段

目前默认支持三个属性字段的获取,也支持其他自定义写入的字段。

字段名 注释说明
__source__ 消息源
__topic__ 消息主题
__timestamp__ 日志时间

举例

通过 HEADER 关键字获取属性字段。

测试数据

 
  
  1. __topic__: ens_altar_flow
  2. result: {"MsgID":"ems0a","Version":"0.0.1"}

测试代码

 
  
  1. CREATE TABLE sls_log (
  2. __topic__ varchar HEADER,
  3. result varchar
  4. )
  5. WITH
  6. (
  7. type ='sls'
  8. );
  9. CREATE TABLE sls_out (
  10. name varchar,
  11. MsgID varchar,
  12. Version varchar
  13. )
  14. WITH
  15. (
  16. type ='RDS'
  17. );
  18. INSERT INTO sls_out
  19. SELECT
  20. __topic__,
  21. JSON_VALUE(result,'$.MsgID'),
  22. JSON_VALUE(result,'$.Version')
  23. FROM
  24. sls_log

测试结果

name(VARCHAT) MsgID(VARCHAT) Version(VARCHAT)
ens_altar_flow ems0a 0.0.1

WITH参数

参数 注释说明 备注
endPoint 消费端点信息 日志服务的ENDPOINT地址
accessId sls读取的accessKey N/A
accessKey sls读取的密钥 N/A
project 读取的sls项目 N/A
logStore project下的具体的logStore N/A
consumerGroup 消费组名 用户可以自定义消费组名(没有固定格式)
startTime 消费日志开始的时间点 N/A
heartBeatIntervalMills 可选,消费客户端心跳间隔时间 默认为10s
maxRetryTimes 读取最大尝试次数 可选,默认为5
batchGetSize 单次读取logGroup条数 可选,默认为10
lengthCheck 单行字段条数检查策略 可选,默认为SKIP,其它可选值为EXCEPTION、PAD。SKIP:字段数目不符合时跳过 。EXCEPTION:字段数目不符合时抛出异常。PAD:按顺序填充,不存在的置为null。
columnErrorDebug 是否打开调试开关,如果打开,会把解析异常的log打印出来 可选,默认为false

注意:

  • SLS暂不支持MAP类型的数据。
  • 字段顺序支持无序(建议字段顺序和表中定义一致)。
  • 输入数据源为Json形式时,注意定义分隔符,并且需要采用内置函数分析JSON_VALUE,否则就会解析失败。报错如下:
     
         
    1. 2017-12-25 15:24:43,467 WARN [Topology-0 (1/1)] com.alibaba.blink.streaming.connectors.common.source.parse.DefaultSourceCollector - Field missing error, table column number: 3, data column number: 3, data filed number: 1, data: [{"lg_order_code":"LP00000005","activity_code":"TEST_CODE1","occur_time":"2017-12-10 00:00:01"}]
  • batchGetSize设置不能超过1000,否则会报错
  • batchGetSize指明的是logGroup获取的数量,如果单条logItem的大小和 batchGetSize都很大,很有可能会导致频繁的GC,这种情况下该参数应注意调小。

类型映射

日志服务和实时计算字段类型对应关系,建议您使用该对应关系进行DDL声明:

日志服务字段类型 流计算字段类型
STRING VARCHAR
本文转自实时计算—— 创建日志服务(Log Service)源表
相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
7月前
|
监控 容灾 算法
阿里云 SLS 多云日志接入最佳实践:链路、成本与高可用性优化
本文探讨了如何高效、经济且可靠地将海外应用与基础设施日志统一采集至阿里云日志服务(SLS),解决全球化业务扩展中的关键挑战。重点介绍了高性能日志采集Agent(iLogtail/LoongCollector)在海外场景的应用,推荐使用LoongCollector以获得更优的稳定性和网络容错能力。同时分析了多种网络接入方案,包括公网直连、全球加速优化、阿里云内网及专线/CEN/VPN接入等,并提供了成本优化策略和多目标发送配置指导,帮助企业构建稳定、低成本、高可用的全球日志系统。
805 54
|
8月前
|
存储 Windows
【Azure Cloud Service】微软云服务上的日志收集方法
本文介绍了在使用微软云服务(Cloud Service Extended Support)时,如何收集日志以分析未记录在应用日志中的服务异常。由于云服务基于传统虚拟机模式,需通过远程桌面登录实例,查看IIS、Windows Event及云服务组件日志(如WindowsAzureGuestAgent)。此外,可使用CollectGuestLogs.exe工具打包日志,或通过“File Server Resource Manager”检查日志存储配额是否不足。附参考文档链接供深入学习。
265 31
|
8月前
|
存储 监控 API
【Azure App Service】分享使用Python Code获取App Service的服务器日志记录管理配置信息
本文介绍了如何通过Python代码获取App Service中“Web服务器日志记录”的配置状态。借助`azure-mgmt-web` SDK,可通过初始化`WebSiteManagementClient`对象、调用`get_configuration`方法来查看`http_logging_enabled`的值,从而判断日志记录是否启用及存储方式(关闭、存储或文件系统)。示例代码详细展示了实现步骤,并附有执行结果与官方文档参考链接,帮助开发者快速定位和解决问题。
238 22
|
9月前
|
API 开发工具 Python
|
10月前
|
存储 缓存 关系型数据库
图解MySQL【日志】——Redo Log
Redo Log(重做日志)是数据库中用于记录数据页修改的物理日志,确保事务的持久性和一致性。其主要作用包括崩溃恢复、提高性能和保证事务一致性。Redo Log 通过先写日志的方式,在内存中缓存修改操作,并在适当时候刷入磁盘,减少随机写入带来的性能损耗。WAL(Write-Ahead Logging)技术的核心思想是先将修改操作记录到日志文件中,再择机写入磁盘,从而实现高效且安全的数据持久化。Redo Log 的持久化过程涉及 Redo Log Buffer 和不同刷盘时机的控制参数(如 `innodb_flush_log_at_trx_commit`),以平衡性能与数据安全性。
447 5
图解MySQL【日志】——Redo Log
|
9月前
|
监控 Java 应用服务中间件
Tomcat log日志解析
理解和解析Tomcat日志文件对于诊断和解决Web应用中的问题至关重要。通过分析 `catalina.out`、`localhost.log`、`localhost_access_log.*.txt`、`manager.log`和 `host-manager.log`等日志文件,可以快速定位和解决问题,确保Tomcat服务器的稳定运行。掌握这些日志解析技巧,可以显著提高运维和开发效率。
838 13
|
9月前
|
缓存 Java 编译器
|
9月前
|
SQL 存储 关系型数据库
简单聊聊MySQL的三大日志(Redo Log、Binlog和Undo Log)各有什么区别
在MySQL数据库管理中,理解Redo Log(重做日志)、Binlog(二进制日志)和Undo Log(回滚日志)至关重要。Redo Log确保数据持久性和崩溃恢复;Binlog用于主从复制和数据恢复,记录逻辑操作;Undo Log支持事务的原子性和隔离性,实现回滚与MVCC。三者协同工作,保障事务ACID特性。文章还详细解析了日志写入流程及可能的异常情况,帮助深入理解数据库日志机制。
1070 0
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
3630 31
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板

热门文章

最新文章