阿里实时计算开发平台为您提供了实时计算作业线上调试功能。相对于本地调试功能,线上调试功能需要消耗一定的资源,但是能够更加真实的验证业务逻辑的正确性。

线上调试功能使用真实的数据存储,有效的减少调试输出和生产输出的差异,有助于您在调试阶段发现问题。

线上调试步骤

  1. 开发作业。作业开发详情,请参见开发
  2. 更新数据存储DDL中的type参数。
    • 源表:type = 'random'
    • 结果表:type = 'print'
  3. 上线作业。作业上线步骤请参见上线
  4. 启动作业。作业启动步骤请参见启动

线上调试Connector

阿里实时计算平台提供以下2种线上调试功能的Connector:
  • random源表:周期性的生成对应类型的随机数据。
  • print结果表:输出计算结果。

Connector表参数

  • Random表参数
    参数 说明
    type 必选,取值唯一且为random。
    interval 可选,产生数据的时间间隔(单位为毫秒),默认值为500。
  • Print表参数
    参数 说明
    type 必选,取值唯一且为print。
    ignoreWrite 可选,默认值为false。可选参数值如下:
    • 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_sink
    SELECT
      instr,
      SUBSTRING(instr,0,5) AS substr,
      CHAR_LENGTH(instr) AS num
    FROM random_source
  • 测试结果

线上调试结果查询步骤

说明
  • 查询线上调试结果前,请先完成作业上线启动
  • 线上调试需要消耗一定的CU资源。

线上调试结果查询查看步骤如下:

  1. 登录实时计算控制台
  2. 单击顶部导航栏中的运维,进入运维页面。
  3. 单击作业名称字段下对应的作业,进入作业运维页面。
  4. Vertex拓扑区域,点击相应结果表节点。
  5. 单击SubTask List > 查看日志,进入日志查看窗口。
  6. 查看相应的日志。
    • Print结果表输出

      单击taskmanager.out右侧的查看日志

    • UDX日志输出

      如果您使用了自定义函数UDX(UDX使用方法请参见UDX概述),可以使用如下2种方式查看日志:

      • system out/err方法

        单击taskmanager.outtaskmanager.err右侧的查看日志

      • SLF4J的Logger方法

        单击taskmanager.log右侧的查看日志