Я хочу подключить R к Athena в AWS, чтобы получить таблицу из базы данных в R. Я подключился к Интернету и искал в Google, как это сделать. Я нашел этот веб-сайт здесь. Это подсказало мне, что мне нужно установить драйверы. У меня есть Mac (который также является новым для меня), и я нашел в разделе mac на этом сайт, что мне нужно установить homebrew, что я и сделал. Затем я выполнил следующие шаги в терминале.
Установите UnixODBC, который требуется для всех баз данных.
варить установить unixodbc
Установите общие драйверы БД (необязательно)
brew install freetds --with-unixodbc
варить установить psqlodbc
Я обычно не работаю в терминале. Так что я не слишком хорошо с ним знаком. В любом случае я подумал, что это так, поэтому я запустил следующий код.
con <- DBI::dbConnect(
odbc::odbc(),
Driver = "FreeTDS",
S3OutputLocation = " etc..",
AwsRegion = "etc..",
AuthenticationType = "...",
Schema = "...",
UID = rstudioapi::askForPassword("AWS Access Key"),
PWD = rstudioapi::askForPassword("AWS Secret Key")
)
Когда я запустил этот код, я получил следующую ошибку:
Error: nanodbc/nanodbc.cpp:983: 00000: [unixODBC][Driver Manager]Can't open lib 'FreeTDS' : file not found
Конечно, я погуглил об ошибке и нашел кое-что интересное об обмене стеками. Поигравшись в терминале, я получил такие ответы:
sudo Rscript -e 'odbc::odbcListDrivers()'
[1] name attribute value
<0 Zeilen> (oder row.names mit Länge 0)
Отображаются нулевые строки и имена строк длиной 0.
Я также запустил это
cp /etc/odbcinst.ini ~/.odbcinst.ini && Rscript -e 'odbc::odbcListDrivers()
и я понял это
cmdand quote> '
cp: /etc/odbcinst.ini: No such file or directory
Я не понимаю, почему это так, потому что я выполнил шаги один и два.
con <- dbConnect(RAthena::athena(), aws_access_key_id='YOUR_ACCESS_KEY_ID', aws_secret_access_key='YOUR_SECRET_ACCESS_KEY', s3_staging_dir='s3://path/to/query/bucket/', region_name='eu-west-1')
Является ли идентификатор ключа доступа просто данными моего входа в систему, или это что-то особенное, к чему кто-то должен предоставить мне доступ. - person Nick   schedule 31.07.2020ACCESS_KEY_ID
иSECRET_ACCESS_KEY
создаются вместе в Amazon Web Services IAM. Это в некоторой степени эквивалентно имени пользователя и паролю для API. Вам нужно будет сгенерировать пару, а затем дать ей соответствующие разрешения. К сожалению, на этом мои знания заканчиваются; Я не заядлый пользователь R или AWS. :) - person FlipperPA   schedule 31.07.2020