オンラインで読んだ内容に基づいてAWS Athenaに接続しようとしていますが、問題が発生しています。R AWSに接続するAthena
- 更新するJava
- を取っ
手順ユーザーとユーザー/アクセスキー/秘密鍵
に渡す - パスアクセスキー/秘密鍵を交換/
にだけでなく任意のアイデアを渡しますか?
エラーメッセージ:
.jcallでのエラー(DRVする@ jdrv、 "Ljava/SQL /接続;"、 "接続"、as.character(URL)[1]: のjava.sql .SQLException:AWS accessId /秘密鍵やAWSの資格情報プロバイダが
システム情報
sysname release version
"Linux" "4.4.0-62-generic" "#83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017"
nodename machine login
"ip-***-**-**-***" "x86_64" "unknown"
user effective_user
"rstudio" "rstudio"
コードを提供しなければなりません
library(RJDBC)
URL <- 'https://s3.amazonaws.com/athena-downloads/drivers/AthenaJDBC41-1.0.0.jar'
fil <- basename(URL)
if (!file.exists(fil)) download.file(URL, fil)
drv <- JDBC(driverClass="com.amazonaws.athena.jdbc.AthenaDriver", fil, identifier.quote="'")
con <- jdbcConnection <- dbConnect(drv, 'jdbc:awsathena://athena.us-east-1.amazonaws.com:443/',
s3_staging_dir="s3://mybucket",
user=Sys.getenv("myuser"),
password=Sys.getenv("mypassword"))
おかげで、私の頭を傷つけていた。 – user2600629
コードでAWS資格情報をハードコードするのではなく、IAMインスタンスプロファイルを使用する方がよいでしょう。以前は、IAMロールを使用してインスタンスを起動しただけの場合はロールを使用できましたが、AWSではRUNNINGインスタンスにもロールをアタッチできる機能を導入しましたが、AWS CLIでこれを行う必要があります。幸運 – Sam
@Sam、資格情報プロバイダを使用することがベストプラクティスであることに同意します。代替案を説明するために答えを更新しました。私が好きかもしれないようにRで行うのは簡単ではありませんでした。 – James