Я пытаюсь использовать библиотеку R DBI для создания представления в базе данных Athena, подключенной через JDBC. Команда dbSentStatement
, которая должна отправлять и выполнять произвольный SQL без возврата результата, выдает ошибку, когда набор результатов не возвращается:
DBI::dbSendStatement(athena_con, my_query)
Error in .verify.JDBC.result(r, "Unable to retrieve JDBC result set", :
Unable to retrieve JDBC result set
JDBC ERROR: [Simba][JDBC](11300) A ResultSet was expected but not generated from query <query repeated here>
Кроме того, представление не создается.
Я пробовал другие команды DBI, которые казались многообещающими (dbExecute
, dbGetQuery
, dbSentQuery
), но все они выдавали одну и ту же ошибку. (На самом деле, я ожидаю, что все они будут - dbSendStatement
это тот, который, согласно руководству, должен работать.)
Есть ли другой способ создать представление с помощью DBI
, dbplyr
и т. д.? Или я правильно делаю и это ограничение RJDBC
или драйвера?
RJDBC предшествует более поздней спецификации DBI и использует другую функцию для доступа к этой функции: RJDBC::dbSendUpdate(con, query)
.
DBI's dbSendStatement()
здесь пока не работает. Для лучшей совместимости RJDBC может реализовать этот метод и передать его своему dbSendUpdate()
.