Apache NiFi チュートリアル

⚡ スマートサマリー

Apache NiFiチュートリアルでは、システム間の自動化された信頼性の高いデータフローを実現するために設計されたオープンソースのデータ統合プラットフォームについて解説します。 Less本ドキュメントでは、アーキテクチャ、プロセッサ、用語、機能、インストール、ユースケース、利点、欠点、および本番環境への導入におけるベストプラクティスについて解説します。

  • 🔁 フローベース設計: NiFiは、視覚的なキャンバスを使用して、ルーティングされたキューで接続された構成可能なプロセッサからデータフローを構築します。
  • 🏗️ 分散 Archi構造: ウェブサーバー、フローコントローラー、リポジトリが連携することで、拡張性と耐障害性に優れたデータ転送を実現します。
  • ⚙️ 豊富なプロセッサライブラリ: 数百ものプロセッサが、Kafka、MQTT、REST API、データベース、ファイルシステム、クラウドソースを処理している。
  • 🔒 強力なセキュリティ: TLS、マルチテナント認証、および暗号化されたリポジトリは、企業データガバナンスを強化する。
  • 📊 エンドツーエンドの来歴管理: すべてのフローファイルは trac監査、デバッグ、コンプライアンスのために、発信元から宛先まで転送されます。
  • 🤖 AIパイプライン対応: NiFiをLLMエンドポイントおよびベクトルデータベースと組み合わせることで、検索機能を強化した生成ワークフローを実現します。

Apache NiFi チュートリアル

Apache NiFi チュートリアルの概要

この Apache NiFi チュートリアルでは、基礎から高度なトピックまですべてを最初から網羅しています。NiFi の定義、歴史、アーキテクチャ、機能、インストール プロセス、ユース ケースなどの概念を学習します。また、Apache NiFi を使用する必要がある理由と、Apache NiFi を実行するためのベスト プラクティスも学習します。

Apache NiFi とは何ですか?

アパッチNiFi は、システム間のデータ フローを自動化および管理するためのオープン ソース ソフトウェアです。 これは、データを処理および配布するための強力で信頼性の高いシステムです。 データ フローを作成、監視、制御するための Web ベースのユーザー インターフェイスを提供します。 実行時にデータを変更するための、高度な構成と変更が可能なデータ フロー プロセスを備えています。

Apache NiFi は、カスタム コンポーネントの開発を通じて簡単に拡張できます。

Apache NIfi を使用する理由

Apache Nifi を使用する理由は次のとおりです。

  • データ インジェストを実行して、多数のデータ ソースからデータを NiFi に取り込み、フロー ファイルを作成できます。
  • リアルタイム制御を提供し、ソースと宛先間のデータの移動を管理するのに役立ちます。
  • エンタープライズレベルでのDataFlowの視覚化
  • 共通のツールと拡張機能を提供する
  • 既存のライブラリを活用し、 Java エコシステムの機能
  • 組織が Nifi を既存のインフラストラクチャと統合するのを支援します
  • NiFiは、データの配信を保証するクラスターでスケールアウトするように設計されています。
  • 洞察とインラインドキュメントを提供するフロー速報でパフォーマンスと動作を視覚化および監視します。
  • コンポーネントを個別に、またはグループ レベルで開始および停止するのに役立ちます。
  • Dataflow のリッスン、フェッチ、分割、集約、ルーティング、変換、ドラッグ アンド ドロップに役立ちます。

Apache NiFi の歴史

  • NSAでXNUMX年以上かけて開発
  • 2014年 - Apache Softwareに寄贈されました Foundation
  • 2015 - NiFi が Apache プロジェクト スイートの正式な一部となりました
  • それ以来、Apache NiFi は 6 ~ 8 週間ごとに新しいアップデートをリリースしています。

ニフィ Archi構造

Apache NiFi はよく考えられたアーキテクチャを備えています。外部ソースからデータが取得されると、Apache NiFi アーキテクチャ内で FlowFile として表現されます。

ニフィ Archi構造
ニフィ Archi構造

NiFiアーキテクチャの主要コンポーネントは次のとおりです。

Nifiコンポーネント 詳細説明
フローファイル FlowFileはオリジナルデータにメタ情報が付加されたものです。 CSV やその他のレコードベースのデータだけでなく、写真、ビデオ、オーディオ、その他のバイナリ データも処理できます。
フローファイルプロセッサ NiFi のデータ フローの構成要素として機能する作業を実行します。
フローコントローラー プロセスがどのように接続されているかを記録します。 すべてのプロセスが使用するスレッドとその割り当てを管理します。
ウェブサーバー Web サーバーは、NiFi の HTTP ベースのコマンドと API をホストします。
拡張 JVM 内で動作および実行される NiFi 拡張機能には多くの種類があります。
接続 キューを含むプロセッサと、データのルーティング先に影響を与える関係との間のリンクとして機能します。
背圧 キューに格納できるフローファイルの量やデータサイズを制御することで、システムのオーバーランを防ぎます。
プロセスグループ プロセス グループは、ポートを使用してデータを送受信するプロセスとその接続のセットです。
フローファイルリポジトリ FlowFileリポジトリでは、NiFiは track は、フロー内でアクティブな特定の FlowFile に関する詳細情報の状態を表します。
コンテンツリポジトリ コンテンツ リポジトリは、特定の FlowFile の実際のコンテンツ バイトが存在する領域です。
来歴リポジトリ 出所リポジトリは、すべての出所イベント データが収集される領域です。

Apache NiFi の機能

  • NiFiはキューに入れられたすべてのデータのバッファリングをサポートし、キューが指定された制限に達するとバックプレッシャーをかける機能を提供します。
  • NiFi では、XNUMX つ以上の優先順位付けスキームを設定できます。
  • 多くのデータソースに接続プロセッサを提供します
  • あらゆるデバイスをサポート Java
  • 接続が限られた場所に最適
  • トラブルシューティングとフローの最適化のサポート
  • ロールベースの認証/認可を提供します
  • 個々のファイルのダウンロード、回復、再生が可能
  • プロセッサー、コントローラー サービスなどを構築する
  • コンテンツの暗号化、安全なプロトコルを介した通信を提供します
  • 迅速な開発と効果的なテストを可能にします
  • 再利用して組み合わせることでより複雑なフローを作成できる、シンプルな単機能コンポーネントの開発を可能にします。
  • クラスローダーの分離を可能にし、依存関係の管理を容易にします。

Apache NiFi をインストールする方法

以下は、Apache NiFi インストールの段階的なプロセスです。

ステップ1) に行く リンク,

そして「購読を続ける」をクリックしてください

Apache NiFi をインストールする

ステップ2) 次のページで

「規約に同意する」をクリックします

Apache NiFi をインストールする

ステップ3) このページが表示されますが、

この商品をご購読いただきありがとうございます。 リクエストを処理中です。

Apache NiFi をインストールする

ステップ4) 5分後にページを更新してください。

「設定に進む」をクリックします

Apache NiFi をインストールする

ステップ5) 次のページで

設定をデフォルトのままにし、「起動を続ける」をクリックします。

Apache NiFi をインストールする

ステップ6) 次のページで

「起動」をクリックします。 キーの作成が必要になる場合があります

Apache NiFi をインストールする

ステップ7) この成功メッセージが表示されます。

おめでとうございます! このソフトウェアのインスタンスが EC2 に正常にデプロイされました。

Apache NiFi をインストールする

ステップ8) 注意、

EC2 インスタンスのインスタンス ID とパブリック DNS

Apache NiFi をインストールする

ステップ9) セキュリティグループでは、

すべてのトラフィック ルールを受信と送信に追加します

Apache NiFi をインストールする

ステップ10) Nifi にアクセスするには、

単に URL

http://publicdns:8080/nifi

私たちの場合は次のようになります

http://ec2-100-26-156-57.compute-1.amazonaws.com:8080/nifi/

ユーザー:管理者

パスワード : インスタンス ID

Apache NiFi をインストールする

ステップ11) ご覧のとおり、

NiFiのホーム画面

Apache NiFi をインストールする

Nifi の使用例

以下は、Apache NiFi の使用例のリストです。

業種 使用法
保険対応
  • リスクと引受業務の分析
  • クレーム分析
  • 従量制保険
  • 新製品の開発
ヘルスケア
  • 患者の単一ビュー
  • リアルタイムのバイタルサイン監視
  • EMRの最適化
  • サプライチェーンの最適化
テレコミュニケーション
  • 顧客の単一ビュー
  • CDR分析
  • 動的帯域幅割り当て
製造業
  • 予防メンテナンス
  • サプライチェーンの最適化
  • 品質管理
石油・ガス産業
  • リアルタイム監視
  • 単一ビュー Opera生産
  • 予測メンテナンス
  • ArchiVE と分析
  • 非構造化データの分類
金融
  • マネーロンダリング防止
  • 不正行為の検出
  • リスクデータ管理

Apache NiFi を実行するベスト プラクティス

  • NiFi でテスト/開発/運用環境を分離するのに最適
  • フローをプロセス グループに分割する必要があります
  • 命名規則を使用し、コメントとラベルを使用する
  • プロジェクトを取り込み、テスト、モニタリングの XNUMX つの部分に編成します
  • 変数には一意の名前を使用する

ニフィのデメリット

  • 正確なセキュリティとコンプライアンスの管理が必要
  • Apache NiFi を使用する場合は、基礎となるシステムをよく理解する必要があります
  • データの保管過程を維持する必要がある
  • トランスポート/メッセージングでは十分ではない可能性があります
  • データ アクセスのニーズが、転送に利用可能なリソースを超えています
  • すべてのデータが同じように作成されるわけではありません
  • SSL およびトピック レベルの認証では十分ではない可能性があります

よくあるご質問

NiFiは、ルーティングと変換機能を内蔵した、視覚的でローコードなデータフローを提供します。Kafkaはメッセージングの基盤であり、Airflowはバッチジョブをオーケストレーションします。NiFiは、Kafkaと下流の宛先間でデータを移動させることがよくあります。

はい。NiFiはストリーミングデータを取り込み、モデルのエンドポイントを呼び出し、予測結果をストレージにルーティングします。Kafka、MiNiFi、およびベクトルデータベースと連携することで、エンドツーエンドのAIおよび検索拡張型生成ワークフローを構築します。

AIツールは、プロセッサチェーンを提案したり、式言語のスニペットを生成したり、フローパターンを説明したりします。これにより開発が加速し、初心者でもNiFiの設定やルーティングロジックを理解しやすくなります。

FlowFileは、NiFi内を流れるデータです。コンテンツに加えて、メタデータ、データ系列、ルーティング情報などの属性が含まれており、プロセッサはデータフロー内で意思決定を行うためにこれらの情報を使用します。

NiFiは、TLS、マルチテナント認証、LDAP、Kerberos、OIDC、および暗号化リポジトリをサポートしています。ロールベースのポリシーにより、特定のデータフローの閲覧、変更、または操作を行えるユーザーを制限できます。

NiFiは、クラスタによる水平スケーリング、コアの追加による垂直スケーリング、およびバックプレッシャーキューによるスケーリングに対応しています。エッジに配置されたMiNiFiエージェントは、データを中央のNiFiクラスタにストリーミングします。

NiFiは、データフロー設計のための豊富なWeb UIを備えたフル機能のサーバーです。MiNiFiは、エッジで動作し、データをNiFiに転送する軽量エージェントです。

初心者は数日で最初のフローを構築できます。クラスタリング、セキュリティ、カスタムプロセッサ、高スループットチューニングを習得するには、2~4ヶ月の実務プロジェクト経験が必要です。