2017-10-12 11 views
-1

私はNiFi WorkFlowを作成してCSVをJSONに変換しています。ConvertRecordsのJsonRecordSetWriter Controllerサービスの設定には助けが必要です。 "InferAvroSchema"と "UpdateAttribute"を使用してCSV文書のヘッダーからスキーマが推測されていますが、スキーマの名前が "ccr"(スキーマで選択した名前)のスキーマを見つけることができません。 "ccr"に設定された "schema.name"という名前のアトリビュートを追加するように設定されています(他のハウツーとガイダンスのガイダンスに従って)。JsonRecordSetWriterは、プロパティが追加されたコントローラサービス "AvroSchemaRegistry" "ccr"という名前で、このプロパティの値は "$ {inferred.avro.schema}"に設定されています。派生したスキーマを属性 "inferred.avro.schema"に含めて、 InferAvroSchemaのSchemaOutputDestinationプロパティは値 "flowfile-attribute"に設定され、推論されたavroスキーマが "inferred.avro.schema"という名前の属性に格納されます。本当に助けが必要なのです。プロジェクトの要件により、スキーマをテキストとして指定します。むしろ、同じワークフローで異なるヘッダーとデータコンテンツのCSVファイルを処理できるように、推論されたスキーマを使用したいと思います。あなたが私と共有できるどんな助けや指導も、私はそれを高く評価します。NiFiのJsonRecordSetWriterとAvroSchemaRegistryを設定するためのヘルプが必要です

+0

質問を実際に読めるように書式設定することを検討する必要があります。 – glennsl

答えて

0

スキーマアクセス戦略が「スキーマ名」に設定されているリーダーまたはライターがいる場合は、スキーマレジストリから名前でスキーマを取得する必要があり、スキーマレジストリは$ {inferred.avro .schema}はフローファイルにあります。

スキーマアクセス戦略を「スキーマテキスト」に、スキーマテキストフィールドに$ {inferred.avro.schema}を使用するように設定すると、着信フローファイルからスキーマテキストを動的に取得できます。この時点では、要件に基づいてスキーマレジストリを使用していません。

あなたのために働く可能性のある別のオプション... 1.4.0リリースでは、InferAvroSchemaを削除できます。 ConvertRecordをCsvReaderとともに使用し、スキーマアクセス戦略を「ヘッダーからの文字列フィールドを使用する」に設定すると、リーダーはスキーマを推論し、次にJsonRecordSetWriterでSchema Access Startegyを「Readerから継承」に設定して、スキーマは読者によって決定される。以前のリリースでは継承機能が存在しないため、これは1.4.0に依存しています。

+0

氏Bende、それは働いた!きれいで鮮明なガイダンスのために非常に非常にありがとう。ほんとうにありがとう! –

関連する問題