Сведения об использовании сеанса или сведения о реализации ngdbc.jar

Я загружаю данные из Hana в Hadoop. Я использую sqoop 1.4.4-mapr-1408. Соединение Hana настраивается с использованием соединения JDBC в Sqoop с использованием файла Jar, предоставленного SAP Hana — ngdbc.jar.

Теперь вопрос -

  1. Как банка взаимодействует с SAP Hana?
  2. Выбирает ли он всю таблицу в памяти или только определенный размер пакета в памяти?
  3. Как можно измерить эту статистику в нашей системе с конца HANA?

person user 923227    schedule 03.02.2016    source источник


Ответы (1)


  1. Архив .jar содержит собственную JAVA JDBC-реализацию проводного протокола SAP HANA. См. соответствующую документацию здесь: http://help.sap.com/hana/SAP_HANA_SQL_Command_Network_Protocol_Reference_en.pdf В этом нет ничего «волшебного», но это достаточно оптимизированная реализация JDBC 4.

    1. Драйвер JDBC вообще не извлекает таблицы. Таблицы никогда не покидают базу данных. То, что вы получаете от драйвера, — это наборы результатов. Если вы выполняете глупый запрос — просто читаете всю таблицу, то драйвер предоставит соответствующий набор результатов. Это конечно происходит не сразу, поэтому "пить воду из шланга" не нужно. Цикл open-fetch-next, который вы должны реализовать в своем клиентском коде, преобразуется драйвером в аналогичную поблочную передачу от сервера к клиенту. Размер фрагмента для этого (размер фрагмента) обычно устанавливается автоматически и может быть установлен через JDBC API.

    2. Вы можете использовать трассировку производительности JDBC и сетевую статистику на сервере SAP HANA.

Учитывая, что вы, похоже, выгружаете данные из HANA в HADOOP, хорошая новость заключается в том, что размер пакета автоматически устанавливается на максимальное значение с учетом настройки сети клиента. Скорее всего, время создания дампа данных будет потрачено на материализацию больших наборов результатов. Дамп таблиц на самом деле является прецедентом использования HANA, поэтому это одна из самых медленных вещей, которые вы могли бы сделать.

мои 2 ст.

person Lars Br.    schedule 04.02.2016
comment
Спасибо, Ларс. Когда вы говорите о материализации больших наборов результатов, не могли бы вы пояснить еще кое-что. Также, что происходит в случае просмотра - как этот процесс оптимизируется? - person user 923227; 04.02.2016
comment
Материализация — это процесс превращения внутренних структур данных (хранилища столбцов) в результирующий набор. Поскольку вся эта тема довольно сложна, я не могу остановиться на ней здесь. Возможно, вы захотите больше узнать о внутренней работе SAP HANA, например, через scn.sap.com или, может быть, мою книгу :-) - person Lars Br.; 05.02.2016
comment
Ух ты! Это классно! У меня есть друзья, которые работают на HANA — им это будет интересно. - person user 923227; 05.02.2016