Springboot + JPA + Snowflake COPY INTO 问题

问题描述 投票:0回答:1

我尝试通过 S3 阶段执行从 java 到雪花的 INSERT / COPY INTO 。 S3 中的文件存在/文件不为空/表存在/我拥有该表的所有权限。 我使用Java 21,Springboot 3.3.2和snowflake-jdbc 3.18.0

流程始终成功完成,但会出现“插入的行数=0”响应。

我的存储库类看起来像这样:

@Repository
public interface BlahBlahRepository extends JpaRepository<BlahBlah, String> {

    @Query(value = "INSERT INTO BLABLA (A, B, C) SELECT s.$1 AS A, s.$2 AS B, s.$3 AS C FROM @SOME_STAGE/some-folder/:filename s;", nativeQuery = true)
    @Modifying(clearAutomatically = true, flushAutomatically = true)
    List<Map<String, String>> copyFromStage(@Param("filename") String filename);
}

我尝试尝试交易/隔离/等。没有任何帮助。 当检查 ACCOUNT_USAGE.COPY_HISTORY (用于 COPY INTO)时,没有任何条目(顺便说一句。我知道传播延迟约为 45 分钟)。另外,对于 COPY INTO,我使用了 FORCE=TRUE - 没有帮助。

知道为什么该特定命令不起作用吗?所有其他“正常”sql 命令都运行良好。

java spring-data-jpa snowflake-cloud-data-platform java-21
1个回答
0
投票

我猜目前(2024 年 10 月)不支持此功能。我通过在 Snowflake 中定义函数来绕过这个问题,该函数执行 COPY INTO 操作,然后从 java 中的本机查询调用它。

© www.soinside.com 2019 - 2024. All rights reserved.