Преимущество Teradata CLIv2 по сравнению с JDBC и ODBC? - PullRequest
0 голосов
/ 25 августа 2018

Существует несколько способов подключения к Teradata, например, с использованием CLIv2, JDBC или ODBC. Мне интересно, в чем преимущество CLIv2 перед JDBC и ODBC?

Ответ от ChrisRX:

Короче говоря, CLIv2 / TPTAPI являются официальными библиотеками Teradata C / C ++ для взаимодействия с сервером Teradata. Есть некоторые нюансы, но это в основном причина, по которой они были использованы.

CLIv2, TPTAPI, JDBC и ODBC - это различные методы взаимодействия с сервером Teradata. Все они сильно различаются по возможностям и реализации. Наиболее простым является ODBC, который использует общий API ODBC, для которого Teradata в некоторой степени реализует. CLIv2, однако, является официальной библиотекой вызовов низкого уровня, для которой получены почти все возможности клиента (написано на C). Например, ODBC каким-то образом, скорее всего, реализован (на стороне сервера) с некоторым (или большим) взаимодействием с CLIv2. Giraffez выбрал его в качестве своей библиотеки, чтобы он мог иметь самый мощный интерфейс для Teradata, который предоставляется (по производительности и возможностям). Teradata внедрила процедуры массовой загрузки (fastload, multiload и т. Д.) В C ++, используя CLIv2 в своей основе, и именно здесь используется TPTAPI (API Teradata Parallel Transporter). Giraffez использует это для выполнения процедур массовой загрузки, недоступных ODBC или наивно через CLIv2.

JDBC в конечном итоге представляет собой сочетание (функционально) как ODBC, так и Teradata решила реализовать массовые протоколы исключительно в Java. В конечном итоге это означает, что JDBC способен выполнять "нормальные" взаимодействия SQL с Teradata, а также может выполнять массовые протоколы, такие как fastload / multiload или fastexport.

Giraffez использует CLIv2 и TPTAPI под капотом, специально для обеспечения максимально возможной площади поверхности для взаимодействия с Teradata. Преимущества, например, перед ODBC в том, что ODBC не позволяет использовать массовые протоколы. Другие преимущества - это возможность связывать C / C ++ с кодом Python по сравнению с чем-то вроде перевода типов Java в типы Python с помощью JDBC.

...