全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 更多
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 智能硬件
流计算

调试阶段

更新时间:2018-04-23 10:27:13

“数据开发”为用户提供了一套模拟的运行环境(如下图),用户可以在调试环境中自定义上传数据,模拟运行,检查输出结果,当我们写完所有的业务逻辑接下来的步骤如下:

语法检查,检测一下SQL中是否有些语法错误!如果有错误就会直接弹出错误。

15

进行作业调试,为了方便用户调试作业流计算支持两种调试模式:

  1. 自行构建测试数据。
  2. 从数据源表中抽取数据支持两种,一种是随机抽取数据;一种是顺序抽取数据。但是注意必须是用了数据存储中注册功能才可以使用
  3. 抽取数据建议使用纯文本,不要使用EXCEL导致数据测试不准确

16

  • 调试结果

876

在该环境运行BlinkSQL可以实现:

  • 和生产完全隔离

调试环境下,所有的BlinkSQL运行将在独立的调试容器运行,且所有的输出将被直接改写到调试结果屏幕,不会对线上生产流计算作业、线上生产的数据存储系统造成任何影响,让用户可以放心大胆运行作业。

数据调试实际上不会真正写入到外部数据存储,而是被流计算拦截输出到屏幕,因此在流计算调试完成的代码是在调试容器中完成,真正线上运行过程中可能由于对目标数据存储写入格式导致运行失败。这类错误调试阶段无法完全规避,只能到线上运行才能发现。例如,用户结果数据输出到RDS系统,其中某些字段输出字符串数据长度大于RDS建表最大值,在Debug环境下我们无法测试出该类问题,但实际生产运行过程中会有引发异常。后续,流计算将提供针对本地调试运行也支持写出到真实数据存储的功能,届时可以有效辅助用户缩短调试和生产的差距,尽可能在调试阶段解决问题。

83

  • 支持构造测试数据

调试环境下,所有的BlinkSQL运行均不会从源头数据存储系统读取数据,包括DataHub的流式输入、RDS等维表输入,调试作业均不会读取。调试环境要求用户必须进行自己构建测试数据集,并将测试数据上传到”数据开发”。

您担心测试数据构造困难?没关系,流计算针对不同作业提供测试数据模板,您完全可以下载数据模板开始直接填写构造数据。我们强烈建议用户使用下载的数据模板构造数据,以避免报错。

  • 调试分隔符

默认情况下,调试文件使用逗号作为分隔符,例如用户构造了如下的测试文件:

  1. id,name,age
  2. 1,alicloud,13
  3. 2,stream,1

在不指定调试分隔符情况下,默认使用了逗号进行分割。但一旦用户需要使用JSON作为字段内容,字段内容即包含了逗号,此时用户需要指定分割符为其他字符,注意,流计算仅支持指定单个英文字符为分隔符,不允许字符串,例如不允许’aaa’作为分隔符。如下:

  1. id|name|age
  2. 1|alicloud|13
  3. 2|stream|1

此时用户需要针对该数据存储的作业参数设置

  1. debug.input.delimiter = |

例如如图:

2134

本文导读目录