我正在尝试使用ECL语言编写Roxie查询。有没有一种方法可以编写和测试代码,而不需要经常发布查询?
我假设您只是在寻求避免发布查询时额外的面向ui的步骤(例如,在ECL Watch和开发环境之间来回切换)。通过一些构建脚本和REST调用,可以使在roxie上的测试相对轻松。
在HPCC中,从执行和运行时环境的角度来看,roxie和hthor是相似的。它们的战术执行策略是不同的(roxie在OS线程中处理查询,而hthor通过分支子进程来处理查询),但经验法则是,如果你能让代码在hthor中运行良好,那么它在roxie中也可能运行良好。
您可以在开发过程中利用这种相似性。与将查询发布到roxie、测试、删除查询并重复所有这些操作不同,您可以简单地将作业提交给hthor(就像您对thor作业所做的那样)。您必须硬编码一些测试值,这些值通常是roxie查询的参数,但这很简单。
使用hthor的另一个好处是,它是唯一支持任何类型的逐步调试的引擎。但是,这可能是一个成败参半的命题,这取决于您执行的HPCC的版本,而您没有提到这一点。即使您不使用调试器,hthor的执行图至少显示了特定查询数据流的详细信息,例如每一步的记录计数(roxie显示了图,但没有关于单个查询的详细信息)。