Airpal использует подключение клиента Presto, а также использует эти объекты (в основном для схемы и данных, таких как Column, QueryResults и т. Д.) Внутри своих различных модулей.
Один из способов обеспечения подключения к JDBC - это перенести его самый нижний уровень подключения к БД (вызовы executeWith com.airbnb.airpal.core.execution.QueryCliemt: есть 1 для данных и около 6 для метаданных) в JDBCвыполнение запроса.Результаты JDBC (в основном данные и схемы) затем могут быть преобразованы в объекты, эквивалентные API-интерфейсу preto client, и остальная часть логики в airpal будет следовать.
Другой подход - переписать airpal с собственной поддержкой JDBC, перейдя к JDBC.объекты для внутреннего пользования и общения.Это выглядит как гораздо большее изменение.
Я планирую добавить поддержку для динамического выбора между клиентом Presto или подключением JDBC.Я буду использовать com.airbnb.airpal.presto.QueryRunner, чтобы соответственно удерживать сеанс клиента preto или соединение JDBC.