在服务器中查询为 运行 时使用 Snowflake JDBC 获取行
Fetching rows with Snowflake JDBC while the query is running in the server
我有一个复杂的查询,当我在 Snowflake 控制台中 运行 它时,它在 Snowflake 中需要很长时间(例如 30 分钟)。我正在使用 JDBC 驱动程序从 JVM 应用程序进行相同的查询。似乎发生的是这样的:
- Snowflake 从头到尾处理查询,耗时 30 分钟。
- JVM 应用程序接收行。第一次接收发生在查询开始后 30 分钟。
我希望 Snowflake 在数据准备好后立即开始向我的应用程序发送行,同时它仍在执行查询。这样我的应用程序可以在前 30 分钟内开始处理行。
Snowflake 和 JDBC 这可能吗?
首先,我会要求检查 Snowflake 仓库大小并进行调整。等待 30 分钟是不值得的,因为通过调整仓库大小,查询时间可以减少四分之一或更少。通过执行以下任一操作,您的成本将几乎相同或更低。随着仓库大小的增加,查询执行时间将线性减少。参考 link
- 通过调整仓库大小来扩大规模。
- 通过向仓库添加集群来横向扩展(需要 Snowflake
企业版或更高版本)。
现在到了 JDBC,我相信它的行为方式也与其他数据库相同
我有一个复杂的查询,当我在 Snowflake 控制台中 运行 它时,它在 Snowflake 中需要很长时间(例如 30 分钟)。我正在使用 JDBC 驱动程序从 JVM 应用程序进行相同的查询。似乎发生的是这样的:
- Snowflake 从头到尾处理查询,耗时 30 分钟。
- JVM 应用程序接收行。第一次接收发生在查询开始后 30 分钟。
我希望 Snowflake 在数据准备好后立即开始向我的应用程序发送行,同时它仍在执行查询。这样我的应用程序可以在前 30 分钟内开始处理行。
Snowflake 和 JDBC 这可能吗?
首先,我会要求检查 Snowflake 仓库大小并进行调整。等待 30 分钟是不值得的,因为通过调整仓库大小,查询时间可以减少四分之一或更少。通过执行以下任一操作,您的成本将几乎相同或更低。随着仓库大小的增加,查询执行时间将线性减少。参考 link
- 通过调整仓库大小来扩大规模。
- 通过向仓库添加集群来横向扩展(需要 Snowflake 企业版或更高版本)。
现在到了 JDBC,我相信它的行为方式也与其他数据库相同