LoginSignup
0

More than 5 years have passed since last update.

Netbeans + JDBC + Amazon Athena でつまづいたところ

Last updated at Posted at 2017-03-04

もうそこらじゅうにサンプルがあるけど知識が少なすぎてアレだったので一応つまづいたところをふまえてメモ。

前提

とりあえずもう Web コンソールから SQL 実行できるとする。DB名は logs としてある。

リージョン US Standard でバケットを作っておく

JDBC経由で実行した結果は得られるんだが、それをS3に保存することは必須になっている。そしてちゃんとAmazon Athenaが動くリージョンじゃないとダメらしい(エラーになる)。リージョンを US Standard としてS3バケットを作成する。

プロジェクト作成

Netbeans を起動して新規プロジェクト > Java > Javaアプリケーション

コードのコピペ

Amazon Athena に JDBC 接続する | Developers.IO を参考にした。

コピペする。

認証設定

認証はJDBCドライバに渡すプロパティ一式のなかに、 aws_credentials_provider_arguments というプロパティに値を渡すことで aws_credentials_provider_class のコンストラクタを指定できるようだ。

ようだ・・・が、いろいろあってこれを用いられなかったのでこのアクセスキーとシークレットアクセスキーを用いる方法でいく。

Accessing Amazon Athena with JDBC — User Guide

上記ページを参考にプロパティ user にアクセスキー、同 password にシークレットアクセスキーを設定した。

    info.put("s3_staging_dir", "s3://us-standar-region-phx-athena");
    info.put("user", "AWSACCESSKEYID");
    info.put("password", "AWSSECRETACCESSKEY");

ライブラリの追加

上記3つ解凍して、それぞれのjarをプロジェクトに追加する。Netbeasでプロジェクト右クリ > プロパティ > ライブラリ > JAR/フォルダの追加 > を3度

SQLの実行

Webコンソールではデフォルトデータベースが正しく指定されているが、コレ経由だとちゃんと指定しないとダメぽ。(デフォルトDB指定できるだろうからまぁそれやりゃいいんだろうけど)

例えば

select * from target_table limit 3;

select * from logs.target_table limit 3;

こんな感じで。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0