ngdbc.jar 的会话使用详情或实施详情
Session usage details or implementation details of ngdbc.jar
我正在将数据从 Hana 拉到 Hadoop 上。我正在使用 sqoop 1.4.4-mapr-1408。使用 SAP Hana 提供的 Jar 文件在 Sqoop 中使用 JDBC 连接设置 Hana 连接 - ngdbc.jar.
现在的问题是——
- jar 如何与 SAP Hana 交互?
- 它是获取内存中的整个 table 还是只获取内存中的特定批大小?
- 如何从 HANA 端在我们的系统上测量这些统计数据?
.jar 存档包含本机 JAVA JDBC
SAP HANA 有线协议。请参阅此处的文档:
http://help.sap.com/hana/SAP_HANA_SQL_Command_Network_Protocol_Reference_en.pdf
它没有太多 "magic" - 但它是一个相当优化的 JDBC 4
实施。
JDBC 驱动程序根本不获取 tables。表永远不会离开数据库。您从驱动程序中获得的是结果集。如果你的查询是愚蠢的——简单地读取整个 table,那么驱动程序将相应地提供结果集。
这当然不会立即发生,因此您不需要"drink water from the hose"。您必须在客户端代码中实现的 open-fetch-next 循环由驱动程序转换为类似的从服务器到客户端的分块传输。这个(块大小)的块大小通常是自动设置的,可以通过 JDBC API 设置。
您可以在 SAP HANA 服务器上使用 JDBC 性能跟踪和网络统计信息。
考虑到您似乎将数据从 HANA 转储到 HADOOP,那么好消息是批量大小自动设置为给定客户端网络设置的最大值。
数据转储的时间很可能会花在具体化大型结果集上。转储 tables 实际上是 HANA 的反用例,这就是为什么它是您可以做的最慢的事情之一。
我的 2 克拉
我正在将数据从 Hana 拉到 Hadoop 上。我正在使用 sqoop 1.4.4-mapr-1408。使用 SAP Hana 提供的 Jar 文件在 Sqoop 中使用 JDBC 连接设置 Hana 连接 - ngdbc.jar.
现在的问题是——
- jar 如何与 SAP Hana 交互?
- 它是获取内存中的整个 table 还是只获取内存中的特定批大小?
- 如何从 HANA 端在我们的系统上测量这些统计数据?
.jar 存档包含本机 JAVA JDBC SAP HANA 有线协议。请参阅此处的文档: http://help.sap.com/hana/SAP_HANA_SQL_Command_Network_Protocol_Reference_en.pdf 它没有太多 "magic" - 但它是一个相当优化的 JDBC 4 实施。
JDBC 驱动程序根本不获取 tables。表永远不会离开数据库。您从驱动程序中获得的是结果集。如果你的查询是愚蠢的——简单地读取整个 table,那么驱动程序将相应地提供结果集。 这当然不会立即发生,因此您不需要"drink water from the hose"。您必须在客户端代码中实现的 open-fetch-next 循环由驱动程序转换为类似的从服务器到客户端的分块传输。这个(块大小)的块大小通常是自动设置的,可以通过 JDBC API 设置。
您可以在 SAP HANA 服务器上使用 JDBC 性能跟踪和网络统计信息。
考虑到您似乎将数据从 HANA 转储到 HADOOP,那么好消息是批量大小自动设置为给定客户端网络设置的最大值。 数据转储的时间很可能会花在具体化大型结果集上。转储 tables 实际上是 HANA 的反用例,这就是为什么它是您可以做的最慢的事情之一。
我的 2 克拉