AWS Athena ODI JDBC连接

时间:2019-04-30 16:19:49

标签: amazon-athena

有人尝试过从Oracle Data Integrator连接AWS Athena。

很久以来我一直在尝试这种方法,但是找不到合适的JDBC连接字符串。

我遵循的步骤 https://docs.aws.amazon.com/athena/latest/ug/connect-with-jdbc.html#jdbc-url-format

  1. 从AWS下载AthenaJDBC42_2.0.7.jar驱动程序
  2. 将其复制到ODI的userlib目录中
  3. 在ODI中创建了新技术
  4. 尝试添加数据服务器。无法形成JDBC网址。

JDBC字符串样本格式(不起作用):

jdbc:awsathena://AwsRegion=[Region];User=[AccessKey];Password=[SecretKey];S3OutputLocation=[Output];

任何人都可以帮忙吗?谢谢。

2 个答案:

答案 0 :(得分:0)

这是我为雅典娜实现的JDBC的分类器版本。这只是POC,我们想和AWS SDK一起使用,而不是jdbc,尽管在这里不太重要。

package com.poc.aws.athena;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class AthenaJDBC {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        Connection connection = null;
        Class.forName("com.simba.athena.jdbc.Driver");
        connection = DriverManager.getConnection("jdbc:awsathena://AwsRegion=us-east-1;User=EXAMPLEKEY;"
                + "Password=EXAMPLESECRETKYE;S3OutputLocation=s3://example-bucket-name-us-east-1;");

        Statement statement = connection.createStatement();
        ResultSet queryResults = statement.executeQuery(ExampleConstants.ATHENA_SAMPLE_QUERY);
        System.out.println(queryResults.next());

    }
}

这里唯一重要的一点与url有关。

jdbc:awsathena://AwsRegion=us-east-1;User=EXAMPLEKEY;" + "Password=EXAMPLESECRETKYE;S3OutputLocation=s3://example-bucket-name-us-east-1;

  1. us-east-1必须替换为您的实际区域,例如us-west-1
  2. EXAMPLEKEY必须替换为具有雅典娜访问权限的AWS Access key
  3. EXAMPLESECRETKEY必须替换为具有雅典娜访问权限的AWS Secret key
  4. example-bucket-name-us-east-1必须替换为S3 bucket之上的keys,也要具有写访问权限。

还有simba驱动程序支持的其他按键,但在这里不太重要。

我希望这会有所帮助。

答案 1 :(得分:0)

对不起,我错过了对此发表答复。 在如下所示的ODI中配置Athena JDBC连接并在连接时提供4个键值之后,一切工作正常。

JDBC URL:jdbc:awsathena://athena.eu-west-2.amazonaws.com:443; AWSCredentialsProviderArguments = ACCESSKEYID,SECRETACCESSKEY,SESSIONTOKEN

enter image description here