我尝试使用JDBC连接到amazon athena。由于我没有在maven上找到 AthenaDriver 存储库,我自己在github上创建了它。基本上我正在做的是:
的pom.xml:
<repository>
<id>mvn-rep</id>
<name>maven repository</name>
<url>https://github.com/raphael-psr/maven-repository/raw/master/</url>
</repository>
<dependency>
<groupId>com.amazonaws.athena.jdbc</groupId>
<artifactId>AthenaJDBC41</artifactId>
<version>1.1.0</version>
</dependency>
的java:
class.forName("com.amazonaws.athena.jdbc.AthenaDriver");
Properties properties = new Properties();
properties.setProperty("user", user);
properties.setProperty("password", password);
properties.setProperty("aws_credentials_provider_class", "amazon.AmazonCredentialsProvider");
Connection connection = DriverManager.getConnection("jdbc:awsathena://athena." + region + ".amazonaws.com:443", properties);
引发异常:
java.sql.SQLException:没有为jdbc找到合适的驱动程序:amazonaws://athena.us-east-1.amazonaws.com:443
任何人都知道它可能是什么?
答案 0 :(得分:1)
也许您想从以下网址下载JDBC驱动程序:https://s3.amazonaws.com/athena-downloads/drivers/AthenaJDBC41-1.1.0.jar
您可以将它安装在您自己的maven存储库中:
mvn install:install-file -Dfile=/home/users/User01/Documents/AthenaJDBC41-1.1.0.jar -DgroupId=com.amazonaws.athena.jdbc -DartifactId=athenaJDBC -Dpackaging=jar
然后您可以在pom.xml中引用它:
如果这对您有所帮助,请告诉我。
PS:不确定为什么我的计算机中的代码格式化不起作用。我尝试了三种不同的浏览器,我期待同样的问题。
答案 1 :(得分:1)
从https://s3.amazonaws.com/athena-downloads/drivers/AthenaJDBC41-1.1.0.jar下载Jar
将jar添加到您自己的maven存储库
mvn install:install-file -Dfile=/home/sumit/Downloads/AthenaJDBC41-1.1.0.jar -DgroupId=com.amazonaws.athena.jdbc -DartifactId=athenaJDBC -Dversion=1.1.0 -Dpackaging=jar
将 -Dfile 值更改为下载的jar路径。 如果需要,请更新 -Dversion 。
为pom.xml添加依赖项
<dependency>
<groupId>com.amazonaws.athena.jdbc</groupId>
<artifactId>athenaJDBC</artifactId>
<version>1.1.0</version>
</dependency>
答案 2 :(得分:0)
我自己在开发Clojure的Spark作业时使用2.0.2
版驱动程序的JDBC42
自己遇到了这个问题。尽管存在这些差异,但我认为答案可以翻译,并且我从Spark Unable to find JDBC Driver获得了答案。
我相信您需要将driver
对象中的Properties
属性设置为Athena Driver类,即
properties.setProperty("driver", "com.simba.athena.jdbc.Driver");
这对于2.0.2
版本是正确的。您的情况应该是
properties.setProperty("driver", "com.amazonaws.athena.jdbc.AthenaDriver");
我不知道为什么Class.forName
不够用。我还必须构建自己的Maven软件包以包含在内。