我的目标是在有新数据可用时加载缓存。数据每天加载到源表中一次,但是在不可预测的时间。
我一直在尝试设置数据可用性触发器VDP调度程序作业,如Denodo社区帖子中所述:
这篇文章描述了在不满足条件时创建一个失败的调度程序作业。现在,我发现在某些情况下强制执行错误的唯一方法是使用(1/0),但由于某些原因,这并不总是有效的。我想知道是否有像普通SQL中那样的函数可以做到这一点,在Denodo文档中找不到任何东西。
下面是我的代码当前的样子:
--触发作业SELECT CASE WHEN ( data_in_cache = current_data ) THEN 1%0 ELSE 1 END FROM database.table;
缓存作业等待触发器作业成功,因此仅当缓存中的数据过期时才加载缓存。这并不总是有效的,尽管我觉得它应该有效。
希望有人有一个函数或VQL行,使Denodo调度程序VDP作业导致错误。
发布于 2021-11-04 16:37:38
这可以通过创建一个自定义函数来实现,该函数在执行时只抛出一个异常。它不需要是一个异常,您可以创建自己的异常,以便在错误跟踪中看到它。在任何情况下,它都可能是这样的…
@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;https://stackoverflow.com/questions/68710132
复制相似问题