Uploaded image for project: 'Apache NiFi'
  1. Apache NiFi
  2. NIFI-1077

Allow ConvertCharacterSet to accept expression language

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • None
    • 0.4.0
    • None
    • None

    Description

      This issue arose from a user on the mailing list. It demonstrates the need to be able to use expression language to set the incoming (and potentially outgoing) character sets:

      I'm looking to process many files into common formats. The source files are coming in various character sets, mime types, and new line terminators.

      My thinking for a data flow was along these lines:

      GetFile (from many sub directories) ->
      ExecuteStreamCommand (file -i) ->
      ConvertCharacterSet (from previous command to utf8) ->
      ReplaceText (to change any \r\n into \n) ->
      PutFile (into a directory structure based on values found in the original file path and filename)

      Additional steps would be added for archiving a copy of the original, converting xml files, etc.

      Attempting to process these with Nifi leaves me confused as to how to process within the tool. If I want to ConvertCharacterSet, I have to know the input type. I setup a ExecuteStreamCommand to file -i ${absolute.path:append(${filename})} which returned the expected values. I don't see a way to turn these results into input for the processor, which doesn't accept expression language for that field.

      I also considered ConvertCSVToAvro as an interim step but notice the same issue. Any suggestions what this dataflow should look like?

      Attachments

        Activity

          People

            jpercivall Joe Percivall
            jpercivall Joe Percivall
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: