PR:この記事にはアフィリエイトリンクが含まれます。
Apache NiFiの本は、データフローの基礎からProcessor設計、運用まで扱う範囲が分かれています。実務ではフローを組む手順に加えて、停止時にデータをどう扱うかも知っておきたいところ。そこが本番連携の焦点です。
ここではNiFi専門書3冊と、NiFiを軸にデータ工学を扱う1冊を紹介します。Processorをつないだ後は、再実行や監視、版管理が運用上の論点になります。
4冊の早見表
| 書籍 | 刊行・分量 | 主な対象 |
|---|---|---|
NiFi Fundamentals & Cookbook: 9-Use Cases, Covering Various Scenarios and Components | 2018年・130ページ | UI、キュー、サービス、監視を例で学ぶ |
| *Mastering Apache NiFi: From Basics to Advanced Data Integration: A Comprehensive Guide for Data Professionals* | 2024年・122ページ | 性能、クラスタ、拡張、セキュリティまで |
| *Advanced Data Streaming with Apache NiFi: Engineering Real-Time Data Pipelines for Professionals* | 2024年・250ページ | Processor、ルーティング、EL、障害対応 |
Data Engineering with Python: Work with Massive Datasets to Design Data Models and Automate Data Pipelines Using Python | 2020年・356ページ | NiFi中心に連携、版管理、監視、本番配置 |
4冊はいずれも英語のペーパーバックです。Processor名や設定用語は原文で追えますが、日本語の補助はありません。英語の技術書を読む経験が、読み進める負荷を左右します。
ページ数に加えて目次の範囲を見ると、それぞれの役割が分かります。『NiFi Fundamentals & Cookbook』は130ページでUIやキューを扱い、『Data Engineering with Python』は356ページで版管理や本番配置まで扱います。価格は時期や販売店で変わるため、購入時に表示を確認してください。
刊行年も手がかりです。現行版の画面やProcessorの挙動はNiFi上で確かめ、公式ドキュメントで補ってください。概念とバージョン差を分けて読めます。
NiFi専門書
『NiFi Fundamentals & Cookbook』は2018年刊の130ページ。インストールとUI、サンプルDataFlowを起点にConnectionやキューまで扱います。画面上で順を追える構成です。
目次にはProcess Group、リトライ、レコード分割、Controller Services、監視、Reporting Taskも並びます。短い本ですが、フロー作成後に見る内容まで含まれています。

NiFi Fundamentals & Cookbook: 9-Use Cases, Covering Various Scenarios and Components
HadoopExam Learning Resources
Amazonで見る『Mastering Apache NiFi』は2024年6月刊で122ページ。初回DataFlowや性能調整、クラスタリングに加え、カスタムProcessorやControllerの拡張とセキュリティも扱います。基礎から応用へ範囲を広げた構成です。
Mastering Apache NiFi: From Basics to Advanced Data Integration: A Comprehensive Guide for Data Professionals
Independently Published
Amazonで探す『Advanced Data Streaming with Apache NiFi』は2024年10月刊で250ページ。NiFiのアーキテクチャやProcessor、フローの管理とルーティング、Expression Languageとセキュリティを扱います。実例とトラブルシューティングも含み、設計や障害対応の題材を読めます。
Advanced Data Streaming with Apache NiFi: Engineering Real-Time Data Pipelines for Professionals
Independently Published
Amazonで探す運用まで扱う本
『Data Engineering with Python』は2020年刊の356ページ。データ工学の原則を主にNiFiで説明し、ファイルやデータベースとの連携からパイプライン構築まで扱います。著者はPaul Crickardです。
NiFi Registryによる版管理や監視、ログの確認に触れ、本番配置とクラスタ構築も扱います。個別Processorの説明に加えて、開発から運用へ移る工程も追えます。
Pythonやデータモデルも含みます。NiFi単体の機能リファレンスとは役割が異なり、データエンジニアリング全体の中でNiFiを位置づける内容です。運用上の判断まで見渡せます。

Data Engineering with Python: Work with Massive Datasets to Design Data Models and Automate Data Pipelines Using Python
Packt Publishing
Amazonで見るデータフローの骨格
NiFiでは、ProcessorがFlowFileを受け取り、内容や属性を扱って次へ渡します。ProcessorとConnectionを結ぶとデータフローになり、画面上で処理の流れを追えます。
FlowFileにはデータ本体と属性があります。属性にはファイル名や取り込み時刻などを持たせられ、本体とは別に条件判定へ使える場面もあります。まず二つを分けて考えると整理しやすいですね。
Connectionにはキューがあり、後続Processorが処理するまでFlowFileを保持します。上流と下流の速度差を受け止める場所です。滞留が続いたら件数、容量、流入量を確認します。
たとえばファイルを受け取り、属性を整えてから条件に応じて保存先を分けます。Processor間の受け渡しが設計図になるので、各区間に入力の検査、変換、出力のどれを担わせるか決めておくと流れを追いやすくなります。
Processorの役割
Processorは、データを取り込んだり変換したり、条件で分岐して外部へ出力したりします。GetFileでローカルのファイルを受け取り、属性や内容を整えて保存先へ渡す構成が一例です。
出力先はRelationshipで分かれます。成功と失敗のFlowFileを別の経路に送り、失敗分を再試行または隔離へ回す形もあります。失敗経路を用意しておくと対象を見失いにくくなります。
属性による判定とレコード内容の判定は分けて考えます。ファイル名や取り込み元なら属性を使い、CSV列の値にはレコード向けProcessorを組み合わせます。これで条件の置き場所が明確になります。
Expression Languageは属性値をProcessorの設定に埋め込み、ファイル名や時刻に応じて処理する場面で使えます。設定が増えると追跡が難しくなるため、共通値とフロー固有の値を分けると保守しやすいですね。
連携の境界設計
受信側と送信側で形式が異なると、連携前の確認が必要です。CSVをデータベースへ入れる例では、文字コードや区切り文字を確かめます。列名と必須値もそろえてから取り込みます。
Record ReaderやRecord WriterなどのController Servicesを使うと、レコード形式の読み書きを共有設定にできます。同じ定義をフローごとに重ねずに済みます。参照先を変更すると複数のフローに影響するため、更新範囲を確認してください。
送信先が一時停止したりデータを再送したりすると、同じ内容が重複することもあります。重複を許すかキーで判定するか、送信先にも冪等性を持たせるかを決めてからリトライを設計します。
不正なレコードを全体の失敗にするか、その行だけ別経路へ送るかで現場の負担は変わります。エラー内容と元データを後から確認できる形で残せば、修正後の再処理につながります。
運用の見どころ
キューの滞留は送信先の遅延や上流の急増を示す手がかりです。NiFiのバックプレッシャー設定では、しきい値を超えたときに上流の処理を抑えられ、フロー全体への波及を抑制できます。
監視ではProcessorの稼働状態に加え、処理件数や失敗数、キューの増減を合わせて見ます。Reporting Taskなどを使って稼働状況を集める方法もあります。
障害時はProvenanceで、FlowFileが通ったProcessorや処理結果を追えます。確認できる履歴と保持期間は設定に左右されるため、調査に必要な情報を運用に合わせて定めます。
クラスタ構成やセキュリティでは、稼働中の障害と設定変更の反映を想定します。ノード停止時の影響や認証と権限を確認し、秘密情報の管理手順も定めれば、本番での想定外を減らせます。
設計で残す記録
用途ごとにProcess Groupを分け、入力・変換・出力の役割が名前から読めるようにします。画面を開いた人が流れを追いやすくなり、コメントやラベルは例外経路や外部依存の説明に役立ちます。
接続先や環境ごとに変わる値はフロー本体へ書き込まず、パラメータなどで管理します。開発環境と本番環境の差を一覧にすると、移行時の置き換え漏れや本番への誤送信を防ぎやすくなります。
NiFi Registryで版管理を行うと、フローの変更履歴を残し、以前の版との差分も追えます。担当者と変更内容に加え、変更理由や戻す条件まで記録しておくと、障害時の判断材料になります。
運用手順には再実行の条件と失敗データの所在を記します。通知先やロールバック方法も明記しましょう。特定の担当者だけが知る設定を減らし、手順書と実際のフローを定期的に照合することも必要です。
結論
データ連携の設計から監視、本番配置まで一冊で見渡すなら、『Data Engineering with Python』をおすすめします。NiFiを軸に運用工程まで扱うため、フローを現場へ載せる全体像をつかめます。
Processorやルーティング、実例とトラブル対応を重視する人には、『Advanced Data Streaming with Apache NiFi』をおすすめします。基本から拡張まで短く俯瞰したい場合は、『Mastering Apache NiFi』が合います。
NiFiの画面やキューを例で追うなら、『NiFi Fundamentals & Cookbook』を最初の一冊にすすめます。2018年刊のため、現在の設定名や挙動は現行環境と照合して読んでください。
Amazon の PC をスコア化してみた
Amazonにある8〜14インチの小型WindowsタブレットやノートPCを、スペック別にスコア化して比較・ランキング。

