CData JDBC Driver for Amazon Athena を使って、全文検索エンジンのApache Solr にAmazon Athena データをカンタンに取り込み。
Apache Solr https://lucene.apache.org/solr/は Apache ソフトウェア財団のLucene プロジェクトのサブプロジェクトとして開発されているオープンソースの全文検索エンジンです。
API・データストアや各種データを取り込むためのデータインポート(Data Import Handler)を備えているので、手軽に独自アプリケーションに検索エンジンを組み込むことができるようになっています。通常 Apache Solr はXML・CSV・JSON といったフォーマットやPDF、Word、HTML などのファイル、もしくはJDBC 経由でのRDB 接続で取得したデータのみが取り込み対象ですが、Apache Solr のJDBC のインターフェースにCData JDBC Drivers を用いることで、各API の仕様を意識せず DataImport を実行でき、Apache Solr のエンジンでAmazon Athena データを検索することができるようになります。
今回は Apache Solr が提供するデータインポート機能、Data Import Handler を使って、Amazon Athena データを取り込み、Apache Solr で検索が実施できるようにするための手順を紹介します。
※製品について詳しい情報をご希望の方は以下からお進みください。
- Amazon Athena にほかのBI、ETL、開発ツールから接続したい:Amazon Athena データ連携ガイドおよびチュートリアルのリストへ
- Amazon Athena Drivers について詳細を知りたい:ドライバー詳細情報ページへ
- ほかのデータソースに連携したい:CData Drivers 一覧へ
- ドライバーの30日の無償トライアル版を使いたい:トライアル版ダウンロードページへ
- 製品の利用やライセンスについて相談したい:sales@cdata.co.jp までメールにてご相談ください。
Apache Solr へのAmazon Athena データのコアとスキーマを作成
- Apache Solr を起動します。なお、今回は検証用途のためスタンドアロンで構成しています。
- そして検証用となるコアを一つ追加しました。
- 以下のURLで作成したCoreにアクセスできます。http://localhost:8983/solr/#/CDataCore/core-overview
- 続いて取り込み先となるスキーマを定義しておきます。今回はAmazon Athena のいくつかの項目と合わせて、以下のフィールドを追加しました。LastModifiedDate がAmazon Athena にあれば、差分更新が可能です。該当するカラムがない場合には、後で出てくるdeltaQuery セクションは飛ばしてください。
> solr create -c CDataCore

- CData JDBC: C:\Program Files\CData\CData JDBC Driver for AmazonAthena 2019J\lib
- Apache Solr: solr-8.5.2\server\lib
これでドライバーの配置などの準備は完了です。
Apache Solr の Data Import Handler (DIH) にAmazon Athena のインポート定義を設定
それではデータ処理を担う機能であるDIH(DataImport Handler)の定義を追加しましょう。
- まず作成したCore に含まれるConfig ファイを編集します。 DIH 実行に必要なjar ファイルの参照を追加し、DIH のRequestHandler 定義を追加します。 DIH の設定ファイルは「solr-data-config.xml」としました。
solr-data-config.xml
> solr stop -all
> solr start
Amazon Athena データのDataImport の実行
再起動後、以下のURL からDataImport を実行できます。
http://localhost:8983/solr/#/CDataCore/dataimport//dataimport

まず「full-import」、Entity から「テーブル名」を選択して、「Execute」してみます。

登録された結果を「Query」画面から見てみると、各スキーマにデータが取り込まれていることが確認できました。

次に差分更新であるDeltaQuery も試してみましょう。Amazon Athena 側のデータを書き換えてください。DataImport の画面から今度は「Delta-Import」を選択して、Execute を押してみます。

正常に取り込みが完了すると、以下のようにレコードが更新されていることが確認できました。

まとめ
このようにCData JDBC Driver とSolr Data Import Handler を一緒に使うことで、簡単にSolr でAmazon Athena データをノーコードで連携し、全権検索に使うことが可能です。
是非、CData JDBC Driver for Amazon Athena 30日の無償試用版 をダウンロードして、お試しください。