LoginSignup
9
6

More than 5 years have passed since last update.

Apache NiFiでSQLを投げてみる

Posted at

Apache NiFiでRDBにSQLを投げて、結果をテキスト出力してみました。

インストール

本番サイトから、tar.gzかzipファイルをダウンロードして解凍します。

起動

binディレクトリ内のシェルを実行します。

Macな人の例
$ nifi-0.4.1/bin/nifi.sh start

詳しくは他の方が書かれているこのページが参考になります。
データフローオーケストレーションツールApache NiFiとは?

JDBCコネクションを設定

画面左上のController SettingsアイコンからNiFi Flow Settingsダイアログを開いて、DBCPConnecitonPoolを追加します。

Controller Settingsアイコン
スクリーンショット 2016-01-22 11.52.57.png

NiFi Flow Settingsダイアログ
スクリーンショット 2016-01-22 12.01.48.png

DBCPConnecitonPoolダイアログ
スクリーンショット 2016-01-22 12.20.54.png

DBCPConnecitonPoolダイアログでは、JDBCのいつもの4点セット(コネクションURL、ドライバクラス名、ユーザ、パスワード)とドライバjarファイルのファイルパスを設定してください。ファイルパスの先頭には"file://"が必要です。

設定が終わったら、右の方にあるイナズマアイコンをクリックして、ステータスをEnabledにして下さい。

SELECT文を投げてJSON形式てテキストファイルに出力する。

つづけて、Processorを追加してConnectionでつなぎます。基本的な使い方はこちらを参考にしてください。
Apache NiFiで基本のデータフローを作成するには?

Processorは、「ExecuteSQL」「ConvertAvroToJSON」「PutFile」の3種類を使います。

ExecuteSQLプロセッサの追加

スクリーンショット 2016-01-22 13.13.55.png

  • Database Connection Pooling Service ・・・先ほど作成したJDBCコネクション
  • SQL select query ・・・実行したいSQLのSELECT文

ConvertAvroToJSONプロセッサの追加

設定内容はディフォルトのままで良いです。このプロセッサを省略してExecuteSQLのをPutFileに直接つなぐと、Avro形式のバイナリファイルが出力されます。

PutFileプロセッサの追加

スクリーンショット 2016-01-22 13.20.46.png

  • Directoryにファイルの出力先を設定します。

Connection

Processorを追加したら、ExecuteSQLからCovertAvroToJSON、CovertAvroToJSONからPutFileをそれぞれConnectionでつないでください。

For relationshipsは、とりあえず、failuerとsuccessの両方にチェックを入れておきます。

Processorとコネクションの最終的なイメージ
スクリーンショット 2016-01-22 12.56.44.png

実行

準備が終わったら、Processorを3つともStartの状態にします。正常に動作すれば、PutFileプロセッサに設定したディレクトリにJSONファイルが出力されます。

TODO

  • 今回は静的なSQLを実行たが、パラメータ設定したい
  • 取得したデータをDB保存したい
9
6
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
9
6