我想在Scala中将数据从SQL服务器复制到vertica,我正在考虑使用Anorm,但我没有找到任何有关批量插入的文档。如果Anorm不支持批量插入,我应该使用哪个库?
答案 0 :(得分:6)
确实如此,使用BatchSql
。这是一个直接来自测试的例子
BatchSql(
"SELECT * FROM tbl WHERE a = {a}, b = {b}",
Seq(
Seq[NamedParameter]("a" -> 0, "b" -> -1),
Seq[NamedParameter]("a" -> 1, "b" -> 2)
)
)
但是,正如@LimbSoup在评论中指出的那样,这并不比按顺序执行多个插入更快地执行,因为它使用引擎盖下的executeBatch
来发送包含一系列查询的语句到数据库中。
唯一的性能提升来自网络延迟(因为单个语句被发送到数据库)。
有关替代方法,请参阅此答案:Batch insert with table that has many columns using Anorm