我想执行多个异步查询。但是,它会不断干扰其他SQL命令。
例如,查询A需要使用模式A,查询B需要使用模式B,但使用模式B的命令被触发,然后查询A在其之后运行,这导致查询A失败。
示例查询A:
- 使用方案测试
- 从表A中选择*
示例查询B:
- 使用SCHEMA TEST_2
- 从tableb中选择*
在我的案例中,当在同一连接中异步触发它们时,发生的事情是这样运行的:
- 使用方案测试
- 从tableb中选择*
这会导致查询失败,因为TABLE_B在模式TEST中不存在。
雪花是否有任何方法可以在不相互干扰的情况下触发多个异步查询?除了连接之外,请再次运行查询和断开连接。
问题似乎是您正在重用一个连接,并且连接有一个状态。每次设置变量或USE SCHEMA
时,该状态都会发生变化。
可能的解决方案:
-
不要重复使用连接。相反,为每个新的异步查询集创建一个新的连接。然后您可以在中设置不同的模式。
-
如果要使用相同的连接,请不要使用
USE SCHEMA
更改状态。相反,将模式硬编码到查询中,如from db.schema.table
中所示。 -
使用恰好是无状态的SQL API:https://docs.snowflake.com/en/developer-guide/sql-api/index.html
如需进一步帮助,请打开新问题,并确保共享更多代码以及您使用的连接器和语言。