Skip to main content

ScriptedPartitionRecord

Description

Receives Record-oriented data (i.e., data that can be read by the configured Record Reader) and evaluates the user provided script against each record in the incoming flow file. Each record is then grouped with other records sharing the same partition and a FlowFile is created for each groups of records. Two records shares the same partition if the evaluation of the script results the same return value for both. Those will be considered as part of the same partition.

Tags

groovy, group, organize, partition, record, script, segment, split

Properties

In the list below required Properties are shown with an asterisk (*). Other properties are considered optional. The table also indicates any default values, and whether a property supports the NiFi Expression Language.

Display NameAPI NameDefault ValueAllowable ValuesDescription
Record Reader *Record ReaderController Service:
RecordReaderFactory

Implementations:
AvroReader
CEFReader
CSVReader
ExcelReader
GrokReader
JsonPathReader
JsonTreeReader
ReaderLookup
ScriptedReader
Syslog5424Reader
SyslogReader
WindowsEventLogReader
XMLReader
YamlTreeReader
The Record Reader to use parsing the incoming FlowFile into Records
Record Writer *Record WriterController Service:
RecordSetWriterFactory

Implementations:
AvroRecordSetWriter
CSVRecordSetWriter
FreeFormTextRecordSetWriter
JsonRecordSetWriter
RecordSetWriterLookup
ScriptedRecordSetWriter
XMLRecordSetWriter
The Record Writer to use for serializing Records after they have been transformed
Script Language *Script EngineGroovy
  • Clojure
  • Groovy
The Language to use for the script
Script BodyScript BodyBody of script to execute. Only one of Script File or Script Body may be used
Script FileScript FilePath to script file to execute. Only one of Script File or Script Body may be used

Supports Expression Language, using Environment variables.
Module DirectoryModule DirectoryComma-separated list of paths to files and/or directories which contain modules required by the script.

Supports Expression Language, using Environment variables.

Dynamic Properties

This component does not support dynamic properties.

Relationships

NameDescription
failureIf a FlowFile cannot be partitioned from the configured input format to the configured output format, the unchanged FlowFile will be routed to this relationship
originalOnce all records in an incoming FlowFile have been partitioned, the original FlowFile is routed to this relationship.
successFlowFiles that are successfully partitioned will be routed to this relationship

Reads Attributes

This processor does not read attributes.

Writes Attributes

NameDescription
fragment.countThe number of partitioned FlowFiles generated from the parent FlowFile
fragment.indexA one-up number that indicates the ordering of the partitioned FlowFiles that were created from a single parent FlowFile
mime.typeSets the mime.type attribute to the MIME Type specified by the Record Writer
partitionThe partition of the outgoing flow file. If the script indicates that the partition has a null value, the attribute will be set to the literal string "<null partition>" (without quotes). Otherwise, the attribute is set to the String representation of whatever value is returned by the script.
record.countThe number of records within the flow file.
record.error.messageThis attribute provides on failure the error message encountered by the Reader or Writer.

State Management

This component does not store state.

Restricted

Required PermissionExplanation
execute codeProvides operator the ability to execute arbitrary code assuming all permissions that NiFi has.

Input Requirement

Input requirements are not specified for this component.

System Resource Considerations

This component does not specify system resource considerations.

See Also

ScriptedFilterRecord, ScriptedTransformRecord, ScriptedValidateRecord