More than 1 year has passed since last update.

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保存したい