您可以使用作业调试功能模拟作业运行、检查输出结果,验证SELECT或INSERT业务逻辑的正确性,提升开发效率,降低数据质量风险。

背景信息

使用SQL Preview功能时,您可以使用线上数据,也可以指定调试数据。调试可以包含多个SELECT或INSERT的复杂作业。此外,查询语句支持UPSERT,即可以执行count(*)等包含更新操作的语句。

前提条件

已创建用于SQL Preview的Session集群,因为系统在作业调试前会检测是否有可用于SQL Preview的Session集群,如果无Session集群时,则会提示并引导您配置用于SQL Preview的Session集群。配置Session集群详情请参见配置Session集群

使用限制

  • 仅SQL作业支持单击执行进行作业调试,Python作业和Datastream作业均不支持单击执行进行作业调试。
  • VVR 4.0.8及以下版本的Session集群不支持调试CDC源表,因为CDC源表不是Append-only模式的。

操作步骤

  1. 进入作业开发页面,新建SQL作业。
    1. 登录实时计算管理控制台
    2. Flink全托管页签,单击目标工作空间操作列下的开发控制台
    3. 在左侧导航栏,单击作业开发
    4. 单击新建
    5. 填写完作业信息后,单击确认
      作业类型必须选择SQL。
  2. 分别注册源表和结果表。
    分别编写源表和结果表SQL代码后,单击执行。注册成功的表会出现在Schemas页签中的Tables列表中,您可以单击表名,查看表的字段和数据类型信息。以注册datagen源表、blackhole结果表和blackhole_cnt结果表为例,示例代码如下:
    • datagen源表
      CREATE TABLE `vvp`.`default`.`datagen` (
        `id`   VARCHAR(2147483647),
        `name` VARCHAR(2147483647)
      ) WITH (
        'connector' = 'datagen',
        'rows-per-second' = '5'
      );                        
    • blackhole结果表
      CREATE TABLE `vvp`.`default`.`blackhole` (
        `id` VARCHAR(2147483647),
        `name` VARCHAR(2147483647)
      ) WITH (
        'connector' = 'blackhole'
      );                        
    • blackhole_cnt结果表
      CREATE TABLE `vvp`.`default`.`blackhole_cnt` (
        `cnt` BIGINT
      ) WITH (
        'connector' = 'blackhole'
      );                    
  3. 编写调试DML语句。
    以从datagen中读取数据后,一个直接写入blackhole中,另一个取总数后写入blackhole_cnt中为例,代码如下。
    BEGIN STATEMENT SET;
    
    insert into blackhole
      select *
        from datagen;
    
    insert into `blackhole_cnt`
      select count(*)
        from `datagen`;
    
    END;
  4. 单击验证
    在SQL编辑页面下方,您可以看到SQL语法校验结果,只有通过校验的SQL才能被执行。
  5. 单击执行
  6. 配置调试数据。
    如果您使用线上数据,直接单击执行即可。如果您需要使用调试数据,需要先上传调试数据。配置调试数据参数解释如下表所示。
    配置项 说明
    下载调试数据模板 为了便于编辑,您可以直接下载调试数据模版,模版已适配源表的数据结构。
    上传调试数据 如果您需要使用本地调试数据进行调试,您可以先下载好调试数据模板,本地编辑好数据后上传,并选中使用调试数据
    调试数据文件存在以下限制:
    • 上传文件仅支持CSV格式。
    • CSV格式的文件必须含有表头,例如 id(INT)。
    • 调试数据CSV文件最大支持1 MB或1千条记录。
    预览数据 上传好调试数据后,单击源表名称左侧的加号图标,可以预览数据和下载调试数据。
    执行代码预览 调试功能会自动改变源表和结果表的DDL代码,但不会改变作业中的实际代码。您可以在下方预览代码详情。
  7. 确定好调试数据后,单击执行
    单击执行后,会在SQL编辑器下方显示调试结果。
    调试结果
    说明 Flink全托管默认读取最多1000条数据后会自动暂停。