是否可以在嵌套查询的雪花中执行 result_scan
Is it possible to do a result_scan in snowflake with the query nested
查询查询结果的标准流程如下所示。
describe table your_db.your_schema.your_table_name;
select
"name"
,"type"
,*
from table(result_scan(last_query_id())) ;
理想情况下,您应该能够
select
"name"
,"type"
,*
from table(result_scan(describe table your_db.your_schema.your_table_name)) ;
这在现实中有可能吗还是我必须一直做梦?
无法实现,原因如下
文档明确指出 RESULT_SCAN 函数只接受查询 ID 作为输入参数。
RESULT_SCAN 函数扫描 先前执行的查询 的结果。因此,该查询必须在过去作为不同的交易发生
Clark 的回答也值得补充一下,目前不可能,因为目前 DESCRIBE TABLE
不是 运行 在 COMPUTE 层上,而是仅在 SHARED SERVICES 层(元数据、查询规划师等)。
最初回到我的时代,连一个RESULTS_SCAN都没有,一切都是从外部解析的。因此 RESULT_SCAN 允许您针对先前的结果集 运行 计算层,因此我们有一个两步过程。现在与其他数据库相比,在其他数据库中,一切都是完整的数据库对象,因此一切都可以通过 SQL 访问,这令人沮丧。
但我觉得当你知道 how/why 事情就是这样的时候,这些步骤就很有意义,就像很多事情一样,一旦你得到了一个“工作模式”,你就可以去做了。虽然,一开始是不同的,现在可能会喜欢它。
查询查询结果的标准流程如下所示。
describe table your_db.your_schema.your_table_name;
select
"name"
,"type"
,*
from table(result_scan(last_query_id())) ;
理想情况下,您应该能够
select
"name"
,"type"
,*
from table(result_scan(describe table your_db.your_schema.your_table_name)) ;
这在现实中有可能吗还是我必须一直做梦?
无法实现,原因如下
文档明确指出 RESULT_SCAN 函数只接受查询 ID 作为输入参数。
RESULT_SCAN 函数扫描 先前执行的查询 的结果。因此,该查询必须在过去作为不同的交易发生
Clark 的回答也值得补充一下,目前不可能,因为目前 DESCRIBE TABLE
不是 运行 在 COMPUTE 层上,而是仅在 SHARED SERVICES 层(元数据、查询规划师等)。
最初回到我的时代,连一个RESULTS_SCAN都没有,一切都是从外部解析的。因此 RESULT_SCAN 允许您针对先前的结果集 运行 计算层,因此我们有一个两步过程。现在与其他数据库相比,在其他数据库中,一切都是完整的数据库对象,因此一切都可以通过 SQL 访问,这令人沮丧。
但我觉得当你知道 how/why 事情就是这样的时候,这些步骤就很有意义,就像很多事情一样,一旦你得到了一个“工作模式”,你就可以去做了。虽然,一开始是不同的,现在可能会喜欢它。