弱结构化日志的特点是数据来源多样、格式不固定,内容可能是JSON字符串、CSV格式甚至不规则的Java堆栈日志,没有固定的Schema。而Flink SQL作为兼容SQL语法的实时计算模型,要求源数据模式固定:字段名称、类型、数量都需要确定,这是SQL计算模型的基础。这两者之间存在一道鸿沟,需要中间层进行数据清洗和格式规整。解决方案是在Flink SLS Connector中配置SPL语句,将清洗逻辑下推到SLS服务端。SPL支持parse-json解析JSON字符串、parse-regexp通过正则提取字段、project和project-away进行列选择和裁剪、project-rename重命名字段、extend结合函数创建新字段等操作。经过SPL处理后,数据变成了固定Schema的结构化数据,可以直接映射到Flink SQL的TABLE字段,完美衔接Flink SQL的分析能力。这种方式在数据源端就完成了结构化转换,让下游分析更加高效。
加载中...