KafkaワークロードのためのRedPandaによるApache Nifiの使用


Apache NiFi システム間のデータの移動と処理のためのツールです.それは国家安全保障局(NSA)からの内部プロジェクトとして始まりました.技術移転プログラムを通して、NSAはApache Software Foundation(ASF)の下でオープンソースプロジェクトとしてそれをdeclasfiedしました.有向非循環グラフ(DAG)による一連の流れとしてのNIFIモデルデータのストリーミングデータは下流の一方向に流れることが許されています.水は川や川を越えてナイアガラ滝やそれに沿って流れる.
Nifiグラフは、グラフのノードおよびエッジに対応するプロセッサおよびコネクタから成る.プロセッサは、データ変換、フォーマット変換、メッセージルーティングなどの軽量処理を行うことができ、一方、コネクタはプロセッサ間のデータの動きをモデル化する.ソースとシンクと呼ばれる特殊なプロセッサでフローを開始し、終了します.ソースとシンクは、データベース、メッセージキュー、ファイルシステムのような外部システムへの統合ポイントです.

レッドパンダと比較


NIFIは機能的にパブ/サブメッセージのようなレッドパンダ、カフカ、パルサーと重複しています.これらのシステムの全ては、あるシステムから別のシステムへのデータの移動を容易にするように設計されていた.しかし、あなたのユースケースのために1を選ぶとき、考慮に入れる重要なデザイン違いが、あります.
NIFIはフロー中心であるこれは、ユーザーが視覚的にドラッグアンドドロップインターフェイスを使用してグラフを描画できるようにすることによって開発のないコード/低コードのスタイルを可能にします.ユーザーがグラフとしてデータフローを定義するので、Nifiはデータの起源を示している明示的な線を持ちます.また、市場で最も一般的に展開されたデータシステムと接続するためのプロセッサ(200 +)の広範なセットが付属しています.あなたが必要とするすべてはAからBまでデータを動かすことになっていて、多分、途中で若干の光データ変換をすることになっているならば、Nifiはあなたのニーズをカバーしました.
レッドパンダのようなパブ/サブシステムは話題の中心です:彼らは話題にデータを組織して、消費者から生産者を切り離します.クライアントが公開することができますし、任意のトピックを購読してください.これは、建築家に時間とともに進化することができるシステムを設計する能力を与えます.レッドパンダを一種のデータ交換として使用すると、建築家は、データベース、検索エンジン、または他のサービスのようなシステムコンポーネントを追加または削除することができます.歴史的なイベントデータを保存し、保持する機能は、監査やバックテストをサポートするイベントをリプレイできることを意味します.トピック中心アプローチはまた、マイクロサービスやイベント駆動アーキテクチャをサポートするメッセージバスを実装するために使用することができます.それは、開発者が彼らの個々の構成要素またはサービスに集中するのを許します.
一般に、NIFIは、既知のシステム間で移動する経路およびプロセスデータに対するビルディングフローのユーザエクスペリエンスに焦点を当てているが、RedPandaは、ゆるく結合されたシステム間のメッセージのためのコンジットとして、スループット、待ち時間、および耐久性のある保証を有するストリーミング基板である.

レッドパンダのニフィ


すべてが言った、それは実際に野生のパブ/サブシステムで使用されるNifiを参照してくださいに珍しいことではありません.Nifiは、著者がKafkaをエンドポイントとしてフローを開始または終了させるPublishkafkaとConsumekafkaプロセッサを含みます.典型的な統合では、KAFKAは中央のメッセージ・バスとして使われます、そして、Nifiはいろいろなシステムと中央のメッセージ・バスの間でデータを往復する「最後のマイル」コネクタとして使われます.これは特に2011年にリリースされたKafkaの初期の年であり、2014年にオープンソースされたNifiである.Kafka Connectは2016年に発表され、プラグインやコネクターなどのNifiによって以前にカバーされていた多くの機能を追加しました.新しいカフカ展開は、Kafka Connectを支持するかもしれませんが、Nifi + Kafkaの組み合わせは、両方の世界のベストを取得します:カフカから疎結合イベントバス、およびデータソースとシンクに接続するための低コードグラフィカルユーザーインターフェイスをNifiを介して.
Kafka生態系とRedPandaの互換性を与えられて、Nifiとそれをリンクするために、既存のPublishkafkaとConsumekafka統合点を使うことができます.我々は、提供しましたdocker-compose.yml 以下のファイルは非常に独自のレッドパンダNifiの統合をスピンすることができます.There are existing examples out there これは、KIFKAプロセッサを使用してNifi DataFlowを構築する方法を示します.ちょうど代わりに覚えて"redpanda:29092" あなたが例でカフカブローカーアドレスを指定するところ.
version: '3.7'
services:
  redpanda:
    image: docker.vectorized.io/vectorized/redpanda:v21.9.3
    command:
      - redpanda start
      - --smp 1
      - --memory 512M
      - --reserve-memory 0M
      - --overprovisioned
      - --node-id 0
      - --set redpanda.auto_create_topics_enabled=true
      - --kafka-addr PLAINTEXT://0.0.0.0:29092,OUTSIDE://0.0.0.0:9092
      - --advertise-kafka-addr PLAINTEXT://redpanda:29092,OUTSIDE://localhost:9092
    ports:
      - "9092:9092"
      - "9644:9644"
    volumes:
      - /var/lib/redpanda/data
  nifi:
    image: apache/nifi:latest
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      - NIFI_WEB_HTTP_PORT=8080

結論


Apache Nifiは今日市場で最も主要なデータシステムのためにコネクタの100 sを持ちます、そして、グラフィカルなインターフェースはそれを初心者データエンジニアにさえアクセスできます.RedPandaは、パフォーマンスと使いやすさに関して芸術の状態である永続的な、スケーラブルな、耐故障性のイベント記憶システムです.Nifiとレッドパンダ一緒に完全なストリーミングシステムを構築するための強力な、使いやすい組み合わせを作る.
かどうかを既存のNifi + Kafkaユーザーは、高速、シンプルで、カフカに信頼性の高い代替を探していますまたはレッドパンダのユーザーがKafkaコネクトへのGUI駆動の代替を探していますまたはスパイウェアによって除細された何かを理解しようとするスパイウェアには、この記事はあなたの現在および将来の努力に役立ちます願っています.あなたが米国の市民または居住者であるならば、あなたの税ドルがそれのためにすでに支払った時から、あなたはNifiを使うかもしれません.あなたは実際にはNifiを使用してお金を失うので、少なくともそれを試してみる.何のapropos、我々はテスラからの引用でこの記事を終えます:

It seems that I have always been ahead of my time. I had to wait nineteen years before Niagara was harnessed by my system. — Nikola Tesla


参考文献
  • Towards Data Science