无法通过 Java 执行 Snowflake COPY 命令

Posted

技术标签:

【中文标题】无法通过 Java 执行 Snowflake COPY 命令【英文标题】:Unable to execute Snowflake COPY Command through Java 【发布时间】:2021-06-17 09:08:21 【问题描述】:

我无法使用 java 从 SnowFlake 上的阶段加载数据。

我没有看到任何错误,但数据未从阶段“mystage”加载到表“TESTTABLE” 代码:

Connection connection =  DriverManager.getConnection(connectionUrl, _connectionProperties);
        Statement statement = connection.createStatement();
        statement.executeQuery("copy into TESTTABLE (id, name) from (select $1, $2 from @mystage/F.csv.gz t);");

如果我在 SnowFlake 控制台中运行相同的命令,数据将正确加载到表“TESTTABLE”中。

【问题讨论】:

【参考方案1】:

我们不知道默认连接指向哪个数据库/模式。我会尝试使用完全限定的表名:

statement.executeQuery("copy into <db_name>.<schema_name>.TESTTABLE (id, name) from (select $1, $2 from @mystage/F.csv.gz t);");

【讨论】:

是的,理想情况下我们也应该提供数据库和模式名称。【参考方案2】:

我错误地注释掉了connection.commit();,这就是问题所在。

【讨论】:

以上是关于无法通过 Java 执行 Snowflake COPY 命令的主要内容,如果未能解决你的问题,请参考以下文章

在 NextJS 中使用 Snowflake 无法连接或执行 getStaticPaths/getStaticProps 中的查询

从 Spark 到雪花的连接

无法使用 Talend 上传到 Snowflake 阶段,NoSuchMethodError

Snowflake DB UDF 可以执行 SQL 命令吗?

sqitch init snowflake 无法确定 Snowflake 账户名

无法使用 Sqitch 连接到 Snowflake