Skip to content

Instantly share code, notes, and snippets.

@jvwing
Last active August 11, 2019 17:02
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save jvwing/b7c60942443ba918781f0a9c6f2487e6 to your computer and use it in GitHub Desktop.
Save jvwing/b7c60942443ba918781f0a9c6f2487e6 to your computer and use it in GitHub Desktop.
Apache NiFi flow template for ingesting data to Amazon S3. See https://www.batchiq.com/s3-ingest-with-nifi.html for details.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><template><description></description><name>twitter_to_s3_sample_v1</name><snippet><connections><id>91f2ec79-3351-44eb-aa8a-b39623e71259</id><parentGroupId>8f183367-57f8-4340-8482-d246e37bb904</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>98a2973a-191b-4a6e-90f1-1b7ad12efe7e</groupId><id>dbd8bd4b-733f-43b3-b67b-bd2212598b10</id><type>INPUT_PORT</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><source><groupId>9c9d76ac-0ae2-4dee-92a3-a78ad2613342</groupId><id>cd683e79-2b95-4437-b7c8-4fce4ca8beeb</id><type>OUTPUT_PORT</type></source><zIndex>0</zIndex></connections><connections><id>21cc3ca7-8a0a-4a38-b113-0bdc9e0abe87</id><parentGroupId>8f183367-57f8-4340-8482-d246e37bb904</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>9c9d76ac-0ae2-4dee-92a3-a78ad2613342</groupId><id>282609ef-542a-4f79-841e-6a2d22405573</id><type>INPUT_PORT</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><source><groupId>fa5eddd0-16ef-49df-ae62-169692854d4a</groupId><id>94a1bf83-61cd-4ffc-b1b0-34d7b14f34d0</id><type>OUTPUT_PORT</type></source><zIndex>0</zIndex></connections><connections><id>93092930-e76d-4709-ab3e-80aad8294a13</id><parentGroupId>8f183367-57f8-4340-8482-d246e37bb904</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>328e6df9-ebb9-413e-a79a-682485504664</groupId><id>4a727943-d463-4e8a-894b-21c8a7fa39bc</id><type>INPUT_PORT</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><source><groupId>fa5eddd0-16ef-49df-ae62-169692854d4a</groupId><id>94a1bf83-61cd-4ffc-b1b0-34d7b14f34d0</id><type>OUTPUT_PORT</type></source><zIndex>0</zIndex></connections><connections><id>aae99cbc-f4c9-4f1f-8fb6-b7b2d9beedf5</id><parentGroupId>8f183367-57f8-4340-8482-d246e37bb904</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>98a2973a-191b-4a6e-90f1-1b7ad12efe7e</groupId><id>dbd8bd4b-733f-43b3-b67b-bd2212598b10</id><type>INPUT_PORT</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><source><groupId>328e6df9-ebb9-413e-a79a-682485504664</groupId><id>a3d48872-9d67-48fa-a121-093ff6a588fc</id><type>OUTPUT_PORT</type></source><zIndex>0</zIndex></connections><processGroups><id>fa5eddd0-16ef-49df-ae62-169692854d4a</id><parentGroupId>8f183367-57f8-4340-8482-d246e37bb904</parentGroupId><position><x>378.00000865860346</x><y>324.9618641052359</y></position><activeRemotePortCount>0</activeRemotePortCount><comments></comments><contents><connections><id>c94f253a-5da1-46ff-b100-aa0f69632b44</id><parentGroupId>fa5eddd0-16ef-49df-ae62-169692854d4a</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><bends><x>420.242037671091</x><y>691.1727426520209</y></bends><bends><x>420.242037671091</x><y>741.1727426520209</y></bends><destination><groupId>fa5eddd0-16ef-49df-ae62-169692854d4a</groupId><id>4fc241a8-d796-4452-beea-1022511887c7</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>failure</selectedRelationships><source><groupId>fa5eddd0-16ef-49df-ae62-169692854d4a</groupId><id>4fc241a8-d796-4452-beea-1022511887c7</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>de0f79a9-2e9c-4277-8da6-7fdb19abcdb6</id><parentGroupId>fa5eddd0-16ef-49df-ae62-169692854d4a</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>fa5eddd0-16ef-49df-ae62-169692854d4a</groupId><id>4fc241a8-d796-4452-beea-1022511887c7</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>matched</selectedRelationships><source><groupId>fa5eddd0-16ef-49df-ae62-169692854d4a</groupId><id>27fa568a-889d-47df-bc09-6e1fa9a39096</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>a12ac41c-7d6d-4769-9f73-0910886e8791</id><parentGroupId>fa5eddd0-16ef-49df-ae62-169692854d4a</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><bends><x>408.6621551513672</x><y>456.1316223144531</y></bends><bends><x>434.46588134765625</x><y>428.96978759765625</y></bends><destination><groupId>fa5eddd0-16ef-49df-ae62-169692854d4a</groupId><id>27fa568a-889d-47df-bc09-6e1fa9a39096</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>failure</selectedRelationships><source><groupId>fa5eddd0-16ef-49df-ae62-169692854d4a</groupId><id>27fa568a-889d-47df-bc09-6e1fa9a39096</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>0c73a12c-d2a0-43bd-970d-3a124f674d45</id><parentGroupId>fa5eddd0-16ef-49df-ae62-169692854d4a</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>fa5eddd0-16ef-49df-ae62-169692854d4a</groupId><id>94a1bf83-61cd-4ffc-b1b0-34d7b14f34d0</id><type>OUTPUT_PORT</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>unmatched</selectedRelationships><source><groupId>fa5eddd0-16ef-49df-ae62-169692854d4a</groupId><id>4fc241a8-d796-4452-beea-1022511887c7</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>b2b30979-30ea-4a92-aaed-0d7f1df933ac</id><parentGroupId>fa5eddd0-16ef-49df-ae62-169692854d4a</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><bends><x>405.9459686279297</x><y>488.7257995605469</y></bends><bends><x>435.823974609375</x><y>526.7523193359375</y></bends><destination><groupId>fa5eddd0-16ef-49df-ae62-169692854d4a</groupId><id>27fa568a-889d-47df-bc09-6e1fa9a39096</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>unmatched</selectedRelationships><source><groupId>fa5eddd0-16ef-49df-ae62-169692854d4a</groupId><id>27fa568a-889d-47df-bc09-6e1fa9a39096</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>32f399f6-744b-401f-9190-c0251b0d0aaf</id><parentGroupId>fa5eddd0-16ef-49df-ae62-169692854d4a</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>10000</backPressureObjectThreshold><destination><groupId>fa5eddd0-16ef-49df-ae62-169692854d4a</groupId><id>27fa568a-889d-47df-bc09-6e1fa9a39096</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>success</selectedRelationships><source><groupId>fa5eddd0-16ef-49df-ae62-169692854d4a</groupId><id>ffaccc3b-912f-45d0-a51c-5d612426f437</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><outputPorts><id>94a1bf83-61cd-4ffc-b1b0-34d7b14f34d0</id><parentGroupId>fa5eddd0-16ef-49df-ae62-169692854d4a</parentGroupId><position><x>86.3433716784889</x><y>900.3064340338365</y></position><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><name>JSON Tweets</name><state>STOPPED</state><type>OUTPUT_PORT</type></outputPorts><processors><id>4fc241a8-d796-4452-beea-1022511887c7</id><parentGroupId>fa5eddd0-16ef-49df-ae62-169692854d4a</parentGroupId><position><x>11.242037671090998</x><y>666.1727426520209</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Destination</key><value><allowableValues><displayName>flowfile-content</displayName><value>flowfile-content</value></allowableValues><allowableValues><displayName>flowfile-attribute</displayName><value>flowfile-attribute</value></allowableValues><defaultValue>flowfile-content</defaultValue><description>Indicates whether the results of the JsonPath evaluation are written to the FlowFile content or a FlowFile attribute; if using attribute, must specify the Attribute Name property. If set to flowfile-content, only one JsonPath may be specified, and the property name is ignored.</description><displayName>Destination</displayName><dynamic>false</dynamic><name>Destination</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Return Type</key><value><allowableValues><displayName>auto-detect</displayName><value>auto-detect</value></allowableValues><allowableValues><displayName>json</displayName><value>json</value></allowableValues><allowableValues><displayName>scalar</displayName><value>scalar</value></allowableValues><defaultValue>auto-detect</defaultValue><description>Indicates the desired return type of the JSON Path expressions. Selecting 'auto-detect' will set the return type to 'json' for a Destination of 'flowfile-content', and 'scalar' for a Destination of 'flowfile-attribute'.</description><displayName>Return Type</displayName><dynamic>false</dynamic><name>Return Type</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Path Not Found Behavior</key><value><allowableValues><displayName>warn</displayName><value>warn</value></allowableValues><allowableValues><displayName>ignore</displayName><value>ignore</value></allowableValues><defaultValue>ignore</defaultValue><description>Indicates how to handle missing JSON path expressions when destination is set to 'flowfile-attribute'. Selecting 'warn' will generate a warning when a JSON path expression is not found.</description><displayName>Path Not Found Behavior</displayName><dynamic>false</dynamic><name>Path Not Found Behavior</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Null Value Representation</key><value><allowableValues><displayName>empty string</displayName><value>empty string</value></allowableValues><allowableValues><displayName>the string 'null'</displayName><value>the string 'null'</value></allowableValues><defaultValue>empty string</defaultValue><description>Indicates the desired representation of JSON Path expressions resulting in a null value.</description><displayName>Null Value Representation</displayName><dynamic>false</dynamic><name>Null Value Representation</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>tweet.delete</key><value><description></description><displayName>tweet.delete</displayName><dynamic>true</dynamic><name>tweet.delete</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Destination</key><value>flowfile-content</value></entry><entry><key>Return Type</key><value>auto-detect</value></entry><entry><key>Path Not Found Behavior</key><value>ignore</value></entry><entry><key>Null Value Representation</key><value>empty string</value></entry><entry><key>tweet.delete</key><value>$.delete</value></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>0 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>Filter Out Delete Messages</name><relationships><autoTerminate>false</autoTerminate><description>FlowFiles are routed to this relationship when the JsonPath cannot be evaluated against the content of the FlowFile; for instance, if the FlowFile is not valid JSON</description><name>failure</name></relationships><relationships><autoTerminate>true</autoTerminate><description>FlowFiles are routed to this relationship when the JsonPath is successfully evaluated and the FlowFile is modified as a result</description><name>matched</name></relationships><relationships><autoTerminate>false</autoTerminate><description>FlowFiles are routed to this relationship when the JsonPath does not match the content of the FlowFile and the Destination is set to flowfile-content</description><name>unmatched</name></relationships><state>STOPPED</state><style/><supportsEventDriven>true</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.standard.EvaluateJsonPath</type></processors><processors><id>27fa568a-889d-47df-bc09-6e1fa9a39096</id><parentGroupId>fa5eddd0-16ef-49df-ae62-169692854d4a</parentGroupId><position><x>10.74173073451675</x><y>439.834695038532</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Destination</key><value><allowableValues><displayName>flowfile-content</displayName><value>flowfile-content</value></allowableValues><allowableValues><displayName>flowfile-attribute</displayName><value>flowfile-attribute</value></allowableValues><defaultValue>flowfile-content</defaultValue><description>Indicates whether the results of the JsonPath evaluation are written to the FlowFile content or a FlowFile attribute; if using attribute, must specify the Attribute Name property. If set to flowfile-content, only one JsonPath may be specified, and the property name is ignored.</description><displayName>Destination</displayName><dynamic>false</dynamic><name>Destination</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Return Type</key><value><allowableValues><displayName>auto-detect</displayName><value>auto-detect</value></allowableValues><allowableValues><displayName>json</displayName><value>json</value></allowableValues><allowableValues><displayName>scalar</displayName><value>scalar</value></allowableValues><defaultValue>auto-detect</defaultValue><description>Indicates the desired return type of the JSON Path expressions. Selecting 'auto-detect' will set the return type to 'json' for a Destination of 'flowfile-content', and 'scalar' for a Destination of 'flowfile-attribute'.</description><displayName>Return Type</displayName><dynamic>false</dynamic><name>Return Type</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Path Not Found Behavior</key><value><allowableValues><displayName>warn</displayName><value>warn</value></allowableValues><allowableValues><displayName>ignore</displayName><value>ignore</value></allowableValues><defaultValue>ignore</defaultValue><description>Indicates how to handle missing JSON path expressions when destination is set to 'flowfile-attribute'. Selecting 'warn' will generate a warning when a JSON path expression is not found.</description><displayName>Path Not Found Behavior</displayName><dynamic>false</dynamic><name>Path Not Found Behavior</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Null Value Representation</key><value><allowableValues><displayName>empty string</displayName><value>empty string</value></allowableValues><allowableValues><displayName>the string 'null'</displayName><value>the string 'null'</value></allowableValues><defaultValue>empty string</defaultValue><description>Indicates the desired representation of JSON Path expressions resulting in a null value.</description><displayName>Null Value Representation</displayName><dynamic>false</dynamic><name>Null Value Representation</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>filename</key><value><description></description><displayName>filename</displayName><dynamic>true</dynamic><name>filename</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>twitter.id</key><value><description></description><displayName>twitter.id</displayName><dynamic>true</dynamic><name>twitter.id</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Destination</key><value>flowfile-attribute</value></entry><entry><key>Return Type</key><value>auto-detect</value></entry><entry><key>Path Not Found Behavior</key><value>ignore</value></entry><entry><key>Null Value Representation</key><value>empty string</value></entry><entry><key>filename</key><value>$.id_str</value></entry><entry><key>twitter.id</key><value>$.id_str</value></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>0 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>Extract Twitter Attributes</name><relationships><autoTerminate>false</autoTerminate><description>FlowFiles are routed to this relationship when the JsonPath cannot be evaluated against the content of the FlowFile; for instance, if the FlowFile is not valid JSON</description><name>failure</name></relationships><relationships><autoTerminate>false</autoTerminate><description>FlowFiles are routed to this relationship when the JsonPath is successfully evaluated and the FlowFile is modified as a result</description><name>matched</name></relationships><relationships><autoTerminate>false</autoTerminate><description>FlowFiles are routed to this relationship when the JsonPath does not match the content of the FlowFile and the Destination is set to flowfile-content</description><name>unmatched</name></relationships><state>STOPPED</state><style/><supportsEventDriven>true</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.standard.EvaluateJsonPath</type></processors><processors><id>ffaccc3b-912f-45d0-a51c-5d612426f437</id><parentGroupId>fa5eddd0-16ef-49df-ae62-169692854d4a</parentGroupId><position><x>10.94777273671184</x><y>203.9234741910854</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Twitter Endpoint</key><value><allowableValues><description>The endpoint that provides public data, aka a 'garden hose'</description><displayName>Sample Endpoint</displayName><value>Sample Endpoint</value></allowableValues><allowableValues><description>The endpoint that provides access to all tweets</description><displayName>Firehose Endpoint</displayName><value>Firehose Endpoint</value></allowableValues><allowableValues><description>Endpoint that allows the stream to be filtered by specific terms or User IDs</description><displayName>Filter Endpoint</displayName><value>Filter Endpoint</value></allowableValues><defaultValue>Sample Endpoint</defaultValue><description>Specifies which endpoint data should be pulled from</description><displayName>Twitter Endpoint</displayName><dynamic>false</dynamic><name>Twitter Endpoint</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Consumer Key</key><value><description>The Consumer Key provided by Twitter</description><displayName>Consumer Key</displayName><dynamic>false</dynamic><name>Consumer Key</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Consumer Secret</key><value><description>The Consumer Secret provided by Twitter</description><displayName>Consumer Secret</displayName><dynamic>false</dynamic><name>Consumer Secret</name><required>true</required><sensitive>true</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Access Token</key><value><description>The Access Token provided by Twitter</description><displayName>Access Token</displayName><dynamic>false</dynamic><name>Access Token</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Access Token Secret</key><value><description>The Access Token Secret provided by Twitter</description><displayName>Access Token Secret</displayName><dynamic>false</dynamic><name>Access Token Secret</name><required>true</required><sensitive>true</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Languages</key><value><description>A comma-separated list of languages for which tweets should be fetched</description><displayName>Languages</displayName><dynamic>false</dynamic><name>Languages</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Terms to Filter On</key><value><description>A comma-separated list of terms to filter on. Ignored unless Endpoint is set to 'Filter Endpoint'. The filter works such that if any term matches, the status update will be retrieved; multiple terms separated by a space function as an 'AND'. I.e., 'it was, hello' will retrieve status updates that have either 'hello' or both 'it' AND 'was'</description><displayName>Terms to Filter On</displayName><dynamic>false</dynamic><name>Terms to Filter On</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>IDs to Follow</key><value><description>A comma-separated list of Twitter User ID's to follow. Ignored unless Endpoint is set to 'Filter Endpoint'.</description><displayName>IDs to Follow</displayName><dynamic>false</dynamic><name>IDs to Follow</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Locations to Filter On</key><value><description>A comma-separated list of coordinates specifying one or more bounding boxes to filter on.Each bounding box is specified by a pair of coordinates in the format: swLon,swLat,neLon,neLat. Multiple bounding boxes can be specified as such: swLon1,swLat1,neLon1,neLat1,swLon2,swLat2,neLon2,neLat2.Ignored unless Endpoint is set to 'Filter Endpoint'.</description><displayName>Locations to Filter On</displayName><dynamic>false</dynamic><name>Locations to Filter On</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Twitter Endpoint</key><value>Sample Endpoint</value></entry><entry><key>Consumer Key</key><value>consumer key here</value></entry><entry><key>Consumer Secret</key></entry><entry><key>Access Token</key><value>access token here</value></entry><entry><key>Access Token Secret</key></entry><entry><key>Languages</key><value>en</value></entry><entry><key>Terms to Filter On</key></entry><entry><key>IDs to Follow</key></entry><entry><key>Locations to Filter On</key></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>0 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>GetTwitter</name><relationships><autoTerminate>false</autoTerminate><description>All status updates will be routed to this relationship</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>false</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.twitter.GetTwitter</type></processors></contents><disabledCount>0</disabledCount><inactiveRemotePortCount>0</inactiveRemotePortCount><inputPortCount>0</inputPortCount><invalidCount>1</invalidCount><name>Twitter Data Source</name><outputPortCount>1</outputPortCount><parent><id>8f183367-57f8-4340-8482-d246e37bb904</id><name>template fixer</name><parent><id>45fb6d32-3584-4ea7-a43d-a3b590911cac</id><name>Data Collection 0.7.0</name></parent></parent><runningCount>0</runningCount><stoppedCount>3</stoppedCount></processGroups><processGroups><id>328e6df9-ebb9-413e-a79a-682485504664</id><parentGroupId>8f183367-57f8-4340-8482-d246e37bb904</parentGroupId><position><x>955.3789055048705</x><y>548.633046165814</y></position><activeRemotePortCount>0</activeRemotePortCount><comments></comments><contents><connections><id>ad105d28-a7cc-456a-81ae-581389f9330c</id><parentGroupId>328e6df9-ebb9-413e-a79a-682485504664</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>328e6df9-ebb9-413e-a79a-682485504664</groupId><id>a3d48872-9d67-48fa-a121-093ff6a588fc</id><type>OUTPUT_PORT</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>success</selectedRelationships><source><groupId>328e6df9-ebb9-413e-a79a-682485504664</groupId><id>f717ffdb-e8bf-4bc7-929a-815ae58c2618</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>aa1c991f-f0b1-4c4c-994f-a945178d9742</id><parentGroupId>328e6df9-ebb9-413e-a79a-682485504664</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>328e6df9-ebb9-413e-a79a-682485504664</groupId><id>5370e9e9-7d1f-4ee1-95fb-795de0c0a317</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>merged</selectedRelationships><source><groupId>328e6df9-ebb9-413e-a79a-682485504664</groupId><id>66bb744b-ce72-47cf-b2ef-0d1bd1d8b4dd</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>b05a3a48-0a9c-4b7f-b229-e6740918a000</id><parentGroupId>328e6df9-ebb9-413e-a79a-682485504664</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><bends><x>847.4540324145</x><y>383.81666868639826</y></bends><bends><x>863.6905517578125</x><y>437.48541259765625</y></bends><destination><groupId>328e6df9-ebb9-413e-a79a-682485504664</groupId><id>5370e9e9-7d1f-4ee1-95fb-795de0c0a317</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>failure</selectedRelationships><source><groupId>328e6df9-ebb9-413e-a79a-682485504664</groupId><id>5370e9e9-7d1f-4ee1-95fb-795de0c0a317</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>7417862b-f8ca-4dc2-bdf0-c976832aa1bc</id><parentGroupId>328e6df9-ebb9-413e-a79a-682485504664</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><bends><x>847.5376985562763</x><y>153.47405755803362</y></bends><bends><x>866.0</x><y>209.0</y></bends><destination><groupId>328e6df9-ebb9-413e-a79a-682485504664</groupId><id>66bb744b-ce72-47cf-b2ef-0d1bd1d8b4dd</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>failure</selectedRelationships><source><groupId>328e6df9-ebb9-413e-a79a-682485504664</groupId><id>66bb744b-ce72-47cf-b2ef-0d1bd1d8b4dd</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>006b6bc0-917a-4fed-9d67-bfb783bdd5fd</id><parentGroupId>328e6df9-ebb9-413e-a79a-682485504664</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>328e6df9-ebb9-413e-a79a-682485504664</groupId><id>66bb744b-ce72-47cf-b2ef-0d1bd1d8b4dd</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><source><groupId>328e6df9-ebb9-413e-a79a-682485504664</groupId><id>4a727943-d463-4e8a-894b-21c8a7fa39bc</id><type>INPUT_PORT</type></source><zIndex>0</zIndex></connections><connections><id>a7347374-c078-47ad-96a3-399a8ae502b9</id><parentGroupId>328e6df9-ebb9-413e-a79a-682485504664</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>328e6df9-ebb9-413e-a79a-682485504664</groupId><id>f717ffdb-e8bf-4bc7-929a-815ae58c2618</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>success</selectedRelationships><source><groupId>328e6df9-ebb9-413e-a79a-682485504664</groupId><id>5370e9e9-7d1f-4ee1-95fb-795de0c0a317</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><inputPorts><id>4a727943-d463-4e8a-894b-21c8a7fa39bc</id><parentGroupId>328e6df9-ebb9-413e-a79a-682485504664</parentGroupId><position><x>514.0630484928632</x><y>-13.485805194461179</y></position><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><name>Raw JSON Tweets</name><state>STOPPED</state><type>INPUT_PORT</type></inputPorts><outputPorts><id>a3d48872-9d67-48fa-a121-093ff6a588fc</id><parentGroupId>328e6df9-ebb9-413e-a79a-682485504664</parentGroupId><position><x>512.9999381413007</x><y>780.6131002496841</y></position><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><name>Raw JSON Tweet Bundles</name><state>STOPPED</state><type>OUTPUT_PORT</type></outputPorts><processors><id>66bb744b-ce72-47cf-b2ef-0d1bd1d8b4dd</id><parentGroupId>328e6df9-ebb9-413e-a79a-682485504664</parentGroupId><position><x>438.53769855627627</x><y>128.47405755803362</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Merge Strategy</key><value><allowableValues><description>Generates 'bins' of FlowFiles and fills each bin as full as possible. FlowFiles are placed into a bin based on their size and optionally their attributes (if the &lt;Correlation Attribute&gt; property is set)</description><displayName>Bin-Packing Algorithm</displayName><value>Bin-Packing Algorithm</value></allowableValues><allowableValues><description>Combines fragments that are associated by attributes back into a single cohesive FlowFile. If using this strategy, all FlowFiles must have the attributes &lt;fragment.identifier&gt;, &lt;fragment.count&gt;, and &lt;fragment.index&gt; or alternatively (for backward compatibility purposes) &lt;segment.identifier&gt;, &lt;segment.count&gt;, and &lt;segment.index&gt;. All FlowFiles with the same value for &quot;fragment.identifier&quot; will be grouped together. All FlowFiles in this group must have the same value for the &quot;fragment.count&quot; attribute. All FlowFiles in this group must have a unique value for the &quot;fragment.index&quot; attribute between 0 and the value of the &quot;fragment.count&quot; attribute.</description><displayName>Defragment</displayName><value>Defragment</value></allowableValues><defaultValue>Bin-Packing Algorithm</defaultValue><description>Specifies the algorithm used to merge content. The 'Defragment' algorithm combines fragments that are associated by attributes back into a single cohesive FlowFile. The 'Bin-Packing Algorithm' generates a FlowFile populated by arbitrarily chosen FlowFiles</description><displayName>Merge Strategy</displayName><dynamic>false</dynamic><name>Merge Strategy</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Merge Format</key><value><allowableValues><description>A bin of FlowFiles will be combined into a single TAR file. The FlowFiles' &lt;path&gt; attribute will be used to create a directory in the TAR file if the &lt;Keep Paths&gt; property is set to true; otherwise, all FlowFiles will be added at the root of the TAR file. If a FlowFile has an attribute named &lt;tar.permissions&gt; that is 3 characters, each between 0-7, that attribute will be used as the TAR entry's 'mode'.</description><displayName>TAR</displayName><value>TAR</value></allowableValues><allowableValues><description>A bin of FlowFiles will be combined into a single ZIP file. The FlowFiles' &lt;path&gt; attribute will be used to create a directory in the ZIP file if the &lt;Keep Paths&gt; property is set to true; otherwise, all FlowFiles will be added at the root of the ZIP file. The &lt;Compression Level&gt; property indicates the ZIP compression to use.</description><displayName>ZIP</displayName><value>ZIP</value></allowableValues><allowableValues><description>A bin of FlowFiles will be combined into a single Version 3 FlowFile Stream</description><displayName>FlowFile Stream, v3</displayName><value>FlowFile Stream, v3</value></allowableValues><allowableValues><description>A bin of FlowFiles will be combined into a single Version 2 FlowFile Stream</description><displayName>FlowFile Stream, v2</displayName><value>FlowFile Stream, v2</value></allowableValues><allowableValues><description>A bin of FlowFiles will be combined into a single Version 1 FlowFile Package</description><displayName>FlowFile Tar, v1</displayName><value>FlowFile Tar, v1</value></allowableValues><allowableValues><description>The contents of all FlowFiles will be concatenated together into a single FlowFile</description><displayName>Binary Concatenation</displayName><value>Binary Concatenation</value></allowableValues><allowableValues><description>The Avro contents of all FlowFiles will be concatenated together into a single FlowFile</description><displayName>Avro</displayName><value>Avro</value></allowableValues><defaultValue>Binary Concatenation</defaultValue><description>Determines the format that will be used to merge the content.</description><displayName>Merge Format</displayName><dynamic>false</dynamic><name>Merge Format</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Attribute Strategy</key><value><allowableValues><displayName>Keep Only Common Attributes</displayName><value>Keep Only Common Attributes</value></allowableValues><allowableValues><displayName>Keep All Unique Attributes</displayName><value>Keep All Unique Attributes</value></allowableValues><defaultValue>Keep Only Common Attributes</defaultValue><description>Determines which FlowFile attributes should be added to the bundle. If 'Keep All Unique Attributes' is selected, any attribute on any FlowFile that gets bundled will be kept unless its value conflicts with the value from another FlowFile. If 'Keep Only Common Attributes' is selected, only the attributes that exist on all FlowFiles in the bundle, with the same value, will be preserved.</description><displayName>Attribute Strategy</displayName><dynamic>false</dynamic><name>Attribute Strategy</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Correlation Attribute Name</key><value><description>If specified, like FlowFiles will be binned together, where 'like FlowFiles' means FlowFiles that have the same value for this Attribute. If not specified, FlowFiles are bundled by the order in which they are pulled from the queue.</description><displayName>Correlation Attribute Name</displayName><dynamic>false</dynamic><name>Correlation Attribute Name</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>Minimum Number of Entries</key><value><defaultValue>1</defaultValue><description>The minimum number of files to include in a bundle</description><displayName>Minimum Number of Entries</displayName><dynamic>false</dynamic><name>Minimum Number of Entries</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Maximum Number of Entries</key><value><description>The maximum number of files to include in a bundle. If not specified, there is no maximum.</description><displayName>Maximum Number of Entries</displayName><dynamic>false</dynamic><name>Maximum Number of Entries</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Minimum Group Size</key><value><defaultValue>0 B</defaultValue><description>The minimum size of for the bundle</description><displayName>Minimum Group Size</displayName><dynamic>false</dynamic><name>Minimum Group Size</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Maximum Group Size</key><value><description>The maximum size for the bundle. If not specified, there is no maximum.</description><displayName>Maximum Group Size</displayName><dynamic>false</dynamic><name>Maximum Group Size</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Max Bin Age</key><value><description>The maximum age of a Bin that will trigger a Bin to be complete. Expected format is &lt;duration&gt; &lt;time unit&gt; where &lt;duration&gt; is a positive integer and time unit is one of seconds, minutes, hours</description><displayName>Max Bin Age</displayName><dynamic>false</dynamic><name>Max Bin Age</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Maximum number of Bins</key><value><defaultValue>100</defaultValue><description>Specifies the maximum number of bins that can be held in memory at any one time</description><displayName>Maximum number of Bins</displayName><dynamic>false</dynamic><name>Maximum number of Bins</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Delimiter Strategy</key><value><allowableValues><description>The values of Header, Footer, and Demarcator will be retrieved from the contents of a file</description><displayName>Filename</displayName><value>Filename</value></allowableValues><allowableValues><description>The values of Header, Footer, and Demarcator will be specified as property values</description><displayName>Text</displayName><value>Text</value></allowableValues><defaultValue>Filename</defaultValue><description>Determines if Header, Footer, and Demarcator should point to files containing the respective content, or if the values of the properties should be used as the content.</description><displayName>Delimiter Strategy</displayName><dynamic>false</dynamic><name>Delimiter Strategy</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Header File</key><value><description>Filename specifying the header to use. If not specified, no header is supplied. This property is valid only when using the binary-concatenation merge strategy; otherwise, it is ignored.</description><displayName>Header</displayName><dynamic>false</dynamic><name>Header File</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>Footer File</key><value><description>Filename specifying the footer to use. If not specified, no footer is supplied. This property is valid only when using the binary-concatenation merge strategy; otherwise, it is ignored.</description><displayName>Footer</displayName><dynamic>false</dynamic><name>Footer File</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>Demarcator File</key><value><description>Filename specifying the demarcator to use. If not specified, no demarcator is supplied. This property is valid only when using the binary-concatenation merge strategy; otherwise, it is ignored.</description><displayName>Demarcator</displayName><dynamic>false</dynamic><name>Demarcator File</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>Compression Level</key><value><allowableValues><displayName>0</displayName><value>0</value></allowableValues><allowableValues><displayName>1</displayName><value>1</value></allowableValues><allowableValues><displayName>2</displayName><value>2</value></allowableValues><allowableValues><displayName>3</displayName><value>3</value></allowableValues><allowableValues><displayName>4</displayName><value>4</value></allowableValues><allowableValues><displayName>5</displayName><value>5</value></allowableValues><allowableValues><displayName>6</displayName><value>6</value></allowableValues><allowableValues><displayName>7</displayName><value>7</value></allowableValues><allowableValues><displayName>8</displayName><value>8</value></allowableValues><allowableValues><displayName>9</displayName><value>9</value></allowableValues><defaultValue>1</defaultValue><description>Specifies the compression level to use when using the Zip Merge Format; if not using the Zip Merge Format, this value is ignored</description><displayName>Compression Level</displayName><dynamic>false</dynamic><name>Compression Level</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Keep Path</key><value><allowableValues><displayName>true</displayName><value>true</value></allowableValues><allowableValues><displayName>false</displayName><value>false</value></allowableValues><defaultValue>false</defaultValue><description>If using the Zip or Tar Merge Format, specifies whether or not the FlowFiles' paths should be included in their entry names; if using other merge strategy, this value is ignored</description><displayName>Keep Path</displayName><dynamic>false</dynamic><name>Keep Path</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Merge Strategy</key><value>Bin-Packing Algorithm</value></entry><entry><key>Merge Format</key><value>Binary Concatenation</value></entry><entry><key>Attribute Strategy</key><value>Keep Only Common Attributes</value></entry><entry><key>Correlation Attribute Name</key></entry><entry><key>Minimum Number of Entries</key><value>100000</value></entry><entry><key>Maximum Number of Entries</key><value>100000</value></entry><entry><key>Minimum Group Size</key><value>0 B</value></entry><entry><key>Maximum Group Size</key></entry><entry><key>Max Bin Age</key><value>1 hour</value></entry><entry><key>Maximum number of Bins</key><value>100</value></entry><entry><key>Delimiter Strategy</key><value>Text</value></entry><entry><key>Header File</key></entry><entry><key>Footer File</key></entry><entry><key>Demarcator File</key><value>
</value></entry><entry><key>Compression Level</key><value>1</value></entry><entry><key>Keep Path</key><value>false</value></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>0 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>Merge JSON Lines</name><relationships><autoTerminate>false</autoTerminate><description>If the bundle cannot be created, all FlowFiles that would have been used to created the bundle will be transferred to failure</description><name>failure</name></relationships><relationships><autoTerminate>false</autoTerminate><description>The FlowFile containing the merged content</description><name>merged</name></relationships><relationships><autoTerminate>true</autoTerminate><description>The FlowFiles that were used to create the bundle</description><name>original</name></relationships><state>STOPPED</state><style/><supportsEventDriven>false</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.standard.MergeContent</type></processors><processors><id>f717ffdb-e8bf-4bc7-929a-815ae58c2618</id><parentGroupId>328e6df9-ebb9-413e-a79a-682485504664</parentGroupId><position><x>439.06317056317585</x><y>565.6908895563247</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Delete Attributes Expression</key><value><description>Regular expression for attributes to be deleted from flowfiles.</description><displayName>Delete Attributes Expression</displayName><dynamic>false</dynamic><name>Delete Attributes Expression</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>bundle.type</key><value><description></description><displayName>bundle.type</displayName><dynamic>true</dynamic><name>bundle.type</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>format</key><value><description></description><displayName>format</displayName><dynamic>true</dynamic><name>format</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Delete Attributes Expression</key></entry><entry><key>bundle.type</key><value>raw</value></entry><entry><key>format</key><value>json.gz</value></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>0 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>Update Raw Bundle Attributes</name><relationships><autoTerminate>false</autoTerminate><description>All FlowFiles are routed to this relationship</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>true</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.attributes.UpdateAttribute</type></processors><processors><id>5370e9e9-7d1f-4ee1-95fb-795de0c0a317</id><parentGroupId>328e6df9-ebb9-413e-a79a-682485504664</parentGroupId><position><x>438.45403241450003</x><y>358.81666868639826</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Mode</key><value><allowableValues><displayName>compress</displayName><value>compress</value></allowableValues><allowableValues><displayName>decompress</displayName><value>decompress</value></allowableValues><defaultValue>compress</defaultValue><description>Indicates whether the processor should compress content or decompress content. Must be either 'compress' or 'decompress'</description><displayName>Mode</displayName><dynamic>false</dynamic><name>Mode</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Compression Format</key><value><allowableValues><displayName>use mime.type attribute</displayName><value>use mime.type attribute</value></allowableValues><allowableValues><displayName>gzip</displayName><value>gzip</value></allowableValues><allowableValues><displayName>bzip2</displayName><value>bzip2</value></allowableValues><allowableValues><displayName>xz-lzma2</displayName><value>xz-lzma2</value></allowableValues><allowableValues><displayName>lzma</displayName><value>lzma</value></allowableValues><allowableValues><displayName>snappy</displayName><value>snappy</value></allowableValues><allowableValues><displayName>snappy framed</displayName><value>snappy framed</value></allowableValues><defaultValue>use mime.type attribute</defaultValue><description>The compression format to use. Valid values are: GZIP, BZIP2, XZ-LZMA2, LZMA, Snappy, and Snappy Framed</description><displayName>Compression Format</displayName><dynamic>false</dynamic><name>Compression Format</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Compression Level</key><value><allowableValues><displayName>0</displayName><value>0</value></allowableValues><allowableValues><displayName>1</displayName><value>1</value></allowableValues><allowableValues><displayName>2</displayName><value>2</value></allowableValues><allowableValues><displayName>3</displayName><value>3</value></allowableValues><allowableValues><displayName>4</displayName><value>4</value></allowableValues><allowableValues><displayName>5</displayName><value>5</value></allowableValues><allowableValues><displayName>6</displayName><value>6</value></allowableValues><allowableValues><displayName>7</displayName><value>7</value></allowableValues><allowableValues><displayName>8</displayName><value>8</value></allowableValues><allowableValues><displayName>9</displayName><value>9</value></allowableValues><defaultValue>1</defaultValue><description>The compression level to use; this is valid only when using GZIP compression. A lower value results in faster processing but less compression; a value of 0 indicates no compression but simply archiving</description><displayName>Compression Level</displayName><dynamic>false</dynamic><name>Compression Level</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Update Filename</key><value><allowableValues><displayName>true</displayName><value>true</value></allowableValues><allowableValues><displayName>false</displayName><value>false</value></allowableValues><defaultValue>false</defaultValue><description>If true, will remove the filename extension when decompressing data (only if the extension indicates the appropriate compression format) and add the appropriate extension when compressing data</description><displayName>Update Filename</displayName><dynamic>false</dynamic><name>Update Filename</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Mode</key></entry><entry><key>Compression Format</key><value>gzip</value></entry><entry><key>Compression Level</key></entry><entry><key>Update Filename</key></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>0 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>Compress Bundle</name><relationships><autoTerminate>false</autoTerminate><description>FlowFiles will be transferred to the failure relationship if they fail to compress/decompress</description><name>failure</name></relationships><relationships><autoTerminate>false</autoTerminate><description>FlowFiles will be transferred to the success relationship after successfully being compressed or decompressed</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>true</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.standard.CompressContent</type></processors></contents><disabledCount>0</disabledCount><inactiveRemotePortCount>0</inactiveRemotePortCount><inputPortCount>1</inputPortCount><invalidCount>0</invalidCount><name>Aggregate JSON Raw Tweets</name><outputPortCount>1</outputPortCount><parent><id>8f183367-57f8-4340-8482-d246e37bb904</id><name>template fixer</name><parent><id>45fb6d32-3584-4ea7-a43d-a3b590911cac</id><name>Data Collection 0.7.0</name></parent></parent><runningCount>0</runningCount><stoppedCount>5</stoppedCount></processGroups><processGroups><id>9c9d76ac-0ae2-4dee-92a3-a78ad2613342</id><parentGroupId>8f183367-57f8-4340-8482-d246e37bb904</parentGroupId><position><x>954.6229046987069</x><y>105.99999598666679</y></position><activeRemotePortCount>0</activeRemotePortCount><comments></comments><contents><connections><id>24423664-ad34-40b4-bf55-9be1b9417e67</id><parentGroupId>9c9d76ac-0ae2-4dee-92a3-a78ad2613342</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>9c9d76ac-0ae2-4dee-92a3-a78ad2613342</groupId><id>761bf391-858d-4e1a-93f2-4be22e1decbe</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><source><groupId>9c9d76ac-0ae2-4dee-92a3-a78ad2613342</groupId><id>282609ef-542a-4f79-841e-6a2d22405573</id><type>INPUT_PORT</type></source><zIndex>0</zIndex></connections><connections><id>bdde5cdf-4ff2-4913-9a3d-7f776da314e2</id><parentGroupId>9c9d76ac-0ae2-4dee-92a3-a78ad2613342</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>9c9d76ac-0ae2-4dee-92a3-a78ad2613342</groupId><id>9e997488-66ef-41b1-8aee-a3741e57cc06</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>merged</selectedRelationships><source><groupId>9c9d76ac-0ae2-4dee-92a3-a78ad2613342</groupId><id>2de9ed50-0031-4dc7-ab4b-a39b959c1589</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>961dca07-70c5-47bb-a09c-38a788beffc4</id><parentGroupId>9c9d76ac-0ae2-4dee-92a3-a78ad2613342</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>9c9d76ac-0ae2-4dee-92a3-a78ad2613342</groupId><id>2de9ed50-0031-4dc7-ab4b-a39b959c1589</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>success</selectedRelationships><source><groupId>9c9d76ac-0ae2-4dee-92a3-a78ad2613342</groupId><id>761bf391-858d-4e1a-93f2-4be22e1decbe</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>8039122f-0061-4efa-aa96-d6a82a304354</id><parentGroupId>9c9d76ac-0ae2-4dee-92a3-a78ad2613342</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><bends><x>651.5529104199583</x><y>915.0236305427052</y></bends><bends><x>669.5545654296875</x><y>973.6538696289062</y></bends><destination><groupId>9c9d76ac-0ae2-4dee-92a3-a78ad2613342</groupId><id>2de9ed50-0031-4dc7-ab4b-a39b959c1589</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>failure</selectedRelationships><source><groupId>9c9d76ac-0ae2-4dee-92a3-a78ad2613342</groupId><id>2de9ed50-0031-4dc7-ab4b-a39b959c1589</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>c3392a53-ab63-47ea-b868-bee634da97b5</id><parentGroupId>9c9d76ac-0ae2-4dee-92a3-a78ad2613342</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>9c9d76ac-0ae2-4dee-92a3-a78ad2613342</groupId><id>1773f86d-8122-481c-8964-4f8428600983</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>failure</selectedRelationships><selectedRelationships>incompatible</selectedRelationships><source><groupId>9c9d76ac-0ae2-4dee-92a3-a78ad2613342</groupId><id>761bf391-858d-4e1a-93f2-4be22e1decbe</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>d4d95bc2-b8eb-41c8-a299-b95478635d22</id><parentGroupId>9c9d76ac-0ae2-4dee-92a3-a78ad2613342</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>9c9d76ac-0ae2-4dee-92a3-a78ad2613342</groupId><id>cd683e79-2b95-4437-b7c8-4fce4ca8beeb</id><type>OUTPUT_PORT</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>success</selectedRelationships><source><groupId>9c9d76ac-0ae2-4dee-92a3-a78ad2613342</groupId><id>9e997488-66ef-41b1-8aee-a3741e57cc06</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><inputPorts><id>282609ef-542a-4f79-841e-6a2d22405573</id><parentGroupId>9c9d76ac-0ae2-4dee-92a3-a78ad2613342</parentGroupId><position><x>83.1186117128243</x><y>536.6299317066355</y></position><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><name>Raw JSON Tweets</name><state>STOPPED</state><type>INPUT_PORT</type></inputPorts><outputPorts><id>cd683e79-2b95-4437-b7c8-4fce4ca8beeb</id><parentGroupId>9c9d76ac-0ae2-4dee-92a3-a78ad2613342</parentGroupId><position><x>318.20840748630235</x><y>1297.4562611730312</y></position><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><name>Avro Tweet Summary Bundles</name><state>STOPPED</state><type>OUTPUT_PORT</type></outputPorts><processors><id>761bf391-858d-4e1a-93f2-4be22e1decbe</id><parentGroupId>9c9d76ac-0ae2-4dee-92a3-a78ad2613342</parentGroupId><position><x>8.058154911176757</x><y>681.6071719655308</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Hadoop configuration files</key><value><description>A comma-separated list of Hadoop configuration files</description><displayName>Hadoop configuration files</displayName><dynamic>false</dynamic><name>Hadoop configuration files</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Record schema</key><value><description>Outgoing Avro schema for each record created from a JSON object</description><displayName>Record schema</displayName><dynamic>false</dynamic><name>Record schema</name><required>true</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Hadoop configuration files</key></entry><entry><key>Record schema</key><value>{
&quot;namespace&quot;: &quot;com.batchiq.samples.tweet&quot;,
&quot;type&quot;: &quot;record&quot;,
&quot;name&quot;: &quot;tweetsummary&quot;,
&quot;fields&quot;: [
{&quot;name&quot;: &quot;id&quot;, &quot;type&quot;: &quot;long&quot;},
{&quot;name&quot;: &quot;id_str&quot;, &quot;type&quot;: &quot;string&quot;},
{&quot;name&quot;: &quot;created_at&quot;, &quot;type&quot;: &quot;string&quot;},
{&quot;name&quot;: &quot;timestamp_ms&quot;, &quot;type&quot;: &quot;string&quot;},
{&quot;name&quot;: &quot;lang&quot;, &quot;type&quot;: &quot;string&quot;},
{&quot;name&quot;: &quot;text&quot;, &quot;type&quot;: &quot;string&quot;},
{&quot;name&quot;: &quot;user&quot;, &quot;type&quot;: {
&quot;type&quot;: &quot;record&quot;,
&quot;name&quot;: &quot;User&quot;,
&quot;fields&quot;: [
{&quot;name&quot;: &quot;id&quot;, &quot;type&quot;: &quot;long&quot;},
{&quot;name&quot;: &quot;id_str&quot;, &quot;type&quot;: &quot;string&quot;},
{&quot;name&quot;: &quot;name&quot;, &quot;type&quot;: &quot;string&quot;},
{&quot;name&quot;: &quot;screen_name&quot;, &quot;type&quot;: &quot;string&quot;},
{&quot;name&quot;: &quot;location&quot;, &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;]},
{&quot;name&quot;: &quot;url&quot;, &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;]},
{&quot;name&quot;: &quot;description&quot;, &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;]},
{&quot;name&quot;: &quot;followers_count&quot;, &quot;type&quot;: &quot;long&quot;},
{&quot;name&quot;: &quot;friends_count&quot;, &quot;type&quot;: &quot;long&quot;}
]
}},
{&quot;name&quot;: &quot;entities&quot;, &quot;type&quot;: {
&quot;type&quot;: &quot;record&quot;,
&quot;name&quot;: &quot;Entities&quot;,
&quot;fields&quot;: [
{&quot;name&quot;: &quot;hashtags&quot;, &quot;type&quot;: {
&quot;type&quot;: &quot;array&quot;, &quot;items&quot;: {
&quot;type&quot;: &quot;record&quot;,
&quot;name&quot;: &quot;Hashtag&quot;,
&quot;fields&quot;: [
{&quot;name&quot;: &quot;text&quot;, &quot;type&quot;: &quot;string&quot;}
]
}
}},
{&quot;name&quot;: &quot;user_mentions&quot;, &quot;type&quot;: {
&quot;type&quot;: &quot;array&quot;, &quot;items&quot;: {
&quot;type&quot;: &quot;record&quot;,
&quot;name&quot;: &quot;UserMention&quot;,
&quot;fields&quot;: [
{&quot;name&quot;: &quot;id&quot;, &quot;type&quot;: &quot;long&quot;},
{&quot;name&quot;: &quot;id_str&quot;, &quot;type&quot;: &quot;string&quot;},
{&quot;name&quot;: &quot;screen_name&quot;, &quot;type&quot;: &quot;string&quot;},
{&quot;name&quot;: &quot;name&quot;, &quot;type&quot;: &quot;string&quot;}
]
}
}}
]
}}
]
}</value></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>0 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>Convert JSON Tweets To Avro Summary</name><relationships><autoTerminate>false</autoTerminate><description>JSON content that could not be processed</description><name>failure</name></relationships><relationships><autoTerminate>false</autoTerminate><description>JSON content that could not be converted</description><name>incompatible</name></relationships><relationships><autoTerminate>false</autoTerminate><description>Avro content that was converted successfully from JSON</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>false</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.kite.ConvertJSONToAvro</type></processors><processors><id>2de9ed50-0031-4dc7-ab4b-a39b959c1589</id><parentGroupId>9c9d76ac-0ae2-4dee-92a3-a78ad2613342</parentGroupId><position><x>242.55291041995827</x><y>890.0236305427052</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Merge Strategy</key><value><allowableValues><description>Generates 'bins' of FlowFiles and fills each bin as full as possible. FlowFiles are placed into a bin based on their size and optionally their attributes (if the &lt;Correlation Attribute&gt; property is set)</description><displayName>Bin-Packing Algorithm</displayName><value>Bin-Packing Algorithm</value></allowableValues><allowableValues><description>Combines fragments that are associated by attributes back into a single cohesive FlowFile. If using this strategy, all FlowFiles must have the attributes &lt;fragment.identifier&gt;, &lt;fragment.count&gt;, and &lt;fragment.index&gt; or alternatively (for backward compatibility purposes) &lt;segment.identifier&gt;, &lt;segment.count&gt;, and &lt;segment.index&gt;. All FlowFiles with the same value for &quot;fragment.identifier&quot; will be grouped together. All FlowFiles in this group must have the same value for the &quot;fragment.count&quot; attribute. All FlowFiles in this group must have a unique value for the &quot;fragment.index&quot; attribute between 0 and the value of the &quot;fragment.count&quot; attribute.</description><displayName>Defragment</displayName><value>Defragment</value></allowableValues><defaultValue>Bin-Packing Algorithm</defaultValue><description>Specifies the algorithm used to merge content. The 'Defragment' algorithm combines fragments that are associated by attributes back into a single cohesive FlowFile. The 'Bin-Packing Algorithm' generates a FlowFile populated by arbitrarily chosen FlowFiles</description><displayName>Merge Strategy</displayName><dynamic>false</dynamic><name>Merge Strategy</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Merge Format</key><value><allowableValues><description>A bin of FlowFiles will be combined into a single TAR file. The FlowFiles' &lt;path&gt; attribute will be used to create a directory in the TAR file if the &lt;Keep Paths&gt; property is set to true; otherwise, all FlowFiles will be added at the root of the TAR file. If a FlowFile has an attribute named &lt;tar.permissions&gt; that is 3 characters, each between 0-7, that attribute will be used as the TAR entry's 'mode'.</description><displayName>TAR</displayName><value>TAR</value></allowableValues><allowableValues><description>A bin of FlowFiles will be combined into a single ZIP file. The FlowFiles' &lt;path&gt; attribute will be used to create a directory in the ZIP file if the &lt;Keep Paths&gt; property is set to true; otherwise, all FlowFiles will be added at the root of the ZIP file. The &lt;Compression Level&gt; property indicates the ZIP compression to use.</description><displayName>ZIP</displayName><value>ZIP</value></allowableValues><allowableValues><description>A bin of FlowFiles will be combined into a single Version 3 FlowFile Stream</description><displayName>FlowFile Stream, v3</displayName><value>FlowFile Stream, v3</value></allowableValues><allowableValues><description>A bin of FlowFiles will be combined into a single Version 2 FlowFile Stream</description><displayName>FlowFile Stream, v2</displayName><value>FlowFile Stream, v2</value></allowableValues><allowableValues><description>A bin of FlowFiles will be combined into a single Version 1 FlowFile Package</description><displayName>FlowFile Tar, v1</displayName><value>FlowFile Tar, v1</value></allowableValues><allowableValues><description>The contents of all FlowFiles will be concatenated together into a single FlowFile</description><displayName>Binary Concatenation</displayName><value>Binary Concatenation</value></allowableValues><allowableValues><description>The Avro contents of all FlowFiles will be concatenated together into a single FlowFile</description><displayName>Avro</displayName><value>Avro</value></allowableValues><defaultValue>Binary Concatenation</defaultValue><description>Determines the format that will be used to merge the content.</description><displayName>Merge Format</displayName><dynamic>false</dynamic><name>Merge Format</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Attribute Strategy</key><value><allowableValues><displayName>Keep Only Common Attributes</displayName><value>Keep Only Common Attributes</value></allowableValues><allowableValues><displayName>Keep All Unique Attributes</displayName><value>Keep All Unique Attributes</value></allowableValues><defaultValue>Keep Only Common Attributes</defaultValue><description>Determines which FlowFile attributes should be added to the bundle. If 'Keep All Unique Attributes' is selected, any attribute on any FlowFile that gets bundled will be kept unless its value conflicts with the value from another FlowFile. If 'Keep Only Common Attributes' is selected, only the attributes that exist on all FlowFiles in the bundle, with the same value, will be preserved.</description><displayName>Attribute Strategy</displayName><dynamic>false</dynamic><name>Attribute Strategy</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Correlation Attribute Name</key><value><description>If specified, like FlowFiles will be binned together, where 'like FlowFiles' means FlowFiles that have the same value for this Attribute. If not specified, FlowFiles are bundled by the order in which they are pulled from the queue.</description><displayName>Correlation Attribute Name</displayName><dynamic>false</dynamic><name>Correlation Attribute Name</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>Minimum Number of Entries</key><value><defaultValue>1</defaultValue><description>The minimum number of files to include in a bundle</description><displayName>Minimum Number of Entries</displayName><dynamic>false</dynamic><name>Minimum Number of Entries</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Maximum Number of Entries</key><value><description>The maximum number of files to include in a bundle. If not specified, there is no maximum.</description><displayName>Maximum Number of Entries</displayName><dynamic>false</dynamic><name>Maximum Number of Entries</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Minimum Group Size</key><value><defaultValue>0 B</defaultValue><description>The minimum size of for the bundle</description><displayName>Minimum Group Size</displayName><dynamic>false</dynamic><name>Minimum Group Size</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Maximum Group Size</key><value><description>The maximum size for the bundle. If not specified, there is no maximum.</description><displayName>Maximum Group Size</displayName><dynamic>false</dynamic><name>Maximum Group Size</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Max Bin Age</key><value><description>The maximum age of a Bin that will trigger a Bin to be complete. Expected format is &lt;duration&gt; &lt;time unit&gt; where &lt;duration&gt; is a positive integer and time unit is one of seconds, minutes, hours</description><displayName>Max Bin Age</displayName><dynamic>false</dynamic><name>Max Bin Age</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Maximum number of Bins</key><value><defaultValue>100</defaultValue><description>Specifies the maximum number of bins that can be held in memory at any one time</description><displayName>Maximum number of Bins</displayName><dynamic>false</dynamic><name>Maximum number of Bins</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Delimiter Strategy</key><value><allowableValues><description>The values of Header, Footer, and Demarcator will be retrieved from the contents of a file</description><displayName>Filename</displayName><value>Filename</value></allowableValues><allowableValues><description>The values of Header, Footer, and Demarcator will be specified as property values</description><displayName>Text</displayName><value>Text</value></allowableValues><defaultValue>Filename</defaultValue><description>Determines if Header, Footer, and Demarcator should point to files containing the respective content, or if the values of the properties should be used as the content.</description><displayName>Delimiter Strategy</displayName><dynamic>false</dynamic><name>Delimiter Strategy</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Header File</key><value><description>Filename specifying the header to use. If not specified, no header is supplied. This property is valid only when using the binary-concatenation merge strategy; otherwise, it is ignored.</description><displayName>Header</displayName><dynamic>false</dynamic><name>Header File</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>Footer File</key><value><description>Filename specifying the footer to use. If not specified, no footer is supplied. This property is valid only when using the binary-concatenation merge strategy; otherwise, it is ignored.</description><displayName>Footer</displayName><dynamic>false</dynamic><name>Footer File</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>Demarcator File</key><value><description>Filename specifying the demarcator to use. If not specified, no demarcator is supplied. This property is valid only when using the binary-concatenation merge strategy; otherwise, it is ignored.</description><displayName>Demarcator</displayName><dynamic>false</dynamic><name>Demarcator File</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>Compression Level</key><value><allowableValues><displayName>0</displayName><value>0</value></allowableValues><allowableValues><displayName>1</displayName><value>1</value></allowableValues><allowableValues><displayName>2</displayName><value>2</value></allowableValues><allowableValues><displayName>3</displayName><value>3</value></allowableValues><allowableValues><displayName>4</displayName><value>4</value></allowableValues><allowableValues><displayName>5</displayName><value>5</value></allowableValues><allowableValues><displayName>6</displayName><value>6</value></allowableValues><allowableValues><displayName>7</displayName><value>7</value></allowableValues><allowableValues><displayName>8</displayName><value>8</value></allowableValues><allowableValues><displayName>9</displayName><value>9</value></allowableValues><defaultValue>1</defaultValue><description>Specifies the compression level to use when using the Zip Merge Format; if not using the Zip Merge Format, this value is ignored</description><displayName>Compression Level</displayName><dynamic>false</dynamic><name>Compression Level</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Keep Path</key><value><allowableValues><displayName>true</displayName><value>true</value></allowableValues><allowableValues><displayName>false</displayName><value>false</value></allowableValues><defaultValue>false</defaultValue><description>If using the Zip or Tar Merge Format, specifies whether or not the FlowFiles' paths should be included in their entry names; if using other merge strategy, this value is ignored</description><displayName>Keep Path</displayName><dynamic>false</dynamic><name>Keep Path</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Merge Strategy</key><value>Bin-Packing Algorithm</value></entry><entry><key>Merge Format</key><value>Avro</value></entry><entry><key>Attribute Strategy</key><value>Keep Only Common Attributes</value></entry><entry><key>Correlation Attribute Name</key></entry><entry><key>Minimum Number of Entries</key><value>100000</value></entry><entry><key>Maximum Number of Entries</key><value>100000</value></entry><entry><key>Minimum Group Size</key><value>0 B</value></entry><entry><key>Maximum Group Size</key></entry><entry><key>Max Bin Age</key><value>15 min</value></entry><entry><key>Maximum number of Bins</key><value>100</value></entry><entry><key>Delimiter Strategy</key><value>Filename</value></entry><entry><key>Header File</key></entry><entry><key>Footer File</key></entry><entry><key>Demarcator File</key></entry><entry><key>Compression Level</key><value>1</value></entry><entry><key>Keep Path</key><value>false</value></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>0 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>Merge Avro Tweets</name><relationships><autoTerminate>false</autoTerminate><description>If the bundle cannot be created, all FlowFiles that would have been used to created the bundle will be transferred to failure</description><name>failure</name></relationships><relationships><autoTerminate>false</autoTerminate><description>The FlowFile containing the merged content</description><name>merged</name></relationships><relationships><autoTerminate>true</autoTerminate><description>The FlowFiles that were used to create the bundle</description><name>original</name></relationships><state>STOPPED</state><style/><supportsEventDriven>false</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.standard.MergeContent</type></processors><processors><id>9e997488-66ef-41b1-8aee-a3741e57cc06</id><parentGroupId>9c9d76ac-0ae2-4dee-92a3-a78ad2613342</parentGroupId><position><x>244.0668129293938</x><y>1092.9496534930786</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Delete Attributes Expression</key><value><description>Regular expression for attributes to be deleted from flowfiles.</description><displayName>Delete Attributes Expression</displayName><dynamic>false</dynamic><name>Delete Attributes Expression</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>bundle.type</key><value><description></description><displayName>bundle.type</displayName><dynamic>true</dynamic><name>bundle.type</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>format</key><value><description></description><displayName>format</displayName><dynamic>true</dynamic><name>format</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Delete Attributes Expression</key></entry><entry><key>bundle.type</key><value>summary</value></entry><entry><key>format</key><value>avro</value></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>0 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>Update Summary Bundle Attributes</name><relationships><autoTerminate>false</autoTerminate><description>All FlowFiles are routed to this relationship</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>true</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.attributes.UpdateAttribute</type></processors><processors><id>1773f86d-8122-481c-8964-4f8428600983</id><parentGroupId>9c9d76ac-0ae2-4dee-92a3-a78ad2613342</parentGroupId><position><x>-227.26987642019515</x><y>892.3907833957551</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Log Level</key><value><allowableValues><displayName>trace</displayName><value>trace</value></allowableValues><allowableValues><displayName>debug</displayName><value>debug</value></allowableValues><allowableValues><displayName>info</displayName><value>info</value></allowableValues><allowableValues><displayName>warn</displayName><value>warn</value></allowableValues><allowableValues><displayName>error</displayName><value>error</value></allowableValues><defaultValue>info</defaultValue><description>The Log Level to use when logging the Attributes</description><displayName>Log Level</displayName><dynamic>false</dynamic><name>Log Level</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Log Payload</key><value><allowableValues><displayName>true</displayName><value>true</value></allowableValues><allowableValues><displayName>false</displayName><value>false</value></allowableValues><defaultValue>false</defaultValue><description>If true, the FlowFile's payload will be logged, in addition to its attributes; otherwise, just the Attributes will be logged.</description><displayName>Log Payload</displayName><dynamic>false</dynamic><name>Log Payload</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Attributes to Log</key><value><description>A comma-separated list of Attributes to Log. If not specified, all attributes will be logged.</description><displayName>Attributes to Log</displayName><dynamic>false</dynamic><name>Attributes to Log</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Attributes to Ignore</key><value><description>A comma-separated list of Attributes to ignore. If not specified, no attributes will be ignored.</description><displayName>Attributes to Ignore</displayName><dynamic>false</dynamic><name>Attributes to Ignore</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Log prefix</key><value><description>Log prefix appended to the log lines. It helps to distinguish the output of multiple LogAttribute processors.</description><displayName>Log prefix</displayName><dynamic>false</dynamic><name>Log prefix</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Log Level</key><value>warn</value></entry><entry><key>Log Payload</key><value>false</value></entry><entry><key>Attributes to Log</key></entry><entry><key>Attributes to Ignore</key></entry><entry><key>Log prefix</key></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>0 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>Log Failed Avro Conversions</name><relationships><autoTerminate>true</autoTerminate><description>All FlowFiles are routed to this relationship</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>true</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.standard.LogAttribute</type></processors></contents><disabledCount>0</disabledCount><inactiveRemotePortCount>0</inactiveRemotePortCount><inputPortCount>1</inputPortCount><invalidCount>0</invalidCount><name>Aggregate Avro Summary Tweets</name><outputPortCount>1</outputPortCount><parent><id>8f183367-57f8-4340-8482-d246e37bb904</id><name>template fixer</name><parent><id>45fb6d32-3584-4ea7-a43d-a3b590911cac</id><name>Data Collection 0.7.0</name></parent></parent><runningCount>0</runningCount><stoppedCount>6</stoppedCount></processGroups><processGroups><id>98a2973a-191b-4a6e-90f1-1b7ad12efe7e</id><parentGroupId>8f183367-57f8-4340-8482-d246e37bb904</parentGroupId><position><x>1537.8624014054162</x><y>330.30959579544094</y></position><activeRemotePortCount>0</activeRemotePortCount><comments></comments><contents><connections><id>7b5a9338-6122-480c-bfa3-1c61682e6964</id><parentGroupId>98a2973a-191b-4a6e-90f1-1b7ad12efe7e</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><bends><x>1295.3222915671354</x><y>470.1856718657689</y></bends><bends><x>1295.3222915671354</x><y>520.1856718657689</y></bends><destination><groupId>98a2973a-191b-4a6e-90f1-1b7ad12efe7e</groupId><id>c706fd61-85ea-4a91-92fb-ba02f1b2d27d</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>failure</selectedRelationships><source><groupId>98a2973a-191b-4a6e-90f1-1b7ad12efe7e</groupId><id>c706fd61-85ea-4a91-92fb-ba02f1b2d27d</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>ea7f9096-93cb-4bbf-ad58-c67299283e65</id><parentGroupId>98a2973a-191b-4a6e-90f1-1b7ad12efe7e</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>98a2973a-191b-4a6e-90f1-1b7ad12efe7e</groupId><id>8c860048-0345-4524-bab9-6fd25df49f98</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>success</selectedRelationships><source><groupId>98a2973a-191b-4a6e-90f1-1b7ad12efe7e</groupId><id>c706fd61-85ea-4a91-92fb-ba02f1b2d27d</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>fd232965-b15c-466e-8b88-41936f741072</id><parentGroupId>98a2973a-191b-4a6e-90f1-1b7ad12efe7e</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>98a2973a-191b-4a6e-90f1-1b7ad12efe7e</groupId><id>c706fd61-85ea-4a91-92fb-ba02f1b2d27d</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>success</selectedRelationships><source><groupId>98a2973a-191b-4a6e-90f1-1b7ad12efe7e</groupId><id>9feb7b73-fc70-45d3-933b-4bde16be2e37</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>33367911-414a-49e6-9d30-af6be0670696</id><parentGroupId>98a2973a-191b-4a6e-90f1-1b7ad12efe7e</parentGroupId><backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>98a2973a-191b-4a6e-90f1-1b7ad12efe7e</groupId><id>9feb7b73-fc70-45d3-933b-4bde16be2e37</id><type>PROCESSOR</type></destination><flowFileExpiration>0 sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><source><groupId>98a2973a-191b-4a6e-90f1-1b7ad12efe7e</groupId><id>dbd8bd4b-733f-43b3-b67b-bd2212598b10</id><type>INPUT_PORT</type></source><zIndex>0</zIndex></connections><inputPorts><id>dbd8bd4b-733f-43b3-b67b-bd2212598b10</id><parentGroupId>98a2973a-191b-4a6e-90f1-1b7ad12efe7e</parentGroupId><position><x>960.0000259421354</x><y>102.62950096888574</y></position><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><name>Tweet Bundles</name><state>STOPPED</state><type>INPUT_PORT</type></inputPorts><processors><id>c706fd61-85ea-4a91-92fb-ba02f1b2d27d</id><parentGroupId>98a2973a-191b-4a6e-90f1-1b7ad12efe7e</parentGroupId><position><x>886.3222915671354</x><y>445.1856718657689</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>3</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Object Key</key><value><defaultValue>${filename}</defaultValue><description></description><displayName>Object Key</displayName><dynamic>false</dynamic><name>Object Key</name><required>true</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>Bucket</key><value><description></description><displayName>Bucket</displayName><dynamic>false</dynamic><name>Bucket</name><required>true</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>Access Key</key><value><description></description><displayName>Access Key</displayName><dynamic>false</dynamic><name>Access Key</name><required>false</required><sensitive>true</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>Secret Key</key><value><description></description><displayName>Secret Key</displayName><dynamic>false</dynamic><name>Secret Key</name><required>false</required><sensitive>true</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>Credentials File</key><value><description>Path to a file containing AWS access key and secret key in properties file format.</description><displayName>Credentials File</displayName><dynamic>false</dynamic><name>Credentials File</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>AWS Credentials Provider service</key><value><allowableValues><displayName>AWS Default Creds</displayName><value>a0252c49-b19a-439c-8a65-114e3462c569</value></allowableValues><allowableValues><displayName>AWS Default Creds</displayName><value>c95e17ce-4db2-4140-9244-eb1820fb1384</value></allowableValues><allowableValues><displayName>AWS Default Creds</displayName><value>77f2ed77-363e-448f-853a-139c12a90b4f</value></allowableValues><description>The Controller Service that is used to obtain aws credentials provider</description><displayName>AWS Credentials Provider service</displayName><dynamic>false</dynamic><identifiesControllerService>org.apache.nifi.processors.aws.credentials.provider.service.AWSCredentialsProviderService</identifiesControllerService><name>AWS Credentials Provider service</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Storage Class</key><value><allowableValues><displayName>Standard</displayName><value>Standard</value></allowableValues><allowableValues><displayName>ReducedRedundancy</displayName><value>ReducedRedundancy</value></allowableValues><defaultValue>Standard</defaultValue><description></description><displayName>Storage Class</displayName><dynamic>false</dynamic><name>Storage Class</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Region</key><value><allowableValues><description>us-gov-west-1</description><displayName>us-gov-west-1</displayName><value>us-gov-west-1</value></allowableValues><allowableValues><description>us-east-1</description><displayName>us-east-1</displayName><value>us-east-1</value></allowableValues><allowableValues><description>us-west-1</description><displayName>us-west-1</displayName><value>us-west-1</value></allowableValues><allowableValues><description>us-west-2</description><displayName>us-west-2</displayName><value>us-west-2</value></allowableValues><allowableValues><description>eu-west-1</description><displayName>eu-west-1</displayName><value>eu-west-1</value></allowableValues><allowableValues><description>eu-central-1</description><displayName>eu-central-1</displayName><value>eu-central-1</value></allowableValues><allowableValues><description>ap-southeast-1</description><displayName>ap-southeast-1</displayName><value>ap-southeast-1</value></allowableValues><allowableValues><description>ap-southeast-2</description><displayName>ap-southeast-2</displayName><value>ap-southeast-2</value></allowableValues><allowableValues><description>ap-northeast-1</description><displayName>ap-northeast-1</displayName><value>ap-northeast-1</value></allowableValues><allowableValues><description>sa-east-1</description><displayName>sa-east-1</displayName><value>sa-east-1</value></allowableValues><allowableValues><description>cn-north-1</description><displayName>cn-north-1</displayName><value>cn-north-1</value></allowableValues><defaultValue>us-west-2</defaultValue><description></description><displayName>Region</displayName><dynamic>false</dynamic><name>Region</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Communications Timeout</key><value><defaultValue>30 secs</defaultValue><description></description><displayName>Communications Timeout</displayName><dynamic>false</dynamic><name>Communications Timeout</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Expiration Time Rule</key><value><description></description><displayName>Expiration Time Rule</displayName><dynamic>false</dynamic><name>Expiration Time Rule</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>FullControl User List</key><value><defaultValue>${s3.permissions.full.users}</defaultValue><description>A comma-separated list of Amazon User ID's or E-mail addresses that specifies who should have Full Control for an object</description><displayName>FullControl User List</displayName><dynamic>false</dynamic><name>FullControl User List</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>Read Permission User List</key><value><defaultValue>${s3.permissions.read.users}</defaultValue><description>A comma-separated list of Amazon User ID's or E-mail addresses that specifies who should have Read Access for an object</description><displayName>Read Permission User List</displayName><dynamic>false</dynamic><name>Read Permission User List</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>Write Permission User List</key><value><defaultValue>${s3.permissions.write.users}</defaultValue><description>A comma-separated list of Amazon User ID's or E-mail addresses that specifies who should have Write Access for an object</description><displayName>Write Permission User List</displayName><dynamic>false</dynamic><name>Write Permission User List</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>Read ACL User List</key><value><defaultValue>${s3.permissions.readacl.users}</defaultValue><description>A comma-separated list of Amazon User ID's or E-mail addresses that specifies who should have permissions to read the Access Control List for an object</description><displayName>Read ACL User List</displayName><dynamic>false</dynamic><name>Read ACL User List</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>Write ACL User List</key><value><defaultValue>${s3.permissions.writeacl.users}</defaultValue><description>A comma-separated list of Amazon User ID's or E-mail addresses that specifies who should have permissions to change the Access Control List for an object</description><displayName>Write ACL User List</displayName><dynamic>false</dynamic><name>Write ACL User List</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>Owner</key><value><defaultValue>${s3.owner}</defaultValue><description>The Amazon ID to use for the object's owner</description><displayName>Owner</displayName><dynamic>false</dynamic><name>Owner</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>SSL Context Service</key><value><allowableValues><displayName>StandardSSLContextService</displayName><value>07b21a3a-6a33-43fb-bcaf-94b91d72832c</value></allowableValues><description>Specifies an optional SSL Context Service that, if provided, will be used to create connections</description><displayName>SSL Context Service</displayName><dynamic>false</dynamic><identifiesControllerService>org.apache.nifi.ssl.SSLContextService</identifiesControllerService><name>SSL Context Service</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Endpoint Override URL</key><value><description>Endpoint URL to use instead of the AWS default including scheme, host, port, and path. The AWS libraries select an endpoint URL based on the AWS region, but this property overrides the selected endpoint URL, allowing use with other S3-compatible endpoints.</description><displayName>Endpoint Override URL</displayName><dynamic>false</dynamic><name>Endpoint Override URL</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Multipart Threshold</key><value><defaultValue>5 GB</defaultValue><description>Specifies the file size threshold for switch from the PutS3Object API to the PutS3MultipartUpload API. Flow files bigger than this limit will be sent using the stateful multipart process.
The valid range is 50MB to 5GB.</description><displayName>Multipart Threshold</displayName><dynamic>false</dynamic><name>Multipart Threshold</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Multipart Part Size</key><value><defaultValue>5 GB</defaultValue><description>Specifies the part size for use when the PutS3Multipart Upload API is used.
Flow files will be broken into chunks of this size for the upload process, but the last part sent can be smaller since it is not padded.
The valid range is 50MB to 5GB.</description><displayName>Multipart Part Size</displayName><dynamic>false</dynamic><name>Multipart Part Size</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Multipart Upload AgeOff Interval</key><value><defaultValue>60 min</defaultValue><description>Specifies the interval at which existing multipart uploads in AWS S3 will be evaluated for ageoff. When processor is triggered it will initiate the ageoff evaluation if this interval has been exceeded.</description><displayName>Multipart Upload AgeOff Interval</displayName><dynamic>false</dynamic><name>Multipart Upload AgeOff Interval</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Multipart Upload Max Age Threshold</key><value><defaultValue>7 days</defaultValue><description>Specifies the maximum age for existing multipart uploads in AWS S3. When the ageoff process occurs, any upload older than this threshold will be aborted.</description><displayName>Multipart Upload Max Age Threshold</displayName><dynamic>false</dynamic><name>Multipart Upload Max Age Threshold</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>server-side-encryption</key><value><allowableValues><displayName>None</displayName><value>None</value></allowableValues><allowableValues><displayName>AES256</displayName><value>AES256</value></allowableValues><defaultValue>None</defaultValue><description>Specifies the algorithm used for server side encryption.</description><displayName>Server Side Encryption</displayName><dynamic>false</dynamic><name>server-side-encryption</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Proxy Host</key><value><description>Proxy host name or IP</description><displayName>Proxy Host</displayName><dynamic>false</dynamic><name>Proxy Host</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>Proxy Host Port</key><value><description>Proxy host port</description><displayName>Proxy Host Port</displayName><dynamic>false</dynamic><name>Proxy Host Port</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Object Key</key><value>${path}/${filename}</value></entry><entry><key>Bucket</key><value>my-sample-bucket</value></entry><entry><key>Access Key</key></entry><entry><key>Secret Key</key></entry><entry><key>Credentials File</key></entry><entry><key>AWS Credentials Provider service</key></entry><entry><key>Storage Class</key><value>Standard</value></entry><entry><key>Region</key><value>us-west-2</value></entry><entry><key>Communications Timeout</key><value>30 secs</value></entry><entry><key>Expiration Time Rule</key></entry><entry><key>FullControl User List</key><value>${s3.permissions.full.users}</value></entry><entry><key>Read Permission User List</key><value>${s3.permissions.read.users}</value></entry><entry><key>Write Permission User List</key><value>${s3.permissions.write.users}</value></entry><entry><key>Read ACL User List</key><value>${s3.permissions.readacl.users}</value></entry><entry><key>Write ACL User List</key><value>${s3.permissions.writeacl.users}</value></entry><entry><key>Owner</key><value>${s3.owner}</value></entry><entry><key>SSL Context Service</key></entry><entry><key>Endpoint Override URL</key></entry><entry><key>Multipart Threshold</key><value>5 GB</value></entry><entry><key>Multipart Part Size</key><value>5 GB</value></entry><entry><key>Multipart Upload AgeOff Interval</key><value>60 min</value></entry><entry><key>Multipart Upload Max Age Threshold</key><value>7 days</value></entry><entry><key>server-side-encryption</key><value>None</value></entry><entry><key>Proxy Host</key></entry><entry><key>Proxy Host Port</key></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>0 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>PutS3Object</name><relationships><autoTerminate>false</autoTerminate><description>FlowFiles are routed to failure relationship</description><name>failure</name></relationships><relationships><autoTerminate>false</autoTerminate><description>FlowFiles are routed to success relationship</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>false</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.aws.s3.PutS3Object</type></processors><processors><id>9feb7b73-fc70-45d3-933b-4bde16be2e37</id><parentGroupId>98a2973a-191b-4a6e-90f1-1b7ad12efe7e</parentGroupId><position><x>885.8471220322963</x><y>240.00000725550683</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Delete Attributes Expression</key><value><description>Regular expression for attributes to be deleted from flowfiles.</description><displayName>Delete Attributes Expression</displayName><dynamic>false</dynamic><name>Delete Attributes Expression</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>filename</key><value><description></description><displayName>filename</displayName><dynamic>true</dynamic><name>filename</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>path</key><value><description></description><displayName>path</displayName><dynamic>true</dynamic><name>path</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Delete Attributes Expression</key></entry><entry><key>filename</key><value>${now():format(&quot;yyyy-MM-dd'T'HH-mm-ss&quot;)}-${merge.count}-${bundle.type}-tweets-${uuid}.${'format'}</value></entry><entry><key>path</key><value>tweet-lake/${bundle.type}/${now():format(&quot;yyyy/MM/dd&quot;)}</value></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>0 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>Update Merged File Attributes</name><relationships><autoTerminate>false</autoTerminate><description>All FlowFiles are routed to this relationship</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>true</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.attributes.UpdateAttribute</type></processors><processors><id>8c860048-0345-4524-bab9-6fd25df49f98</id><parentGroupId>98a2973a-191b-4a6e-90f1-1b7ad12efe7e</parentGroupId><position><x>885.4647476218229</x><y>659.467654287644</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0 sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * * ?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Log Level</key><value><allowableValues><displayName>trace</displayName><value>trace</value></allowableValues><allowableValues><displayName>debug</displayName><value>debug</value></allowableValues><allowableValues><displayName>info</displayName><value>info</value></allowableValues><allowableValues><displayName>warn</displayName><value>warn</value></allowableValues><allowableValues><displayName>error</displayName><value>error</value></allowableValues><defaultValue>info</defaultValue><description>The Log Level to use when logging the Attributes</description><displayName>Log Level</displayName><dynamic>false</dynamic><name>Log Level</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Log Payload</key><value><allowableValues><displayName>true</displayName><value>true</value></allowableValues><allowableValues><displayName>false</displayName><value>false</value></allowableValues><defaultValue>false</defaultValue><description>If true, the FlowFile's payload will be logged, in addition to its attributes; otherwise, just the Attributes will be logged.</description><displayName>Log Payload</displayName><dynamic>false</dynamic><name>Log Payload</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Attributes to Log</key><value><description>A comma-separated list of Attributes to Log. If not specified, all attributes will be logged.</description><displayName>Attributes to Log</displayName><dynamic>false</dynamic><name>Attributes to Log</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Attributes to Ignore</key><value><description>A comma-separated list of Attributes to ignore. If not specified, no attributes will be ignored.</description><displayName>Attributes to Ignore</displayName><dynamic>false</dynamic><name>Attributes to Ignore</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Log prefix</key><value><description>Log prefix appended to the log lines. It helps to distinguish the output of multiple LogAttribute processors.</description><displayName>Log prefix</displayName><dynamic>false</dynamic><name>Log prefix</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30 sec</penaltyDuration><properties><entry><key>Log Level</key><value>info</value></entry><entry><key>Log Payload</key><value>false</value></entry><entry><key>Attributes to Log</key></entry><entry><key>Attributes to Ignore</key></entry><entry><key>Log prefix</key></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>1 sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1 sec</yieldDuration></config><name>LogAttribute</name><relationships><autoTerminate>true</autoTerminate><description>All FlowFiles are routed to this relationship</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>true</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.standard.LogAttribute</type></processors></contents><disabledCount>0</disabledCount><inactiveRemotePortCount>0</inactiveRemotePortCount><inputPortCount>1</inputPortCount><invalidCount>0</invalidCount><name>Store Bundles in S3</name><outputPortCount>0</outputPortCount><parent><id>8f183367-57f8-4340-8482-d246e37bb904</id><name>template fixer</name><parent><id>45fb6d32-3584-4ea7-a43d-a3b590911cac</id><name>Data Collection 0.7.0</name></parent></parent><runningCount>0</runningCount><stoppedCount>4</stoppedCount></processGroups></snippet><timestamp>11/02/2016 04:45:02 UTC</timestamp></template>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment