3年前にAthenaのクエリの結果を転送する必要があり、Embulkをすでに利用していたので、データ転送の仕組みをEmbulkに寄せるために作ったプラグインがembulk-input-athena。
Athenとは
Amazon Athena とは - Amazon Athena
標準 SQL を使用して、Amazon S3 に保存されているリレーショナルおよび非リレーショナルデータに対してアドホッククエリを実行し、数秒で結果を取得します。
Embalkとは
Embulk
Embulk is an open-source pluggable bulk data loader. It helps loading data to/from varieties of storages, file formats, databases, cloud services, and else.
embulk-input-athena
GitHub - shinji19/embulk-input-athena: Athena input plugins for Embulk
Athena input plugins for Embulk. Contribute to shinji19/embulk-input-athena development by creating an account on GitHub.
単純にembulk-input-jdbcをラップしただけのようなものではあるが、rubygemsを見ると1万ダウンロードを超えているので欲しい人はいるにはいるっぽい。また、ありがたいことに時々プルリクエストをが来る。Embulkの動向を追わなくなっているので、誰かにメンテナンスを託したくはあるが、Embulkにお世話になっていたので、もう少し面倒をみようと思う。
今回のプルリクエストは、利用しているライブラリの所在が変わった点と、クエリにスキーマを設定しなくても動くようにする点だった。
Before
in:
type: athena
database: db
query: |
select long_value from db.test
After
in:
type: athena
database: db
query: |
select long_value from test
確かにプラグインを作っている時にSQLのテーブル指定にスキーマも書かないと動かなく不思議に思っていたが、これを解消してくれた。そもそもdatabaseでも指定していたので冗長だったので、これを書かなくて済むのであればそれに越したことはないですよね。
Embulkがv1.0.0に向けて動いているようで、また来年ぐらいに何か対応が必要そうです。現状でやらないといけなさそうな点は、JRubyの依存を無くして、リリースをRubyGemsからMaven Centralに移行するぐらいでしょうか。
v1.0に向けてのアナウンス
Embulk v0.11 / v1.0 に向けて: プラグイン開発者の皆様へ
build.gradleの書き換え
GitHub - embulk/gradle-embulk-plugins: A Gradle plugin to build and publish Embulk plugins
A Gradle plugin to build and publish Embulk plugins - embulk/gradle-embulk-plugins
破壊的な変更になりそうですが、今後の発展のために動いているらしいので、v1.0をきっかけに盛り上がって欲しいですね。
コメント