Как выполнить запрос через Amazon Athena с рубином?

как подключить Amazon Athena к Ruby и выполнить запрос через Amazon Athena и получить результат.

мы не смогли найти ни одного драгоценного камня или примера с помощью нам, чтобы подключить Amazon Athena в рубине.

Пожалуйста, предоставьте любую ссылку, с помощью которой мы сможем установить соединение с Amazon Athena и создать собственный исполнитель запросов на ruby.

просто чтобы очистить мое приложение на производстве, поэтому изменение SDK с Ruby на JRuby не подходит для меня.


person jayesh    schedule 20.03.2017    source источник


Ответы (5)


Согласно май 19 января 2017 г. Amazon Athena поддерживает выполнение запросов через SDK и интерфейс командной строки. Я уже пробовал это с Python. Ruby также должен быть доступен после обновления до последней версии SDK.

http://docs.aws.amazon.com/sdkforruby/api/Aws/Athena/Client.html

person Petra Barus    schedule 29.05.2017

Требуется JRuby. Athena предлагает только драйвер JDBC. Работает только в JRE.

person Ilya Vassilevsky    schedule 29.03.2017
comment
Спасибо за ответ, но я не предпочитаю использовать SDK для изменений. - person jayesh; 04.04.2017
comment
Это уже не так, если когда-либо было. Также есть драйвер ODBC. - person philosodad; 11.10.2019

Если использование JRuby неприемлемо, есть другой вариант, который может сработать, но имейте в виду, что это не 100% Ruby!

Вы можете настроить функцию Lambda Java, которая инкапсулирует логику запроса, принимает параметры поиска и затем подключает напрямую в Афину с помощью драйвера JDBC.

Затем вызовите функцию Lambda из Ruby - либо через HTTP, либо через Клиент Ruby.

person gwcodes    schedule 29.03.2017
comment
Спасибо за ваше предложение. Мне нравится внедрять чистый Ruby, но сейчас это невозможно. - person jayesh; 04.04.2017
comment
Я внедрил причальный сервер с остальными службами в java, которые принимают строку запроса как параметр и возвращают ответ .. это решит мою проблему на данный момент .. но это добавляет еще одну дополнительную нагрузку для поддержки одной дополнительной службы. - person jayesh; 04.04.2017
comment
ваше предложение с функцией Lambda - это хорошо, но я не хочу платить больше за использование дополнительных услуг прямо сейчас. - person jayesh; 04.04.2017

Использование функции Lambda является хорошей альтернативой, но если кто-то не хочет платить дополнительную сумму за услугу, тогда попробуйте внедрить небольшое приложение с причалом, используя службу отдыха в JAVA с запросом sql в качестве параметра и текстом ответа в качестве вывода (ваш предпочтительный формат) даст вам обходной путь для двигаться дальше.

person jayesh    schedule 04.04.2017

Я обнаружил, что официальный Amazon SDK для athena немного сложен, поэтому создал новый гем под названием Athens который оборачивает SDK в более приятный интерфейс:

conn = Athens::Connection.new(database: 'sample')
query = conn.execute("SELECT * FROM mytable")
person cschulte22    schedule 04.03.2019