SqlExceptionHelper:具有聚集列存储索引的表不支持游标

2024-02-23

我正在尝试从使用聚集列存储索引的 DWH SQL Server 表导入数据kudu通过flume。然而,经过我的习惯flumesource 从数据库检索一定数量的行,出现此异常:

SqlExceptionHelper:具有聚集列存储索引的表不支持游标

我正在使用 JDBC SQL Server 驱动程序类型 4,显然它使用游标来迭代结果集。因此,我尝试将获取大小设置为查询限制的数量,但没有任何改变。

如何阻止 JDBC 驱动程序使用游标,从而将所有行导入到kudu table?

提前致谢。


尝试设置selectmethod=direct在连接属性中。Source https://docs.oracle.com/cd/E13157_01/wlevs/docs30/jdbc_drivers/mssqlserver.html:

如果设置为 direct(默认值),则数据库服务器在响应查询时将完整的结果集通过单个响应发送给驱动程序。如果请求的结果集类型是只进结果集,则不会创建服务器端数据库游标。通常,驱动程序不会缓存响应。使用此方法,驱动程序必须在提交另一个查询之前处理对查询的整个响应。如果提交另一个查询(例如,在同一连接上使用不同的语句),驱动程序会在提交第二个查询之前缓存对第一个查询的响应。通常,Direct 方法的性能优于 Cursor 方法。

当然,您需要将结果集定义为仅转发 https://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html#TYPE_FORWARD_ONLY来保证这一点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SqlExceptionHelper:具有聚集列存储索引的表不支持游标 的相关文章

随机推荐