我将Hana的数据提取到Hadoop上。我使用的是sqoop 1.4.4-mapr-1408。使用SAP Hana - ngdbc.jar提供的Jar文件在Sqoop中使用JDBC连接设置Hana连接。
现在的问题是 -
答案 0 :(得分:1)
.jar存档包含本机的JAVA JDBC实现 SAP HANA有线协议。请参阅此处的文档: http://help.sap.com/hana/SAP_HANA_SQL_Command_Network_Protocol_Reference_en.pdf 没有多少"魔法"对它 - 但它是一个相当优化的JDBC 4 实施
JDBC驱动程序根本不提取表。表永远不会离开数据库。你从驱动程序得到的是结果集。如果你查询愚蠢 - 只是读取整个表,那么驱动程序将相应地提供结果集。 这当然不是一次性发生的,所以你不需要从软管中喝水"。您必须在客户端代码中实现的open-fetch-next周期由驱动程序转换为从服务器到客户端的类似块传输。此块(块大小)的块大小通常是自动设置的,可以通过JDBC API设置。
您可以在SAP HANA服务器上使用JDBC性能跟踪和网络统计信息。
考虑到您似乎将数据从HANA转储到HADOOP,那么好消息是批量大小会自动设置为客户端网络设置的最大值。 很可能数据转储的时间将用于实现大型结果集。转储表实际上是HANA的反用例,这就是为什么它是您可以做的最慢的事情之一。
我的2 cts。