【发布时间】:2020-10-07 06:28:10
【问题描述】:
在 SnowFlake 中,是否有任何选项可以在存储过程中并行执行 sql 语句。我有一个存储过程(如下所示),它有 35 个 sql 语句,它们按顺序运行。我们计划减少时间,考虑并行执行所有这些。
实现这一目标的最佳方法是什么? (我所能想到的就是创建 35 个存储过程并同时从调度程序中调用它们)。想检查是否有任何 SnowFlake 功能的更好方法来实现这一点?
create or replace procedure SP_TEST()
returns string
language javascript
execute as CALLER
as
$$
try {
var step_num = 0
step_num = 0
step_num++ //--#1
var sql_statement1 = snowflake.createStatement( {sqlText: `INSERT INTO TGT_TBL select * from TBL_A`} )
var sql_statement1_execute = sql_statement1.execute()
step_num++ //--#1
var sql_statement2 = snowflake.createStatement( {sqlText: `INSERT INTO TGT_TBL select * from TBL_B`} )
var sql_statement2_execute = sql_statement2.execute()
return "Completed "+step_num+" steps to load into TGT_TBL"
}
catch (err) {
throw(err)
}
$$
;
【问题讨论】:
标签: snowflake-cloud-data-platform snowflake-task