数据开发支持工具

在前面的文章【数据应用开发语言和环境】中我们建议使用SQL来作为主要数据开发语言,并且,通常我们需要对标准的SQL进行增强,以便可以更好的支持复杂的数据开发。一些典型的需要新增的特性可以是变量、控制语句、模板等。

增强SQL固然是可以解决我们的数据开发问题,但是它也会给我们带来一些其他的不便。第一个烦恼可能就是,标准的SQL可以在很多数据工具中运行,比如Superset的SQL查询器、Hive的查询控制台等,而使用增强语法的SQL编写的代码则不行。由于我们将标准的SQL增强了,而SQL周边生态工具却无法感知这样的增强,这时各种不便就随之而来了。

支持数据开发过程

如何解决这个问题呢?想要在周边工具中进行SQL扩展不是一件简单的事情,可能需要花费大量的精力和时间。我们只能另寻他法。

从软件开发的视角来看这个问题,可以发现,我们现在有了编程语言,也有了编程语言的执行环境,基本的开发流程确实是打通了,但是还缺少的是对开发过程的支持。一般而言,开发过程支持完善与否将很大程度上决定团队开发效率的高低。下面我们一起来看看如何完善对于开发过程的支持。

主要的开发过程一般包括代码编辑、调试、测试三个步骤。下面我们来看看如何支持这些数据开发过程。

支持代码编辑

代码编辑在当前还不会成为一个问题,因为:

  • 我们只是在标准SQL语法的基础上进行了增强,现有的编辑器的大部分现有功能还是可以照常使用的
  • 大部分的语法增强是通过SQL语法的注释功能来实现的,可以兼容标准SQL语法
  • 大部分编辑器其实只是提供SQL语法高亮和格式化的功能,新增的语法不会产生很大的影响

支持代码调试

命令行调试器

现在我们来看调试过程。事实上,使用周边的SQL执行工具来快速验证SQL这个过程本身就是代码调试的过程。

有了增强SQL的语法,我们要如何做呢?回顾增强SQL的语法,我们在其中支持了多个步骤,每个步骤可以是执行SQL,定义变量或者调用外部函数。如果可以一个步骤一个步骤运行,并且可以在每个步骤之后查看当前的变量或SQL执行结果,那将是一件不错的事。这其实也就是一般的程序调试过程。

事实上,有了增强SQL的执行器(即前文提到的驱动器),要实现一个具备基本功能的增强SQL调试器并不困难。按照上面的描述,我们只需要在某一个步骤执行完成之后,先暂停执行,并提供接口查询当前上下文的数据即可。在程序暂停时,一般还可以允许运行一些代码,这也不难,提供接口执行SQL即可。这就是一个命令行的程序调试器雏形。

对应到一般在IDE里面进行调试的交互流程上,打断点的过程,就是指定需要在哪一个步骤暂停,至于查看断点时的状态和在断点时执行代码就跟上面的过程完全一致了。

根据前面的分析,我们可以设计一个命令行调试器类Debugger,它可以具有这些接口:

class Debugger:
    # 查询执行状态
    def is_started(...):
    def is_inprogress(...):
    def is_finished(...):

    # 查询执行步骤信息
    def step(...):
    def 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值