首页 > 解决方案 > 使用 Snowflake JDBC 驱动程序的多线程

问题描述

我正在尝试使用 Snowflake 驱动程序在 API 中执行一组顺序查询。我在对 API 执行负载测试时发现异常行为,线程之间的查询混合并导致顺序丢失。

雪花查询历史显示跨线程共享同一会话的查询。有什么建议可以限制这种行为以确保线程特定的查询执行或为每个线程单独创建会话?

雪花驱动版本:

<dependency>
    <groupId>net.snowflake</groupId>
    <artifactId>snowflake-jdbc</artifactId>
    <version>3.13.7</version>
</dependency>

我在雪花中有以下赠款

  1. 角色 1 只能访问仓库 1
  2. 角色 2 只能访问仓库 2

在 Spring Boot API 中,我按顺序调用查询,如下所述。

use role ${xyz};
use warehouse ${abc};

当我按顺序访​​问 API 时,即使每个线程共享相同的会话 ID,查询也会按顺序执行,但是当给 API 查询的多个并发请求混合发生时,会引发授权错误

use role role1 ;
use role role2;
use role warehouse1;

标签: multithreadingsessionjdbcsnowflake-cloud-data-platform

解决方案


推荐阅读