1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

EmbulkでAmazon Athenaから入力する

Last updated at Posted at 2021-07-22

embulk-input-athenaでは弊社の要件に合わなかったので、参考にさせて頂きつつ、embulk-input-jdbcでやってみました。

前準備

JDBCドライバをダウンロードする

Athena用JDBCドライバをダウンロードし、Embulkから参照可能な場所に保存しておきます。

wget -P /path/to/ https://s3.amazonaws.com/athena-downloads/drivers/JDBC/SimbaAthenaJDBC-2.0.21.1000/AthenaJDBC42.jar

設定ファイルを書く

Embulkの設定ファイルに、Athenaからの入力設定を記述します。

# vim /path/to/_in_athena.yml.liquid
in:
  type: jdbc
  # ダウンロードしたJDBCドライバのパス
  driver_path: /path/to/AthenaJDBC42.jar
  # JDBCドライバのクラス名
  driver_class: com.simba.athena.jdbc.Driver
  # JDBC URL (接続情報)
  # AwsRegion        AWSリージョン
  # User             AWSアクセスキー
  # Password         AWSシークレットアクセスキー
  # WorkGroup        Athenaのワークグープ名 AWSコンソール->Athena->ワークグループで確認
  url: jdbc:awsathena://AwsRegion={{AWS_DEFAULT_REGION}};User={{AWS_ACCESS_KEY_ID}};Password={{AWS_SECRET_ACCESS_KEY}};WorkGroup={{ATHENA_WORK_GROUP}}
  query: |
    SELECT
      *
    FROM (
      SELECT
       *, row_number() over (PARTITION BY id ORDER BY updated_at DESC) AS rn
      FROM {{DB_NAME}}.{{TABLE_NAME}}
    )
    WHERE rn = 1

参考

その他

  • embulk-input-athenaを採用しなかった理由
  • カラムの指定がrequiredであるため、全カラムまるごと転送したいという要件に合いませんでした。
1
1
0

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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?