MySQL に INSERT ... SELECT syntax でデータを挿入する fluentd plugin を作りました
fluentd に送られてきたデータを MySQL に挿入する plugin はいくつかあるんですが、送られてきたデータを MySQL 上のデータを使って加工して挿入すると便利そうな案件があったので作ってみました。任意の SELECT
を記述できるので、複数のテーブルと JOIN した結果を挿入することもできます。
https://github.com/abicky/fluent-plugin-mysql-select-insert
fluentd plugin を作ったのは初めてですが、bundle gem
とは別に fluent-plugin-generate
で fluentd plugin 用の skelton が作成できたり、ドキュメントが充実していたりして良いですね。
cf. Writing plugins | Fluentd
テストで helper を使おうと思うと普段使ってない test-unit を使うことになるので、そこが一番大変でしたが…
cf. Ruby の test-unit で特定のテストだけ実行する - あらびき日記
必要最低限の機能しか実装していませんが、需要があれば機能を追加していくかもです。