如何使用springJdbc模板或其他批处理插入数据来用分区配置表



作为标题,我想通过springNamedParameterJbbcTemplate将数据批量插入到配置单元表中,它可以如下工作:

SqlParameterSource[] batchParameterSources = SqlParameterSourceUtils.createBatch(batchValues);
template.batchUpdate("insert into table(a, b, c) values(:a, :b, :c)", batchParameterSources);

但是,上面的sql无法分配分区,请使用sql

"insert overwrite table partition(date = '2020-04-02') values (:a, :b, :c)"

spring将抛出SQLFeatureNotSupportException:不支持方法。

那个么,如何使用spring-jdbc模板将数据批量插入到具有特殊分区的配置单元表中呢?

期待您的回答,非常感谢!

我研究了Spring教程,没有发现关于使用特殊分区批量插入到hive表的信息。

所以我使用本机蜂箱驱动程序。

您可以按如下方式编码:

try {
Class.forName("org.apache.hive.jdbc.HiveDriver");
Connection connection = DriverManager.getConnection("hiveserver", "username", "password");
Statement statement = connection.createStatement();
boolean result = statement.execute("insert overwrite table table_name partition(dt = 'date') values (valueA), (valueB), (valueC)");
if (!result) {
log.info("write data successfully");
}
}

注:

  1. 如果存储一些数据,statement.execute((的方法将返回false。因为存储不会返回任何结果
  2. 如果你的数据太多,最好存储批量,比如
insert overwrite table_name partition(dt='date') values (valueA), (valueB)...
insert into table_name partition(dt='date') values (valueC), (valueD)...

相关内容

  • 没有找到相关文章

最新更新