Amazon Athena
ユーザーガイド

以前のバージョンの JDBC ドライバーを使用する

最新バージョンのドライバー (バージョン 2.0.5) を使用することをお勧めします。詳細については、「JDBC ドライバーを介した Athena の使用」を参照してください。以前のバージョンを使用する必要がある場合は、このセクションのステップに従って、ドライバーをダウンロードして設定します。

以前のバージョンの JDBC ドライバーは 2.0.2 です。

JDBC ドライバーバージョン 1.1.0 をダウンロードすることもできます。ただし、最新バージョンのドライバーに移行することを強くお勧めします。詳細については、「JDBC ドライバー移行ガイド」を参照してください。

JDBC ドライバーバージョン 1.0.1 以前のバージョンは廃止されました。

以前のバージョンの JDBC ドライバーを使用する

  1. 必要なバージョンのドライバーをダウンロードします。

    以前のバージョンの JDBC ドライバーをダウンロードするためのリンク

    ドライバーのバージョン ダウンロードリンク
    JDBC 4.1 および JDK 7.0 以降と互換性がある JDBC 2.0.2 AthenaJDBC41-2.0.2.jar
    JDBC 4.2 および JDK 8.0 以降と互換性がある JDBC 2.0.2 AthenaJDBC42-2.0.2.jar
  2. ステップ 1 でダウンロードしたドライバーのリリースノートライセンス契約通知をダウンロードします。

  3. AWS CLI で次のコマンドを使用します。

    aws s3 cp s3://path_to_the_driver [local_directory]
  4. ドライバーを使用するには、次のドキュメントを参照してください。

JDBC ドライバーバージョン 1.1.0 用手順

このセクションでは、JDBC ドライバーのバージョン 1.1.0 の手順を説明します。新しい (およびサポート対象) バージョンの JDBC ドライバーに移行されていない場合のみ、これらの手順を使用します。

JDBC 4.1 および JDK 7.0 と互換性のある JDBC ドライバーバージョン 1.1.0 ダウンロードします。AthenaJDBC41-1.1.0.jar。ドライバーのドライバーライセンスサードパーティーライセンスもダウンロードします。AWS CLI で次のコマンドを使用します。aws s3 cp s3://path_to_the_driver [local_directory]。次に、このセクションの残りの手順を使用します。

注記

以下の手順は、JDBC バージョン 1.1.0 以前のバージョンに固有のものです。

JDBC ドライバーバージョン 1.1.0: 接続文字列の指定

カスタムアプリケーションで JDBC ドライバーの接続 URL を指定するには、次の形式で文字列を使用します。

jdbc:awsathena://athena.{REGION}.amazonaws.com:443

{REGION} は、us-west-2 などのリージョン識別子です。Athena のリージョンの詳細については、「リージョン」を参照してください。

JDBC ドライバーバージョン 1.1.0: JDBC ドライバーのクラス名の指定

カスタムアプリケーションでドライバーを使用するには、Amazon S3 の https://s3.amazonaws.com/athena-downloads/drivers/JDBC/AthenaJDBC_1.1.0/AthenaJDBC41-1.1.0.jar からダウンロードした JAR ファイルの場所を Java クラスパスにセットアップします。これにより、JAR 内のクラスが使用可能になります。JDBC ドライバーのメインクラスは com.amazonaws.athena.jdbc.AthenaDriver です。

JDBC ドライバーバージョン 1.1.0: JDBC ドライバーの認証情報の提供

Athena や Amazon S3 バケットなど、AWS のサービスやリソースへのアクセスを取得するには、JDBC ドライバーの認証情報をアプリケーションに提供します。

アプリケーションに Java コードで認証情報を提供するには

  1. AWSCredentialsProvider を実装するクラスを使用します。

  2. JDBC プロパティの aws_credentials_provider_class をクラス名と同じに設定し、それをクラスパスに含めます。

  3. コンストラクターパラメータを含めるには、JDBC プロパティの aws_credentials_provider_arguments を、設定オプションに関する次のセクションで指定しているとおりに設定します。

BI ツール (SQL Workbench など) に認証情報を提供する別の方法としては、JDBC で JDBC プロパティの AWS アクセスキーと AWS シークレットキーとしてそれぞれユーザーとパスワードに使用している認証情報を提供します。

JDBC ドライバーを介して接続するユーザーが、ユーザープロファイルにカスタムアクセスポリシーがアタッチされている場合は、Amazon Athena API リファレンスに示すアクションに加えて、ポリシーアクションへのアクセス許可も必要です。

バージョン 1.1.0 の JDBC ドライバーのポリシー

JDBC ユーザーに対して、ポリシー専用のアクションセットの実行を許可する必要があります。以下のアクションを許可しないと、ユーザーはデータベースとテーブルを表示できません。

  • athena:GetCatalogs

  • athena:GetExecutionEngine

  • athena:GetExecutionEngines

  • athena:GetNamespace

  • athena:GetNamespaces

  • athena:GetTable

  • athena:GetTables

JDBC ドライバーバージョン 1.1.0: JDBC ドライバーオプションの設定

以下のオプションは、バージョン 1.1.0 の JDBC ドライバーで設定できます。次のバージョンのドライバーでは、標準の JDBC URL 構文を使用してパラメータを渡すこともできます (例 :jdbc:awsathena://athena.us-west-1.amazonaws.com:443?max_error_retries=20&connection_timeout=20000)。

JDBC ドライバーバージョン 1.0.1 のオプション

プロパティ名 説明 デフォルト値 必須
s3_staging_dir クエリの出力を書き込む先の S3 の場所 (例: s3://query-results-bucket/folder/)。Athena コンソール (https://console.aws.amazon.com/athena/) の [設定] で設定します。次に、JDBC ドライバーは、結果を読み取ってデータの行をユーザーに返すように Athena に要求します。 該当なし はい
query_results_encryption_option s3_staging_dir で指定したディレクトリに使用する暗号化方法。指定しないと、場所は暗号化されません。有効な値は、SSE_S3SSE_KMSCSE_KMS です。 該当なし いいえ
query_results_aws_kms_key

query_results_encryption_optionSSE-KMS または CSE-KMS を指定した場合に使用する AWS マスターキー (CMK) のキー ID。("123abcde-4e56-56f7-g890-1234h5678i9j" など)。

該当なし いいえ
aws_credentials_provider_class 認証情報プロバイダークラス名。AWSCredentialsProvider インターフェイスを実装します。 該当なし いいえ
aws_credentials_provider_arguments 認証情報プロバイダーコンストラクターの引数。カンマ区切り値です。 該当なし いいえ
max_error_retries

JDBC クライアントから Athena に対するリクエストの最大再試行回数。

10 いいえ
connection_timeout Athena への正常な接続の試行を開始してから試行を終了するまでの最大時間 (ミリ秒)。 10,000 いいえ
socket_timeout Athena にデータを送信するためにソケットを待機する最大時間 (ミリ秒)。 10,000 いいえ
retry_base_delay Athena に接続する再試行間の最小遅延間隔 (ミリ秒)。 100 いいえ
retry_max_backoff_time Athena に接続する再試行間の最大遅延間隔 (ミリ秒)。 1,000 いいえ
log_path Athena JDBC ドライバーのログのローカルパス。ログのパスを指定しないと、ログファイルは作成されません。 該当なし いいえ
log_level Athena JDBC ドライバーのログのログレベル。有効な値: INFO, DEBUG, WARN, ERROR, ALL, OFF, FATAL, TRACE. 該当なし いいえ

例: JDK で 1.1.0 バージョンの JDBC ドライバーを使用する

次のコード例では、Java アプリケーションで 1.1.0 のバージョンの JDBC ドライバーを使用する方法を示しています。これらの例は、AWS JAVA SDK (特に aws-java-sdk-core モジュール) がクラスパスに含まれていることを前提としています。このクラスパスには、例で参照される認証パッケージ (com.amazonaws.auth.*) が含まれています。

例: バージョン 1.0.1 ドライバーの作成

Properties info = new Properties(); info.put("user", "AWSAccessKey"); info.put("password", "AWSSecretAccessKey"); info.put("s3_staging_dir", "s3://S3 Bucket Location/"); info.put("aws_credentials_provider_class","com.amazonaws.auth.DefaultAWSCredentialsProviderChain"); Class.forName("com.amazonaws.athena.jdbc.AthenaDriver"); Connection connection = DriverManager.getConnection("jdbc:awsathena://athena.us-east-1.amazonaws.com:443/", info);

次の例は、以前のバージョンの JDBC ドライバーを使用して AWSCredentialsProvider インターフェイスを実装する認証情報プロバイダーを使用するさまざまな方法を示しています。

例: JDBC ドライバー 1.0.1 の認証情報プロバイダーの使用

Properties myProps = new Properties(); myProps.put("aws_credentials_provider_class","com.amazonaws.auth.PropertiesFileCredentialsProvider"); myProps.put("aws_credentials_provider_arguments","/Users/myUser/.athenaCredentials");

この場合、ファイル /Users/myUser/.athenaCredentials には以下のものが含まれます。

accessKey = ACCESSKEY secretKey = SECRETKEY

右側の割り当て部分をアカウントの AWS アクセスキーおよびシークレットキーに置き換えます。

例: 複数の引数で認証情報プロバイダーを使用する

この例は、セッショントークンに加えてアクセスキーとシークレットキーを使用する認証情報プロバイダー CustomSessionsCredentialsProvider を示します。CustomSessionsCredentialsProvider は例としてのみ表示され、ドライバーには含まれていません。このクラスの署名は以下のようになります。

public CustomSessionsCredentialsProvider(String accessId, String secretKey, String token) { //... }

プロパティを次のように設定します。

Properties myProps = new Properties(); myProps.put("aws_credentials_provider_class","com.amazonaws.athena.jdbc.CustomSessionsCredentialsProvider"); String providerArgs = "My_Access_Key," + "My_Secret_Key," + "My_Token"; myProps.put("aws_credentials_provider_arguments",providerArgs);

注記

InstanceProfileCredentialsProvider」を使用する場合は、アプリケーションを実行するインスタンスの Amazon EC2 インスタンスプロファイルを使用して提供されるため、認証情報プロバイダー引数を指定する必要はありません。ただし、aws_credentials_provider_class プロパティはこのクラス名に設定します。

バージョン 1.1.0 以前の JDBC ドライバーのポリシー

これらの廃止されたアクションは、バージョン 1.1.0 以前の JDBC ドライバーのポリシーでのみ使用します。JDBC ドライバーをアップグレードする場合は、廃止されたアクションを許可または拒否するポリシーステートメントを、以下に示す適切な API アクションに置き換えてください。置き換えないと、エラーが発生します。

廃止されたポリシー固有のアクション 対応する Athena API アクション
athena:RunQuery
athena:StartQueryExecution
athena:CancelQueryExecution
athena:StopQueryExecution
athena:GetQueryExecutions
athena:ListQueryExecutions