相对于本地调试功能,线上调试功能需要消耗一定的CU资源,但是能够更加真实的验证业务逻辑的正确性。
线上调试功能使用真实的数据存储,有效地减少调试输出和生产输出的差异,有助于您在调试阶段发现问题。
线上调试步骤 开发作业。更新数据存储DDL中的type参数。源表:type = 'random'结果表:type = 'print' 上线作业。启动作业。 线上调试Connector
阿里实时计算平台提供以下2种线上调试功能的Connector:
random源表:周期性的生成对应类型的随机数据。print结果表:输出计算结果。 Connector表参数
Random表参数
Print表参数
false:同时输出结果表和日志。
true:仅输出无数据的结果表,不输出日志数据。 线上调试示例
测试语句
CREATE TABLE random_source ( instr VARCHAR) WITH ( type = 'random');CREATE TABLE print_sink( instr VARCHAR, substr VARCHAR, num INT)with( type = 'print');INSERT INTO print_sinkSELECt instr, SUBSTRING(instr,0,5) AS substr, CHAR_LENGTH(instr) AS numFROM random_source
线上调试结果查询步骤说明 查询线上调试结果前,请先完成作业上线和启动。
线上调试结果查询查看步骤如下:
登录实时计算控制台。
单击顶部菜单栏中的运维,进入运维页面。
单击作业名称字段下对应的作业,进入作业运维页面。
在Vertex拓扑区域,单击相应结果表节点。
单击SubTask List > 查看日志,进入日志查看窗口。
查看相应的日志。
Print结果表输出
单击taskmanager.out右侧的查看日志。
UDX日志输出
如果您使用了自定义函数UDX,可以使用以下两种方式查看日志:
system out/err方法
单击taskmanager.out或taskmanager.err右侧的查看日志。
SLF4J的Logger方法
单击taskmanager.log右侧的查看日志。