2016-09-29 11 views
1

私は数時間を費やして、フローファイルの内容を保持するために式言語を理解しようとしました。私が試してみました>テスト用putSlack式のたるみコンテンツを取得する方法は?

-----------------------LOG1----------------------- 
Standard FlowFile Attributes 
Key: 'entryDate' 
     Value: 'Wed Sep 28 23:58:36 GMT 2016' 
Key: 'lineageStartDate' 
     Value: 'Wed Sep 28 23:58:36 GMT 2016' 
Key: 'fileSize' 
     Value: '70' 
FlowFile Attribute Map Content 
Key: 'filename' 
     Value: '43546945658800' 
Key: 'path' 
     Value: './' 
Key: 'uuid' 
     Value: 'd1e10623-0e90-44af-a620-6bed9776ed62' 
-----------------------LOG1----------------------- 
{ "_id" : { "$oid" : "57ec27ec35a0759d54fb465d" }, "keyA" : "valueA" } 

を置く - > LogAttributes - GetMongo:

${flowfile.content} 
${message} 
${payload} 
${msg} 
${flowfile-content} 
${content} 

答えて

5

は、私が持っているNifiを試してみて、学ぶための簡単なテストフローを持っています

フローファイルの内容にアクセスする表現言語はありません。大容量のペイロードを表現できるフローファイルの移動を容易にするために、属性とコンテンツは意図的に非常に異なって格納されています。式言語は属性のみで動作します。

ExtractTextプロセッサを使用して、フローファイルの全コンテンツを属性に抽出できます。ただし、コンテンツがメモリに適合する問題がないことがわかっている場合にのみ行うようにしてください。

+0

Apache NiFi表現言語(EL)ガイドには、すべてのEL関数とその使用方法が記載されています。https://nifi.apache.org/docs/nifi-docs/html/expression-language -guide.html – JDP10101

+0

@Bryanでは、属性全体の内容をどのように取得するかを教えてください。また返信する方法を教えてください。返信ありがとうございます。 –

+0

ExtractTextプロセッサを使用して、ユーザー定義のユーザー定義プロパティの名前はフローファイル属性になり、プロパティの値はコンテンツに適用される正規表現になります。したがって、foo =。*はすべてのコンテンツを選択し、fooという属性に入れます。 –

関連する問題