使用 JDBC 将数据插入雪花
Posted
技术标签:
【中文标题】使用 JDBC 将数据插入雪花【英文标题】:Inserting data into Snowflake using JDBC 【发布时间】:2016-09-09 14:48:20 【问题描述】:我正在使用简单的 jdbc 将行插入到 Snowflake 数据库中。我正在循环中执行“executeUpdate”。看到插入了行,但是报这个错误
[error] Sep 09, 2016 9:41:28 AM com.snowflake.client.jdbc.SnowflakeResultSet processMetadata
[error] INFO: unknown parameter: TIME_OUTPUT_FORMAT
[error] Sep 09, 2016 9:41:28 AM com.snowflake.client.jdbc.SnowflakeResultSet processMetadata
[error] INFO: unknown parameter: CLIENT_DISABLE_INCIDENTS
[error] Sep 09, 2016 9:41:28 AM com.snowflake.client.jdbc.SnowflakeResultSet processMetadata
[error] INFO: unknown parameter: JS_DRIVER_DISABLE_OCSP_FOR_NON_SF_ENDPOINTS
[error] Sep 09, 2016 9:41:28 AM com.snowflake.client.jdbc.SnowflakeResultSet processMetadata
[error] INFO: unknown parameter: JS_DRIVER_ENABLE_COMPRESSION
[error] Sep 09, 2016 9:41:28 AM com.snowflake.client.jdbc.SnowflakeResultSet processMetadata
[error] INFO: unknown parameter: ODBC_ENABLE_COMPRESSION
[error] Sep 09, 2016 9:41:28 AM com.snowflake.client.jdbc.SnowflakeResultSet processMetadata
[error] INFO: unknown parameter: CLIENT_SESSION_KEEP_ALIVE
[error] Sep 09, 2016 9:41:28 AM com.snowflake.client.jdbc.SnowflakeResultSet processMetadata
[error] INFO: unknown parameter: JDBC_USE_JSON_PARSER
我不确定这些错误是什么......以及是否可以忽略它们。
我还看到雪花 JDBC 驱动程序不支持 executeBatch 和 executeLargeBatch。那么如何从 Java 应用程序上传大量行呢?
JDBC 驱动也支持事务吗?
【问题讨论】:
【参考方案1】:关于“[错误] 2016 年 9 月 9 日上午 9:41:28 com.snowflake.client.jdbc.SnowflakeResultSet processMetadata [错误] INFO: unknown parameter: TIME_OUTPUT_FORMAT",这些是INFO日志。这意味着驱动程序不处理这些参数。您可以忽略它们。我们将更改默认情况下不记录这些行的行为。
我们支持 PreparedStatement 的 executeBatch。因此,您可以通过批量绑定插入大量行。目前不支持 executeLargeBatch,但如果需要,我们可以轻松添加对它的支持。
我们的 JDBC 驱动程序支持事务。默认情况下,会话将以自动提交模式启动。如果要关闭自动提交,可以调用 Connection.setAutoCommit 方法,然后使用 commit() 或 rollback() 提交或回滚事务。事务在第一个 DML 时透明地启动。
【讨论】:
知道如何在准备好的语句中将 Java 对象传递给 Snowflake 中的变体列吗?我在这里问过***.com/questions/56784193/… 我已经回复了你的帖子。以上是关于使用 JDBC 将数据插入雪花的主要内容,如果未能解决你的问题,请参考以下文章