【问题标题】:Is there a Denodo 8 VQL function or line of VQL for throwing an error in a VDP scheduler job?是否有用于在 VDP 调度程序作业中引发错误的 Denodo 8 VQL 函数或 VQL 行?
【发布时间】:2021-08-09 09:56:44
【问题描述】:

我的目标是在有新数据可用时加载缓存。数据每天一次加载到源表中,但时间不可预测。

我一直在尝试设置数据可用性触发 VDP 调度程序作业,如此 Denodo 社区帖子中所述:

https://community.denodo.com/answers/question/details?questionId=9060g0000004FOtAAM&title=Run+Scheduler+Job+Based+on+Value+from+a+Query

这篇文章描述了创建一个调度程序作业,当条件不满足时会失败。现在,我发现在某些条件下强制出错的唯一方法就是使用 (1/0) ,但由于某种原因,这并不总是有效。我想知道是否有办法使用普通 SQL 中的函数来执行此操作,但在 Denodo 文档中找不到任何内容。

这是我的代码目前的样子:

--触发作业 选择案例 什么时候 ( data_in_cache = current_data ) 那么 1 % 0 其他 1 结尾 FROM database.table;

缓存作业等待触发作业成功,因此只有在缓存中的数据过期时才会加载缓存。这并不总是有效,即使我觉得应该这样做。

希望有人有VQL的函数或线路,使Denodo调度器VDP作业导致错误。

【问题讨论】:

    标签: error-handling jobs job-scheduling denodo vql


    【解决方案1】:

    这很容易通过创建一个自定义函数来执行,该函数在执行时会抛出一个异常。它不需要是异常,您可以创建自己的异常以在错误跟踪中查看它。无论如何,它可能是这样的......

    @CustomElement(type = CustomElementType.VDPFUNCTION, name = "ERROR_SAMPLE_FUNCTION")
    public class ErrorSampleVdpFunction {
    
        @CustomExecutor
        public CustomArrayValue errorSampleFunction() throws Exception {
            throw new Exception("This is an error");
        }
    }
    

    所以你会像这样使用它:

    --Trigger job SELECT CASE WHEN ( data_in_cache = current_data ) THEN errorSampleFunction() ELSE 1 END FROM database.table;
    

    【讨论】:

      猜你喜欢
      • 2021-10-02
      • 1970-01-01
      • 2022-07-01
      • 2012-06-04
      • 1970-01-01
      • 1970-01-01
      • 2015-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多