フェローズTechies - 私は時間に数千人のVIN#をhttps://vpic.nhtsa.dot.gov/api/に移動して、それぞれに関連付けられた機能の配列を解析する最良の方法を決定しようとしています。私はDecodeVINValuesBatchとDecodeVINという2つの方法を選択できます。バッチバージョンでは配列が可能ですが、DecodeVINは単一の参照です。 .NET/C#またはJBOSS + DBMS環境では、最初にDecodeVINValuesBatchを呼び出すことで問題に近づき、処理中にデータセットを書き出しながらvPICコレクションの各値Idを取得することがわかりました。私はセット理論がNiFiで何か異なっているとは思っていませんが、私はこのツールに慣れていませんし、連続入力ストリーム上で複数のセットを処理するという解決策を代表する例は見つかりません。これについての私の考えは、VIN#の+複数の他のデータをキャプチャするInvokeHTTPプロセッサから始め、データの複数の部分を別々のプロセッサに分割することです。これらのプロセッサの1つは、NHTSAへの外部呼び出しを行うためにVIN#を別のInvokeHTTPプロセッサに分離する必要があります。一方で、この文脈では、単一のDecodeVINがより良い選択であるように見える。一方、私はこのデータをどのように管理するのが最善か疑問に思っています。欠落したデータ、重複したものなどについて考えなければならないのですか?そのため、セットで処理する準備ができていますか?私は、生産品質のNiFiインプランテーションのための指針とベストプラクティスを探しています。何かアドバイス?Apache NiFi 1.3:vts#のセットをhtsa.dot.gov APIに渡す方法は?
答えて
リンク先のAPIを解決できませんが、このタイプの動作を実行するための一般的なパターンがあります。
InvokeHTTP
プロセッサは、リモートHTTPエンドポイントからデータを取得するのに最適な候補です。結果のフローファイルの内容には、HTTP呼び出しからの応答が含まれます。たとえば、JSON形式であるとします。利用できるAPIメソッドのあなたの説明の私の理解が正しければ、あなたは2つのオプションがあります。
DecodeVIN
は、単一のVIN値を受け入れ、特定のVINDecodeVINValuesBatch
のためのいくつかのデータセットを返しますが、VIN値の配列を受け取り、提供されたVINに対応するデータセットの配列を返します
「数千」のVIN /時間のスループットを達成しようとしている場合は、2番目のオプションをお勧めします。ネットワークオーバヘッドを大幅に削減し、レコードを分割する無駄な処理を削減します。
データの受信フォーマットをそのバッチメソッドの許容できる引数に変換するには、ConvertRecord
プロセッサと関連するRecordReader
およびRecordSetWriter
コントローラサービスファミリを調べる必要があります。この機能はApache NiFi 1.2.0(および1.3.0で強化されました)で導入され、任意のストリームのデータをフォーマットとは無関係に変換、照会、および強化することができます。ブライアン・ベンデはintroductory guide to using the components、マーク・ペインはrecord conversion processとrealtime querying、そしてRecordPath Guideは包括的な参考資料です。
バッチAPI用の適切なフォームに変換されたら、InvokeHTTP
を使用してルックアップ操作を実行し、HTTP応答を含む送信フローファイルを処理するか、新しいLookupRecord
プロセッサを使用できますScriptedLookupService
を含むLookupService
コントローラーサービスを使用して、任意のPython/Groovy/Rubyコードを書き出し操作(つまり、レコードを充実させるためのHTTP呼び出し)を行うことができます。
PartitionRecord
これは、いくつかのRecordPath式(不良なデータレコード、無関係なレコードなどのフィルタリング)に基づいて "類似"のレコードをグループ化することを可能にします。最後に、完全を期すために、あなたがに興味がある可能性がありQueryRecord
、SplitRecord
、およびUpdateRecord
プロセッサもあります。
前1.2.0に、ConvertCSVToJSON
とSplitText
のような個々の変換プロセッサは、おそらく必要があったが、この新しいパラダイムているだろうあなたのユースケースによく合うはずです。
- 1. NiFi rest apiにクレデンシャルを渡す方法
- 2. apache-nifi:タイムゾーンをcrontab文字列に渡す方法
- 3. Apache NiFiでexecuteSQLからSelectHiveQLに動的に値を渡す方法
- 4. ワイルドフライ10.1.0ファイナルApache Artemis 1.1.0をApache Artemis 1.3にアップデートする方法
- 5. Apache Nifi RouteHL7 Issue
- 6. apache nifiを使用してファイルを処理する方法は?
- 7. Apache NiFi - データWebサービス
- 8. Kerberized Hadoop ClusterにApache NiFiを設定する方法
- 9. Apache Nifi解凍
- 10. Apache nifi handlehttprequest/response
- 11. ListenHttp Apache NIfiジェネリックベースパス
- 12. Apache NIFI for ETL
- 13. Apache NifiでExecuteSQLプロセッサー
- 14. Apache NiFi:ホットフォルダのメカニズム
- 15. Apache NiFiのPutHDFSエラー
- 16. Apache Nifiプロセスプロパティですべての値を取得する方法
- 17. 2つのCSVをApache Nifiと結合する方法
- 18. 動的プロパティ値を渡してApache NiFiでジョブをスケジューリングする
- 19. Apache NiFiの開発ライフサイクル
- 20. apache nifiを使用してあるプロセッサから別のプロセッサに動的に値を渡す方法
- 21. Apache Nifiでのデータ集約
- 22. Apache Nifi InvokeHttpタイムアウトの問題
- 23. Apache BeamとApache Nifiの相違点
- 24. ReplaceText Apache NiFiでの使用
- 25. Airbnb AirflowとApache Nifi
- 26. Apache NiFiの属性の値を読み取る方法
- 27. apache nifi、hdfs parquet format
- 28. apache nifiで可能なシナリオ
- 29. Apache NifiのGetHTTPのダウンロードフォルダ
- 30. Excel API 1.3とWord API 1.3(単一のマニフェスト内)を必要とするマニフェスト「要件」を定義する方法
アンディ、お返事ありがとうございました。ほんとうにありがとう。私はあなたが参照したブログ/事例/プロセッサーファミリーを研究します。一貫性のために、私は元の投稿のURLを修正します。 – plditallo