无法通过 Java 执行 Snowflake PUT 命令
Posted
技术标签:
【中文标题】无法通过 Java 执行 Snowflake PUT 命令【英文标题】:Unable to execute Snowflake PUT Command through Java 【发布时间】:2020-05-31 14:32:13 【问题描述】:我们正在尝试使用 Java 将 JSON 文件从文件位置加载到 Snowflake 命名阶段。目前,PUT 命令仅适用于 ODBC,不适用于 JDBC。那么有没有办法使用Java代码来执行PUT命令呢?
谢谢
【问题讨论】:
【参考方案1】:Snowflake JDBC 驱动程序确实支持对local file uploads 使用 PUT 语句。以下 java 语句被视为有效查询并上传文件:
statement.executeQuery("PUT file:///tmp/foo.json @JSONSTAGE/ overwrite=true");
在记录器下运行它会产生如下日志(这里的日志来自 JDBC 驱动程序版本v3.12.2
):
n.s.c.jdbc.SnowflakeFileTransferAgent$1 FINE call:778 - filePath: /tmp/foo.json
n.s.c.jdbc.SnowflakeFileTransferAgent FINE uploadFiles:1751 - Done with uploading
JDBC 驱动程序还支持更有效的直接上传流的方式documented here。
【讨论】:
以上是关于无法通过 Java 执行 Snowflake PUT 命令的主要内容,如果未能解决你的问题,请参考以下文章
在 NextJS 中使用 Snowflake 无法连接或执行 getStaticPaths/getStaticProps 中的查询
无法使用 Talend 上传到 Snowflake 阶段,NoSuchMethodError
Snowflake DB UDF 可以执行 SQL 命令吗?