我想在我的 Snowflake 任务中包含一个条件,仅当指定的表中有数据时才运行。这将类似于任务条件:
WHEN SYSTEM$STREAM_HAS_DATA('my_schema.my_table')
除了我不想使用流。在某些情况下使用流的问题是流可能会过时。我的 ELT 流程中的表格可能数周或数月都不会收到更新。甚至可能几年。
我的一个想法是在任务条件下使用 UDF:
WHEN PUBLIC.TABLE_HAS_DATA('my_schema.my_table')
如果我可以SELECT CAST(COUNT(1) AS BOOLEAN) FROM "my_schema"."my_table"
在那里扔一个,那就太好了。但是 SQL UDF 将无法对作为参数传递的表名执行任何操作。在查询表时,Javascript UDF 似乎过于局限。
诚然,我不是 Javascript 程序员。我也不太熟悉 Snowflake 的 Javascript UDF 功能。我可以很好地在 Javascript 存储过程中执行所需的查询。但这些似乎并没有转化为 UDF。