diff --git a/demos/nifi-kafka-druid-water-level-data/IngestWaterLevelsToKafka.json b/demos/nifi-kafka-druid-water-level-data/IngestWaterLevelsToKafka.json deleted file mode 100644 index 8016760a..00000000 --- a/demos/nifi-kafka-druid-water-level-data/IngestWaterLevelsToKafka.json +++ /dev/null @@ -1 +0,0 @@ -{ "flowContents": { "identifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "instanceIdentifier": "81598f35-0195-1000-0000-000073723729", "name": "IngestWaterLevelsToKafka_raw", "comments": "", "position": { "x": -472.0, "y": -496.0 }, "processGroups": [], "remoteProcessGroups": [], "processors": [ { "identifier": "e85c2e60-192e-3ed8-ab64-750311e0ed45", "instanceIdentifier": "46c0209c-7abe-3a8e-bbc0-39f9333f14b1", "name": "Get station list", "comments": "", "position": { "x": 485.99999797539556, "y": 246.99999837990495 }, "type": "org.apache.nifi.processors.standard.InvokeHTTP", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-nar", "version": "2.6.0" }, "properties": { "Request Content-Encoding": "DISABLED", "proxy-configuration-service": null, "Request Multipart Form-Data Filename Enabled": "true", "Request Chunked Transfer-Encoding Enabled": "false", "Response Header Request Attributes Prefix": null, "HTTP/2 Disabled": "False", "Connection Timeout": "5 secs", "Response Cookie Strategy": "DISABLED", "Socket Read Timeout": "15 secs", "Socket Idle Connections": "5", "Request Body Enabled": "true", "HTTP URL": "https://www.pegelonline.wsv.de/webservices/rest-api/v2/stations.json", "Request OAuth2 Access Token Provider": null, "Socket Idle Timeout": "5 mins", "Response Redirects Enabled": "True", "Socket Write Timeout": "15 secs", "Request Header Attributes Pattern": null, "Response FlowFile Naming Strategy": "RANDOM", "Response Cache Enabled": "false", "Request Date Header Enabled": "True", "Request Failure Penalization Enabled": "false", "Response Body Attribute Size": "256", "SSL Context Service": null, "Response Generation Required": "false", "Request User-Agent": null, "Response Header Request Attributes Enabled": "false", "HTTP Method": "GET", "Request Username": null, "Request Content-Type": "${mime.type}", "Response Body Attribute Name": null, "Request Digest Authentication Enabled": "false", "Request Multipart Form-Data Name": null, "Response Cache Size": "10MB", "Response Body Ignored": "false" }, "propertyDescriptors": { "Request Content-Encoding": { "name": "Request Content-Encoding", "displayName": "Request Content-Encoding", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "proxy-configuration-service": { "name": "proxy-configuration-service", "displayName": "Proxy Configuration Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Request Multipart Form-Data Filename Enabled": { "name": "Request Multipart Form-Data Filename Enabled", "displayName": "Request Multipart Form-Data Filename Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Chunked Transfer-Encoding Enabled": { "name": "Request Chunked Transfer-Encoding Enabled", "displayName": "Request Chunked Transfer-Encoding Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Header Request Attributes Prefix": { "name": "Response Header Request Attributes Prefix", "displayName": "Response Header Request Attributes Prefix", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP/2 Disabled": { "name": "HTTP/2 Disabled", "displayName": "HTTP/2 Disabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Connection Timeout": { "name": "Connection Timeout", "displayName": "Connection Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cookie Strategy": { "name": "Response Cookie Strategy", "displayName": "Response Cookie Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Password": { "name": "Request Password", "displayName": "Request Password", "identifiesControllerService": false, "sensitive": true, "dynamic": false }, "Socket Read Timeout": { "name": "Socket Read Timeout", "displayName": "Socket Read Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Socket Idle Connections": { "name": "Socket Idle Connections", "displayName": "Socket Idle Connections", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Body Enabled": { "name": "Request Body Enabled", "displayName": "Request Body Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP URL": { "name": "HTTP URL", "displayName": "HTTP URL", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request OAuth2 Access Token Provider": { "name": "Request OAuth2 Access Token Provider", "displayName": "Request OAuth2 Access Token Provider", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Socket Idle Timeout": { "name": "Socket Idle Timeout", "displayName": "Socket Idle Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Redirects Enabled": { "name": "Response Redirects Enabled", "displayName": "Response Redirects Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Socket Write Timeout": { "name": "Socket Write Timeout", "displayName": "Socket Write Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Header Attributes Pattern": { "name": "Request Header Attributes Pattern", "displayName": "Request Header Attributes Pattern", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response FlowFile Naming Strategy": { "name": "Response FlowFile Naming Strategy", "displayName": "Response FlowFile Naming Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cache Enabled": { "name": "Response Cache Enabled", "displayName": "Response Cache Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Date Header Enabled": { "name": "Request Date Header Enabled", "displayName": "Request Date Header Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Failure Penalization Enabled": { "name": "Request Failure Penalization Enabled", "displayName": "Request Failure Penalization Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Attribute Size": { "name": "Response Body Attribute Size", "displayName": "Response Body Attribute Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "SSL Context Service": { "name": "SSL Context Service", "displayName": "SSL Context Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Response Generation Required": { "name": "Response Generation Required", "displayName": "Response Generation Required", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request User-Agent": { "name": "Request User-Agent", "displayName": "Request User-Agent", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Header Request Attributes Enabled": { "name": "Response Header Request Attributes Enabled", "displayName": "Response Header Request Attributes Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP Method": { "name": "HTTP Method", "displayName": "HTTP Method", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Username": { "name": "Request Username", "displayName": "Request Username", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Content-Type": { "name": "Request Content-Type", "displayName": "Request Content-Type", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Attribute Name": { "name": "Response Body Attribute Name", "displayName": "Response Body Attribute Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Digest Authentication Enabled": { "name": "Request Digest Authentication Enabled", "displayName": "Request Digest Authentication Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Multipart Form-Data Name": { "name": "Request Multipart Form-Data Name", "displayName": "Request Multipart Form-Data Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cache Size": { "name": "Response Cache Size", "displayName": "Response Cache Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Ignored": { "name": "Response Body Ignored", "displayName": "Response Body Ignored", "identifiesControllerService": false, "sensitive": false, "dynamic": false } }, "style": {}, "schedulingPeriod": "365000 days", "schedulingStrategy": "TIMER_DRIVEN", "executionNode": "PRIMARY", "penaltyDuration": "30 sec", "yieldDuration": "1 sec", "bulletinLevel": "WARN", "runDurationMillis": 0, "concurrentlySchedulableTaskCount": 1, "autoTerminatedRelationships": [ "No Retry", "Retry", "Original", "Failure" ], "scheduledState": "ENABLED", "retryCount": 10, "retriedRelationships": [], "backoffMechanism": "PENALIZE_FLOWFILE", "maxBackoffPeriod": "10 mins", "componentType": "PROCESSOR", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "50bc20ed-2b1b-3068-0000-0000423c0a67", "instanceIdentifier": "3c9c0c1f-db51-39f1-bcea-5aa511e75799", "name": "Add station_uuid", "comments": "", "position": { "x": 1240.0, "y": 1192.0 }, "type": "org.apache.nifi.processors.jolt.JoltTransformJSON", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-jolt-nar", "version": "2.6.0" }, "properties": { "Jolt Transform": "jolt-transform-chain", "Max String Length": "20 MB", "Transform Cache Size": "1", "Custom Transformation Class Name": null, "Custom Module Directory": null, "Pretty Print": "false", "Jolt Specification": "[\n {\n \"operation\": \"default\",\n \"spec\": {\n \"*\": {\n \"station_uuid\": \"${station_uuid}\"\n }\n }\n }\n]\n" }, "propertyDescriptors": { "Jolt Transform": { "name": "Jolt Transform", "displayName": "Jolt Transform", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Max String Length": { "name": "Max String Length", "displayName": "Max String Length", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Transform Cache Size": { "name": "Transform Cache Size", "displayName": "Transform Cache Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Custom Transformation Class Name": { "name": "Custom Transformation Class Name", "displayName": "Custom Transformation Class Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Custom Module Directory": { "name": "Custom Module Directory", "displayName": "Custom Module Directory", "identifiesControllerService": false, "sensitive": false, "dynamic": false, "resourceDefinition": { "cardinality": "MULTIPLE", "resourceTypes": [ "DIRECTORY", "FILE" ] } }, "Pretty Print": { "name": "Pretty Print", "displayName": "Pretty Print", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Jolt Specification": { "name": "Jolt Specification", "displayName": "Jolt Specification", "identifiesControllerService": false, "sensitive": false, "dynamic": false, "resourceDefinition": { "cardinality": "SINGLE", "resourceTypes": [ "TEXT", "FILE" ] } } }, "style": {}, "schedulingPeriod": "0 sec", "schedulingStrategy": "TIMER_DRIVEN", "executionNode": "ALL", "penaltyDuration": "30 sec", "yieldDuration": "1 sec", "bulletinLevel": "WARN", "runDurationMillis": 0, "concurrentlySchedulableTaskCount": 1, "autoTerminatedRelationships": [ "failure" ], "scheduledState": "ENABLED", "retryCount": 10, "retriedRelationships": [], "backoffMechanism": "PENALIZE_FLOWFILE", "maxBackoffPeriod": "10 mins", "componentType": "PROCESSOR", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "8809ece7-fbe0-3613-b7b0-77e05c8f4cb1", "instanceIdentifier": "1425717b-a077-39b0-872e-7381d0b3848f", "name": "Extract station_uuid", "comments": "", "position": { "x": 861.9999979753956, "y": 726.9999983799049 }, "type": "org.apache.nifi.processors.standard.EvaluateJsonPath", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-nar", "version": "2.6.0" }, "properties": { "Destination": "flowfile-attribute", "Max String Length": "20 MB", "Return Type": "auto-detect", "Null Value Representation": "empty string", "station_uuid": "$.uuid", "Path Not Found Behavior": "ignore" }, "propertyDescriptors": { "Destination": { "name": "Destination", "displayName": "Destination", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Max String Length": { "name": "Max String Length", "displayName": "Max String Length", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Return Type": { "name": "Return Type", "displayName": "Return Type", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Null Value Representation": { "name": "Null Value Representation", "displayName": "Null Value Representation", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "station_uuid": { "name": "station_uuid", "displayName": "station_uuid", "identifiesControllerService": false, "sensitive": false, "dynamic": true }, "Path Not Found Behavior": { "name": "Path Not Found Behavior", "displayName": "Path Not Found Behavior", "identifiesControllerService": false, "sensitive": false, "dynamic": false } }, "style": {}, "schedulingPeriod": "0 sec", "schedulingStrategy": "TIMER_DRIVEN", "executionNode": "ALL", "penaltyDuration": "30 sec", "yieldDuration": "1 sec", "bulletinLevel": "WARN", "runDurationMillis": 0, "concurrentlySchedulableTaskCount": 1, "autoTerminatedRelationships": [ "failure", "unmatched" ], "scheduledState": "ENABLED", "retryCount": 10, "retriedRelationships": [], "backoffMechanism": "PENALIZE_FLOWFILE", "maxBackoffPeriod": "10 mins", "componentType": "PROCESSOR", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "656d02d2-3100-39e6-a3dd-a8fe91b6dd06", "instanceIdentifier": "cec0a8ff-73d7-35d1-9f9c-0c5cc0af6db2", "name": "SplitRecord", "comments": "", "position": { "x": 1237.9999979753957, "y": 510.9999983799049 }, "type": "org.apache.nifi.processors.standard.SplitRecord", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-nar", "version": "2.6.0" }, "properties": { "Record Writer": "f6b7ad0f-da95-39c4-be8d-4ae944d8034b", "Record Reader": "e75c34eb-8e60-3b6b-8a29-3dd7b79776c4", "Records Per Split": "1" }, "propertyDescriptors": { "Record Writer": { "name": "Record Writer", "displayName": "Record Writer", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Record Reader": { "name": "Record Reader", "displayName": "Record Reader", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Records Per Split": { "name": "Records Per Split", "displayName": "Records Per Split", "identifiesControllerService": false, "sensitive": false, "dynamic": false } }, "style": {}, "schedulingPeriod": "0 sec", "schedulingStrategy": "TIMER_DRIVEN", "executionNode": "ALL", "penaltyDuration": "30 sec", "yieldDuration": "1 sec", "bulletinLevel": "WARN", "runDurationMillis": 0, "concurrentlySchedulableTaskCount": 1, "autoTerminatedRelationships": [ "original", "failure" ], "scheduledState": "ENABLED", "retryCount": 10, "retriedRelationships": [], "backoffMechanism": "PENALIZE_FLOWFILE", "maxBackoffPeriod": "10 mins", "componentType": "PROCESSOR", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "e2bdb78b-009b-3086-ad39-816874d3be80", "instanceIdentifier": "72294ac8-46e9-33fb-8923-8e6cb4c69269", "name": "Get station list", "comments": "", "position": { "x": 861.9999979753956, "y": 246.99999837990495 }, "type": "org.apache.nifi.processors.standard.InvokeHTTP", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-nar", "version": "2.6.0" }, "properties": { "Request Content-Encoding": "DISABLED", "proxy-configuration-service": null, "Request Multipart Form-Data Filename Enabled": "true", "Request Chunked Transfer-Encoding Enabled": "false", "Response Header Request Attributes Prefix": null, "HTTP/2 Disabled": "False", "Connection Timeout": "5 secs", "Response Cookie Strategy": "DISABLED", "Socket Read Timeout": "15 secs", "Socket Idle Connections": "5", "Request Body Enabled": "true", "HTTP URL": "https://www.pegelonline.wsv.de/webservices/rest-api/v2/stations.json", "Request OAuth2 Access Token Provider": null, "Socket Idle Timeout": "5 mins", "Response Redirects Enabled": "True", "Socket Write Timeout": "15 secs", "Request Header Attributes Pattern": null, "Response FlowFile Naming Strategy": "RANDOM", "Response Cache Enabled": "false", "Request Date Header Enabled": "True", "Request Failure Penalization Enabled": "false", "Response Body Attribute Size": "256", "SSL Context Service": null, "Response Generation Required": "false", "Request User-Agent": null, "Response Header Request Attributes Enabled": "false", "HTTP Method": "GET", "Request Username": null, "Request Content-Type": "${mime.type}", "Response Body Attribute Name": null, "Request Digest Authentication Enabled": "false", "Request Multipart Form-Data Name": null, "Response Cache Size": "10MB", "Response Body Ignored": "false" }, "propertyDescriptors": { "Request Content-Encoding": { "name": "Request Content-Encoding", "displayName": "Request Content-Encoding", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "proxy-configuration-service": { "name": "proxy-configuration-service", "displayName": "Proxy Configuration Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Request Multipart Form-Data Filename Enabled": { "name": "Request Multipart Form-Data Filename Enabled", "displayName": "Request Multipart Form-Data Filename Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Chunked Transfer-Encoding Enabled": { "name": "Request Chunked Transfer-Encoding Enabled", "displayName": "Request Chunked Transfer-Encoding Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Header Request Attributes Prefix": { "name": "Response Header Request Attributes Prefix", "displayName": "Response Header Request Attributes Prefix", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP/2 Disabled": { "name": "HTTP/2 Disabled", "displayName": "HTTP/2 Disabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Connection Timeout": { "name": "Connection Timeout", "displayName": "Connection Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cookie Strategy": { "name": "Response Cookie Strategy", "displayName": "Response Cookie Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Password": { "name": "Request Password", "displayName": "Request Password", "identifiesControllerService": false, "sensitive": true, "dynamic": false }, "Socket Read Timeout": { "name": "Socket Read Timeout", "displayName": "Socket Read Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Socket Idle Connections": { "name": "Socket Idle Connections", "displayName": "Socket Idle Connections", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Body Enabled": { "name": "Request Body Enabled", "displayName": "Request Body Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP URL": { "name": "HTTP URL", "displayName": "HTTP URL", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request OAuth2 Access Token Provider": { "name": "Request OAuth2 Access Token Provider", "displayName": "Request OAuth2 Access Token Provider", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Socket Idle Timeout": { "name": "Socket Idle Timeout", "displayName": "Socket Idle Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Redirects Enabled": { "name": "Response Redirects Enabled", "displayName": "Response Redirects Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Socket Write Timeout": { "name": "Socket Write Timeout", "displayName": "Socket Write Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Header Attributes Pattern": { "name": "Request Header Attributes Pattern", "displayName": "Request Header Attributes Pattern", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response FlowFile Naming Strategy": { "name": "Response FlowFile Naming Strategy", "displayName": "Response FlowFile Naming Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cache Enabled": { "name": "Response Cache Enabled", "displayName": "Response Cache Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Date Header Enabled": { "name": "Request Date Header Enabled", "displayName": "Request Date Header Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Failure Penalization Enabled": { "name": "Request Failure Penalization Enabled", "displayName": "Request Failure Penalization Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Attribute Size": { "name": "Response Body Attribute Size", "displayName": "Response Body Attribute Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "SSL Context Service": { "name": "SSL Context Service", "displayName": "SSL Context Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Response Generation Required": { "name": "Response Generation Required", "displayName": "Response Generation Required", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request User-Agent": { "name": "Request User-Agent", "displayName": "Request User-Agent", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Header Request Attributes Enabled": { "name": "Response Header Request Attributes Enabled", "displayName": "Response Header Request Attributes Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP Method": { "name": "HTTP Method", "displayName": "HTTP Method", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Username": { "name": "Request Username", "displayName": "Request Username", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Content-Type": { "name": "Request Content-Type", "displayName": "Request Content-Type", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Attribute Name": { "name": "Response Body Attribute Name", "displayName": "Response Body Attribute Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Digest Authentication Enabled": { "name": "Request Digest Authentication Enabled", "displayName": "Request Digest Authentication Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Multipart Form-Data Name": { "name": "Request Multipart Form-Data Name", "displayName": "Request Multipart Form-Data Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cache Size": { "name": "Response Cache Size", "displayName": "Response Cache Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Ignored": { "name": "Response Body Ignored", "displayName": "Response Body Ignored", "identifiesControllerService": false, "sensitive": false, "dynamic": false } }, "style": {}, "schedulingPeriod": "365000 days", "schedulingStrategy": "TIMER_DRIVEN", "executionNode": "PRIMARY", "penaltyDuration": "30 sec", "yieldDuration": "1 sec", "bulletinLevel": "WARN", "runDurationMillis": 0, "concurrentlySchedulableTaskCount": 1, "autoTerminatedRelationships": [ "No Retry", "Retry", "Original", "Failure" ], "scheduledState": "ENABLED", "retryCount": 10, "retriedRelationships": [], "backoffMechanism": "PENALIZE_FLOWFILE", "maxBackoffPeriod": "10 mins", "componentType": "PROCESSOR", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "dde01269-6b44-3f4c-9406-8e291cd8aaa4", "instanceIdentifier": "816243be-0195-1000-ffff-fffff00620a1", "name": "Add station_uuid", "comments": "", "position": { "x": 864.0, "y": 1192.0 }, "type": "org.apache.nifi.processors.jolt.JoltTransformJSON", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-jolt-nar", "version": "2.6.0" }, "properties": { "Jolt Transform": "jolt-transform-chain", "Max String Length": "20 MB", "Transform Cache Size": "1", "Custom Transformation Class Name": null, "Custom Module Directory": null, "Pretty Print": "false", "Jolt Specification": "[\n {\n \"operation\": \"default\",\n \"spec\": {\n \"*\": {\n \"station_uuid\": \"${station_uuid}\"\n }\n }\n }\n]\n" }, "propertyDescriptors": { "Jolt Transform": { "name": "Jolt Transform", "displayName": "Jolt Transform", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Max String Length": { "name": "Max String Length", "displayName": "Max String Length", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Transform Cache Size": { "name": "Transform Cache Size", "displayName": "Transform Cache Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Custom Transformation Class Name": { "name": "Custom Transformation Class Name", "displayName": "Custom Transformation Class Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Custom Module Directory": { "name": "Custom Module Directory", "displayName": "Custom Module Directory", "identifiesControllerService": false, "sensitive": false, "dynamic": false, "resourceDefinition": { "cardinality": "MULTIPLE", "resourceTypes": [ "DIRECTORY", "FILE" ] } }, "Pretty Print": { "name": "Pretty Print", "displayName": "Pretty Print", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Jolt Specification": { "name": "Jolt Specification", "displayName": "Jolt Specification", "identifiesControllerService": false, "sensitive": false, "dynamic": false, "resourceDefinition": { "cardinality": "SINGLE", "resourceTypes": [ "TEXT", "FILE" ] } } }, "style": {}, "schedulingPeriod": "0 sec", "schedulingStrategy": "TIMER_DRIVEN", "executionNode": "ALL", "penaltyDuration": "30 sec", "yieldDuration": "1 sec", "bulletinLevel": "WARN", "runDurationMillis": 0, "concurrentlySchedulableTaskCount": 1, "autoTerminatedRelationships": [ "failure" ], "scheduledState": "ENABLED", "retryCount": 10, "retriedRelationships": [], "backoffMechanism": "PENALIZE_FLOWFILE", "maxBackoffPeriod": "10 mins", "componentType": "PROCESSOR", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "98a12d17-c277-3226-af8b-03848dbdbf11", "instanceIdentifier": "816125f7-0195-1000-0000-00006b8c4170", "name": "PublishKafka", "comments": "", "position": { "x": 1240.0, "y": 1408.0 }, "type": "org.apache.nifi.kafka.processors.PublishKafka", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-kafka-nar", "version": "2.6.0" }, "properties": { "compression.type": "snappy", "acks": "all", "Message Demarcator": null, "Kafka Key Attribute Encoding": "utf-8", "Record Reader": "e75c34eb-8e60-3b6b-8a29-3dd7b79776c4", "Record Metadata Strategy": "FROM_PROPERTIES", "Transactional ID Prefix": null, "Header Encoding": "UTF-8", "max.request.size": "1 MB", "Topic Name": "measurements", "Kafka Key": null, "partition": null, "Kafka Connection Service": "29032623-5723-3b5d-8983-07534da27fd5", "Publish Strategy": "USE_VALUE", "Record Key Writer": null, "Failure Strategy": "Route to Failure", "partitioner.class": "org.apache.kafka.clients.producer.internals.DefaultPartitioner", "Record Writer": "f6b7ad0f-da95-39c4-be8d-4ae944d8034b", "Transactions Enabled": "false", "Message Key Field": null, "FlowFile Attribute Header Pattern": null }, "propertyDescriptors": { "compression.type": { "name": "compression.type", "displayName": "Compression Type", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "acks": { "name": "acks", "displayName": "Delivery Guarantee", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Message Demarcator": { "name": "Message Demarcator", "displayName": "Message Demarcator", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Kafka Key Attribute Encoding": { "name": "Kafka Key Attribute Encoding", "displayName": "Kafka Key Attribute Encoding", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Record Reader": { "name": "Record Reader", "displayName": "Record Reader", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Record Metadata Strategy": { "name": "Record Metadata Strategy", "displayName": "Record Metadata Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Transactional ID Prefix": { "name": "Transactional ID Prefix", "displayName": "Transactional ID Prefix", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Header Encoding": { "name": "Header Encoding", "displayName": "Header Encoding", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "max.request.size": { "name": "max.request.size", "displayName": "Max Request Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Topic Name": { "name": "Topic Name", "displayName": "Topic Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Kafka Key": { "name": "Kafka Key", "displayName": "Kafka Key", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "partition": { "name": "partition", "displayName": "Partition", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Kafka Connection Service": { "name": "Kafka Connection Service", "displayName": "Kafka Connection Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Publish Strategy": { "name": "Publish Strategy", "displayName": "Publish Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Record Key Writer": { "name": "Record Key Writer", "displayName": "Record Key Writer", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Failure Strategy": { "name": "Failure Strategy", "displayName": "Failure Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "partitioner.class": { "name": "partitioner.class", "displayName": "Partitioner Class", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Record Writer": { "name": "Record Writer", "displayName": "Record Writer", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Transactions Enabled": { "name": "Transactions Enabled", "displayName": "Transactions Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Message Key Field": { "name": "Message Key Field", "displayName": "Message Key Field", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "FlowFile Attribute Header Pattern": { "name": "FlowFile Attribute Header Pattern", "displayName": "FlowFile Attribute Header Pattern", "identifiesControllerService": false, "sensitive": false, "dynamic": false } }, "style": {}, "schedulingPeriod": "0 sec", "schedulingStrategy": "TIMER_DRIVEN", "executionNode": "ALL", "penaltyDuration": "30 sec", "yieldDuration": "1 sec", "bulletinLevel": "WARN", "runDurationMillis": 0, "concurrentlySchedulableTaskCount": 1, "autoTerminatedRelationships": [ "success", "failure" ], "scheduledState": "ENABLED", "retryCount": 10, "retriedRelationships": [], "backoffMechanism": "PENALIZE_FLOWFILE", "maxBackoffPeriod": "10 mins", "componentType": "PROCESSOR", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "ccf5a9db-6d16-3aa5-b054-b33a51405240", "instanceIdentifier": "6304de41-531f-37e9-b1a9-db89a7181c46", "name": "Extract station_uuid", "comments": "", "position": { "x": 1237.9999979753957, "y": 726.9999983799049 }, "type": "org.apache.nifi.processors.standard.EvaluateJsonPath", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-nar", "version": "2.6.0" }, "properties": { "Destination": "flowfile-attribute", "Max String Length": "20 MB", "Return Type": "auto-detect", "Null Value Representation": "empty string", "station_uuid": "$.uuid", "Path Not Found Behavior": "ignore" }, "propertyDescriptors": { "Destination": { "name": "Destination", "displayName": "Destination", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Max String Length": { "name": "Max String Length", "displayName": "Max String Length", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Return Type": { "name": "Return Type", "displayName": "Return Type", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Null Value Representation": { "name": "Null Value Representation", "displayName": "Null Value Representation", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "station_uuid": { "name": "station_uuid", "displayName": "station_uuid", "identifiesControllerService": false, "sensitive": false, "dynamic": true }, "Path Not Found Behavior": { "name": "Path Not Found Behavior", "displayName": "Path Not Found Behavior", "identifiesControllerService": false, "sensitive": false, "dynamic": false } }, "style": {}, "schedulingPeriod": "0 sec", "schedulingStrategy": "TIMER_DRIVEN", "executionNode": "ALL", "penaltyDuration": "30 sec", "yieldDuration": "1 sec", "bulletinLevel": "WARN", "runDurationMillis": 0, "concurrentlySchedulableTaskCount": 1, "autoTerminatedRelationships": [ "failure", "unmatched" ], "scheduledState": "ENABLED", "retryCount": 10, "retriedRelationships": [], "backoffMechanism": "PENALIZE_FLOWFILE", "maxBackoffPeriod": "10 mins", "componentType": "PROCESSOR", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "d56a1c61-9006-315a-a15c-41439f14d030", "instanceIdentifier": "d78cc57f-9bd1-35a2-9957-a70d52d0fb69", "name": "SplitRecord", "comments": "", "position": { "x": 861.9999979753956, "y": 510.9999983799049 }, "type": "org.apache.nifi.processors.standard.SplitRecord", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-nar", "version": "2.6.0" }, "properties": { "Record Writer": "f6b7ad0f-da95-39c4-be8d-4ae944d8034b", "Record Reader": "e75c34eb-8e60-3b6b-8a29-3dd7b79776c4", "Records Per Split": "1" }, "propertyDescriptors": { "Record Writer": { "name": "Record Writer", "displayName": "Record Writer", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Record Reader": { "name": "Record Reader", "displayName": "Record Reader", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Records Per Split": { "name": "Records Per Split", "displayName": "Records Per Split", "identifiesControllerService": false, "sensitive": false, "dynamic": false } }, "style": {}, "schedulingPeriod": "0 sec", "schedulingStrategy": "TIMER_DRIVEN", "executionNode": "ALL", "penaltyDuration": "30 sec", "yieldDuration": "1 sec", "bulletinLevel": "WARN", "runDurationMillis": 0, "concurrentlySchedulableTaskCount": 1, "autoTerminatedRelationships": [ "original", "failure" ], "scheduledState": "ENABLED", "retryCount": 10, "retriedRelationships": [], "backoffMechanism": "PENALIZE_FLOWFILE", "maxBackoffPeriod": "10 mins", "componentType": "PROCESSOR", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "a961da8c-d228-3d19-b6ed-2d48ebe35b05", "instanceIdentifier": "15a87495-c9dc-36db-a3f0-828a63a688f9", "name": "Get 30 days historic data", "comments": "", "position": { "x": 861.9999979753956, "y": 966.9999983799049 }, "type": "org.apache.nifi.processors.standard.InvokeHTTP", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-nar", "version": "2.6.0" }, "properties": { "Request Content-Encoding": "DISABLED", "proxy-configuration-service": null, "Request Multipart Form-Data Filename Enabled": "true", "Request Chunked Transfer-Encoding Enabled": "false", "Response Header Request Attributes Prefix": null, "HTTP/2 Disabled": "False", "Connection Timeout": "5 secs", "Response Cookie Strategy": "DISABLED", "Socket Read Timeout": "15 secs", "Socket Idle Connections": "5", "Request Body Enabled": "true", "HTTP URL": "https://www.pegelonline.wsv.de/webservices/rest-api/v2/stations/${station_uuid}/W/measurements.json?start=P30D", "Request OAuth2 Access Token Provider": null, "Socket Idle Timeout": "5 mins", "Response Redirects Enabled": "True", "Socket Write Timeout": "15 secs", "Request Header Attributes Pattern": null, "Response FlowFile Naming Strategy": "RANDOM", "Response Cache Enabled": "false", "Request Date Header Enabled": "True", "Request Failure Penalization Enabled": "false", "Response Body Attribute Size": "256", "SSL Context Service": null, "Response Generation Required": "false", "Request User-Agent": null, "Response Header Request Attributes Enabled": "false", "HTTP Method": "GET", "Request Username": null, "Request Content-Type": "${mime.type}", "Response Body Attribute Name": null, "Request Digest Authentication Enabled": "false", "Request Multipart Form-Data Name": null, "Response Cache Size": "10MB", "Response Body Ignored": "false" }, "propertyDescriptors": { "Request Content-Encoding": { "name": "Request Content-Encoding", "displayName": "Request Content-Encoding", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "proxy-configuration-service": { "name": "proxy-configuration-service", "displayName": "Proxy Configuration Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Request Multipart Form-Data Filename Enabled": { "name": "Request Multipart Form-Data Filename Enabled", "displayName": "Request Multipart Form-Data Filename Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Chunked Transfer-Encoding Enabled": { "name": "Request Chunked Transfer-Encoding Enabled", "displayName": "Request Chunked Transfer-Encoding Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Header Request Attributes Prefix": { "name": "Response Header Request Attributes Prefix", "displayName": "Response Header Request Attributes Prefix", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP/2 Disabled": { "name": "HTTP/2 Disabled", "displayName": "HTTP/2 Disabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Connection Timeout": { "name": "Connection Timeout", "displayName": "Connection Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cookie Strategy": { "name": "Response Cookie Strategy", "displayName": "Response Cookie Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Password": { "name": "Request Password", "displayName": "Request Password", "identifiesControllerService": false, "sensitive": true, "dynamic": false }, "Socket Read Timeout": { "name": "Socket Read Timeout", "displayName": "Socket Read Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Socket Idle Connections": { "name": "Socket Idle Connections", "displayName": "Socket Idle Connections", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Body Enabled": { "name": "Request Body Enabled", "displayName": "Request Body Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP URL": { "name": "HTTP URL", "displayName": "HTTP URL", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request OAuth2 Access Token Provider": { "name": "Request OAuth2 Access Token Provider", "displayName": "Request OAuth2 Access Token Provider", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Socket Idle Timeout": { "name": "Socket Idle Timeout", "displayName": "Socket Idle Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Redirects Enabled": { "name": "Response Redirects Enabled", "displayName": "Response Redirects Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Socket Write Timeout": { "name": "Socket Write Timeout", "displayName": "Socket Write Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Header Attributes Pattern": { "name": "Request Header Attributes Pattern", "displayName": "Request Header Attributes Pattern", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response FlowFile Naming Strategy": { "name": "Response FlowFile Naming Strategy", "displayName": "Response FlowFile Naming Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cache Enabled": { "name": "Response Cache Enabled", "displayName": "Response Cache Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Date Header Enabled": { "name": "Request Date Header Enabled", "displayName": "Request Date Header Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Failure Penalization Enabled": { "name": "Request Failure Penalization Enabled", "displayName": "Request Failure Penalization Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Attribute Size": { "name": "Response Body Attribute Size", "displayName": "Response Body Attribute Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "SSL Context Service": { "name": "SSL Context Service", "displayName": "SSL Context Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Response Generation Required": { "name": "Response Generation Required", "displayName": "Response Generation Required", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request User-Agent": { "name": "Request User-Agent", "displayName": "Request User-Agent", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Header Request Attributes Enabled": { "name": "Response Header Request Attributes Enabled", "displayName": "Response Header Request Attributes Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP Method": { "name": "HTTP Method", "displayName": "HTTP Method", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Username": { "name": "Request Username", "displayName": "Request Username", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Content-Type": { "name": "Request Content-Type", "displayName": "Request Content-Type", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Attribute Name": { "name": "Response Body Attribute Name", "displayName": "Response Body Attribute Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Digest Authentication Enabled": { "name": "Request Digest Authentication Enabled", "displayName": "Request Digest Authentication Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Multipart Form-Data Name": { "name": "Request Multipart Form-Data Name", "displayName": "Request Multipart Form-Data Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cache Size": { "name": "Response Cache Size", "displayName": "Response Cache Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Ignored": { "name": "Response Body Ignored", "displayName": "Response Body Ignored", "identifiesControllerService": false, "sensitive": false, "dynamic": false } }, "style": {}, "schedulingPeriod": "0 sec", "schedulingStrategy": "TIMER_DRIVEN", "executionNode": "ALL", "penaltyDuration": "30 sec", "yieldDuration": "1 sec", "bulletinLevel": "WARN", "runDurationMillis": 0, "concurrentlySchedulableTaskCount": 1, "autoTerminatedRelationships": [ "No Retry", "Retry", "Original", "Failure" ], "scheduledState": "ENABLED", "retryCount": 10, "retriedRelationships": [], "backoffMechanism": "PENALIZE_FLOWFILE", "maxBackoffPeriod": "10 mins", "componentType": "PROCESSOR", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "26542ec9-e3e3-380f-ab7a-7fa4b2c46d1e", "instanceIdentifier": "815f05d7-0195-1000-0000-000005d97f79", "name": "PublishKafka", "comments": "", "position": { "x": 864.0, "y": 1408.0 }, "type": "org.apache.nifi.kafka.processors.PublishKafka", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-kafka-nar", "version": "2.6.0" }, "properties": { "compression.type": "snappy", "acks": "all", "Message Demarcator": null, "Kafka Key Attribute Encoding": "utf-8", "Record Reader": "e75c34eb-8e60-3b6b-8a29-3dd7b79776c4", "Record Metadata Strategy": "FROM_PROPERTIES", "Transactional ID Prefix": null, "Header Encoding": "UTF-8", "max.request.size": "1 MB", "Topic Name": "measurements", "Kafka Key": null, "partition": null, "Kafka Connection Service": "29032623-5723-3b5d-8983-07534da27fd5", "Publish Strategy": "USE_VALUE", "Record Key Writer": null, "Failure Strategy": "Route to Failure", "partitioner.class": "org.apache.kafka.clients.producer.internals.DefaultPartitioner", "Record Writer": "f6b7ad0f-da95-39c4-be8d-4ae944d8034b", "Transactions Enabled": "false", "Message Key Field": null, "FlowFile Attribute Header Pattern": null }, "propertyDescriptors": { "compression.type": { "name": "compression.type", "displayName": "Compression Type", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "acks": { "name": "acks", "displayName": "Delivery Guarantee", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Message Demarcator": { "name": "Message Demarcator", "displayName": "Message Demarcator", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Kafka Key Attribute Encoding": { "name": "Kafka Key Attribute Encoding", "displayName": "Kafka Key Attribute Encoding", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Record Reader": { "name": "Record Reader", "displayName": "Record Reader", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Record Metadata Strategy": { "name": "Record Metadata Strategy", "displayName": "Record Metadata Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Transactional ID Prefix": { "name": "Transactional ID Prefix", "displayName": "Transactional ID Prefix", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Header Encoding": { "name": "Header Encoding", "displayName": "Header Encoding", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "max.request.size": { "name": "max.request.size", "displayName": "Max Request Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Topic Name": { "name": "Topic Name", "displayName": "Topic Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Kafka Key": { "name": "Kafka Key", "displayName": "Kafka Key", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "partition": { "name": "partition", "displayName": "Partition", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Kafka Connection Service": { "name": "Kafka Connection Service", "displayName": "Kafka Connection Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Publish Strategy": { "name": "Publish Strategy", "displayName": "Publish Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Record Key Writer": { "name": "Record Key Writer", "displayName": "Record Key Writer", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Failure Strategy": { "name": "Failure Strategy", "displayName": "Failure Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "partitioner.class": { "name": "partitioner.class", "displayName": "Partitioner Class", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Record Writer": { "name": "Record Writer", "displayName": "Record Writer", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Transactions Enabled": { "name": "Transactions Enabled", "displayName": "Transactions Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Message Key Field": { "name": "Message Key Field", "displayName": "Message Key Field", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "FlowFile Attribute Header Pattern": { "name": "FlowFile Attribute Header Pattern", "displayName": "FlowFile Attribute Header Pattern", "identifiesControllerService": false, "sensitive": false, "dynamic": false } }, "style": {}, "schedulingPeriod": "0 sec", "schedulingStrategy": "TIMER_DRIVEN", "executionNode": "ALL", "penaltyDuration": "30 sec", "yieldDuration": "1 sec", "bulletinLevel": "WARN", "runDurationMillis": 0, "concurrentlySchedulableTaskCount": 1, "autoTerminatedRelationships": [ "success", "failure" ], "scheduledState": "ENABLED", "retryCount": 10, "retriedRelationships": [], "backoffMechanism": "PENALIZE_FLOWFILE", "maxBackoffPeriod": "10 mins", "componentType": "PROCESSOR", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "4db42754-1203-340d-830d-d662d16d13c8", "instanceIdentifier": "d8795306-ee83-3143-b633-fd70c932add5", "name": "Get station list", "comments": "", "position": { "x": 1237.9999979753957, "y": 246.99999837990495 }, "type": "org.apache.nifi.processors.standard.InvokeHTTP", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-nar", "version": "2.6.0" }, "properties": { "Request Content-Encoding": "DISABLED", "proxy-configuration-service": null, "Request Multipart Form-Data Filename Enabled": "true", "Request Chunked Transfer-Encoding Enabled": "false", "Response Header Request Attributes Prefix": null, "HTTP/2 Disabled": "False", "Connection Timeout": "5 secs", "Response Cookie Strategy": "DISABLED", "Socket Read Timeout": "15 secs", "Socket Idle Connections": "5", "Request Body Enabled": "true", "HTTP URL": "https://www.pegelonline.wsv.de/webservices/rest-api/v2/stations.json", "Request OAuth2 Access Token Provider": null, "Socket Idle Timeout": "5 mins", "Response Redirects Enabled": "True", "Socket Write Timeout": "15 secs", "Request Header Attributes Pattern": null, "Response FlowFile Naming Strategy": "RANDOM", "Response Cache Enabled": "false", "Request Date Header Enabled": "True", "Request Failure Penalization Enabled": "false", "Response Body Attribute Size": "256", "SSL Context Service": null, "Response Generation Required": "false", "Request User-Agent": null, "Response Header Request Attributes Enabled": "false", "HTTP Method": "GET", "Request Username": null, "Request Content-Type": "${mime.type}", "Response Body Attribute Name": null, "Request Digest Authentication Enabled": "false", "Request Multipart Form-Data Name": null, "Response Cache Size": "10MB", "Response Body Ignored": "false" }, "propertyDescriptors": { "Request Content-Encoding": { "name": "Request Content-Encoding", "displayName": "Request Content-Encoding", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "proxy-configuration-service": { "name": "proxy-configuration-service", "displayName": "Proxy Configuration Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Request Multipart Form-Data Filename Enabled": { "name": "Request Multipart Form-Data Filename Enabled", "displayName": "Request Multipart Form-Data Filename Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Chunked Transfer-Encoding Enabled": { "name": "Request Chunked Transfer-Encoding Enabled", "displayName": "Request Chunked Transfer-Encoding Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Header Request Attributes Prefix": { "name": "Response Header Request Attributes Prefix", "displayName": "Response Header Request Attributes Prefix", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP/2 Disabled": { "name": "HTTP/2 Disabled", "displayName": "HTTP/2 Disabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Connection Timeout": { "name": "Connection Timeout", "displayName": "Connection Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cookie Strategy": { "name": "Response Cookie Strategy", "displayName": "Response Cookie Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Password": { "name": "Request Password", "displayName": "Request Password", "identifiesControllerService": false, "sensitive": true, "dynamic": false }, "Socket Read Timeout": { "name": "Socket Read Timeout", "displayName": "Socket Read Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Socket Idle Connections": { "name": "Socket Idle Connections", "displayName": "Socket Idle Connections", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Body Enabled": { "name": "Request Body Enabled", "displayName": "Request Body Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP URL": { "name": "HTTP URL", "displayName": "HTTP URL", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request OAuth2 Access Token Provider": { "name": "Request OAuth2 Access Token Provider", "displayName": "Request OAuth2 Access Token Provider", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Socket Idle Timeout": { "name": "Socket Idle Timeout", "displayName": "Socket Idle Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Redirects Enabled": { "name": "Response Redirects Enabled", "displayName": "Response Redirects Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Socket Write Timeout": { "name": "Socket Write Timeout", "displayName": "Socket Write Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Header Attributes Pattern": { "name": "Request Header Attributes Pattern", "displayName": "Request Header Attributes Pattern", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response FlowFile Naming Strategy": { "name": "Response FlowFile Naming Strategy", "displayName": "Response FlowFile Naming Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cache Enabled": { "name": "Response Cache Enabled", "displayName": "Response Cache Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Date Header Enabled": { "name": "Request Date Header Enabled", "displayName": "Request Date Header Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Failure Penalization Enabled": { "name": "Request Failure Penalization Enabled", "displayName": "Request Failure Penalization Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Attribute Size": { "name": "Response Body Attribute Size", "displayName": "Response Body Attribute Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "SSL Context Service": { "name": "SSL Context Service", "displayName": "SSL Context Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Response Generation Required": { "name": "Response Generation Required", "displayName": "Response Generation Required", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request User-Agent": { "name": "Request User-Agent", "displayName": "Request User-Agent", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Header Request Attributes Enabled": { "name": "Response Header Request Attributes Enabled", "displayName": "Response Header Request Attributes Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP Method": { "name": "HTTP Method", "displayName": "HTTP Method", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Username": { "name": "Request Username", "displayName": "Request Username", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Content-Type": { "name": "Request Content-Type", "displayName": "Request Content-Type", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Attribute Name": { "name": "Response Body Attribute Name", "displayName": "Response Body Attribute Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Digest Authentication Enabled": { "name": "Request Digest Authentication Enabled", "displayName": "Request Digest Authentication Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Multipart Form-Data Name": { "name": "Request Multipart Form-Data Name", "displayName": "Request Multipart Form-Data Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cache Size": { "name": "Response Cache Size", "displayName": "Response Cache Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Ignored": { "name": "Response Body Ignored", "displayName": "Response Body Ignored", "identifiesControllerService": false, "sensitive": false, "dynamic": false } }, "style": {}, "schedulingPeriod": "15 m", "schedulingStrategy": "TIMER_DRIVEN", "executionNode": "PRIMARY", "penaltyDuration": "30 sec", "yieldDuration": "1 sec", "bulletinLevel": "WARN", "runDurationMillis": 0, "concurrentlySchedulableTaskCount": 1, "autoTerminatedRelationships": [ "No Retry", "Retry", "Original", "Failure" ], "scheduledState": "ENABLED", "retryCount": 10, "retriedRelationships": [], "backoffMechanism": "PENALIZE_FLOWFILE", "maxBackoffPeriod": "10 mins", "componentType": "PROCESSOR", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "d2841e3c-954c-3f6c-8c2b-0b4f20cea21c", "instanceIdentifier": "a11d09f2-9d6d-390d-947c-397b881e980f", "name": "Get 30 minutes of historic data", "comments": "", "position": { "x": 1237.9999979753957, "y": 966.9999983799049 }, "type": "org.apache.nifi.processors.standard.InvokeHTTP", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-nar", "version": "2.6.0" }, "properties": { "Request Content-Encoding": "DISABLED", "proxy-configuration-service": null, "Request Multipart Form-Data Filename Enabled": "true", "Request Chunked Transfer-Encoding Enabled": "false", "Response Header Request Attributes Prefix": null, "HTTP/2 Disabled": "False", "Connection Timeout": "5 secs", "Response Cookie Strategy": "DISABLED", "Socket Read Timeout": "15 secs", "Socket Idle Connections": "5", "Request Body Enabled": "true", "HTTP URL": "https://www.pegelonline.wsv.de/webservices/rest-api/v2/stations/${station_uuid}/W/measurements.json?start=PT30M", "Request OAuth2 Access Token Provider": null, "Socket Idle Timeout": "5 mins", "Response Redirects Enabled": "True", "Socket Write Timeout": "15 secs", "Request Header Attributes Pattern": null, "Response FlowFile Naming Strategy": "RANDOM", "Response Cache Enabled": "false", "Request Date Header Enabled": "True", "Request Failure Penalization Enabled": "false", "Response Body Attribute Size": "256", "SSL Context Service": null, "Response Generation Required": "false", "Request User-Agent": null, "Response Header Request Attributes Enabled": "false", "HTTP Method": "GET", "Request Username": null, "Request Content-Type": "${mime.type}", "Response Body Attribute Name": null, "Request Digest Authentication Enabled": "false", "Request Multipart Form-Data Name": null, "Response Cache Size": "10MB", "Response Body Ignored": "false" }, "propertyDescriptors": { "Request Content-Encoding": { "name": "Request Content-Encoding", "displayName": "Request Content-Encoding", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "proxy-configuration-service": { "name": "proxy-configuration-service", "displayName": "Proxy Configuration Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Request Multipart Form-Data Filename Enabled": { "name": "Request Multipart Form-Data Filename Enabled", "displayName": "Request Multipart Form-Data Filename Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Chunked Transfer-Encoding Enabled": { "name": "Request Chunked Transfer-Encoding Enabled", "displayName": "Request Chunked Transfer-Encoding Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Header Request Attributes Prefix": { "name": "Response Header Request Attributes Prefix", "displayName": "Response Header Request Attributes Prefix", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP/2 Disabled": { "name": "HTTP/2 Disabled", "displayName": "HTTP/2 Disabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Connection Timeout": { "name": "Connection Timeout", "displayName": "Connection Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cookie Strategy": { "name": "Response Cookie Strategy", "displayName": "Response Cookie Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Password": { "name": "Request Password", "displayName": "Request Password", "identifiesControllerService": false, "sensitive": true, "dynamic": false }, "Socket Read Timeout": { "name": "Socket Read Timeout", "displayName": "Socket Read Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Socket Idle Connections": { "name": "Socket Idle Connections", "displayName": "Socket Idle Connections", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Body Enabled": { "name": "Request Body Enabled", "displayName": "Request Body Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP URL": { "name": "HTTP URL", "displayName": "HTTP URL", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request OAuth2 Access Token Provider": { "name": "Request OAuth2 Access Token Provider", "displayName": "Request OAuth2 Access Token Provider", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Socket Idle Timeout": { "name": "Socket Idle Timeout", "displayName": "Socket Idle Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Redirects Enabled": { "name": "Response Redirects Enabled", "displayName": "Response Redirects Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Socket Write Timeout": { "name": "Socket Write Timeout", "displayName": "Socket Write Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Header Attributes Pattern": { "name": "Request Header Attributes Pattern", "displayName": "Request Header Attributes Pattern", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response FlowFile Naming Strategy": { "name": "Response FlowFile Naming Strategy", "displayName": "Response FlowFile Naming Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cache Enabled": { "name": "Response Cache Enabled", "displayName": "Response Cache Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Date Header Enabled": { "name": "Request Date Header Enabled", "displayName": "Request Date Header Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Failure Penalization Enabled": { "name": "Request Failure Penalization Enabled", "displayName": "Request Failure Penalization Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Attribute Size": { "name": "Response Body Attribute Size", "displayName": "Response Body Attribute Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "SSL Context Service": { "name": "SSL Context Service", "displayName": "SSL Context Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Response Generation Required": { "name": "Response Generation Required", "displayName": "Response Generation Required", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request User-Agent": { "name": "Request User-Agent", "displayName": "Request User-Agent", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Header Request Attributes Enabled": { "name": "Response Header Request Attributes Enabled", "displayName": "Response Header Request Attributes Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP Method": { "name": "HTTP Method", "displayName": "HTTP Method", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Username": { "name": "Request Username", "displayName": "Request Username", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Content-Type": { "name": "Request Content-Type", "displayName": "Request Content-Type", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Attribute Name": { "name": "Response Body Attribute Name", "displayName": "Response Body Attribute Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Digest Authentication Enabled": { "name": "Request Digest Authentication Enabled", "displayName": "Request Digest Authentication Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Multipart Form-Data Name": { "name": "Request Multipart Form-Data Name", "displayName": "Request Multipart Form-Data Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cache Size": { "name": "Response Cache Size", "displayName": "Response Cache Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Ignored": { "name": "Response Body Ignored", "displayName": "Response Body Ignored", "identifiesControllerService": false, "sensitive": false, "dynamic": false } }, "style": {}, "schedulingPeriod": "1 s", "schedulingStrategy": "TIMER_DRIVEN", "executionNode": "ALL", "penaltyDuration": "30 sec", "yieldDuration": "1 sec", "bulletinLevel": "WARN", "runDurationMillis": 0, "concurrentlySchedulableTaskCount": 1, "autoTerminatedRelationships": [ "No Retry", "Retry", "Original", "Failure" ], "scheduledState": "ENABLED", "retryCount": 10, "retriedRelationships": [], "backoffMechanism": "PENALIZE_FLOWFILE", "maxBackoffPeriod": "10 mins", "componentType": "PROCESSOR", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "f5aefb8c-ec8c-3895-a221-b1514bf49019", "instanceIdentifier": "815b69b0-0195-1000-ffff-ffff8e27806d", "name": "Produce station records", "comments": "", "position": { "x": 488.0, "y": 512.0 }, "type": "org.apache.nifi.kafka.processors.PublishKafka", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-kafka-nar", "version": "2.6.0" }, "properties": { "compression.type": "none", "acks": "all", "Message Demarcator": null, "Kafka Key Attribute Encoding": "utf-8", "Record Reader": "e75c34eb-8e60-3b6b-8a29-3dd7b79776c4", "Record Metadata Strategy": "FROM_PROPERTIES", "Transactional ID Prefix": null, "Header Encoding": "UTF-8", "max.request.size": "1 MB", "Topic Name": "stations", "Kafka Key": null, "partition": null, "Kafka Connection Service": "29032623-5723-3b5d-8983-07534da27fd5", "Publish Strategy": "USE_VALUE", "Record Key Writer": null, "Failure Strategy": "Route to Failure", "partitioner.class": "org.apache.kafka.clients.producer.internals.DefaultPartitioner", "Record Writer": "f6b7ad0f-da95-39c4-be8d-4ae944d8034b", "Transactions Enabled": "false", "Message Key Field": null, "FlowFile Attribute Header Pattern": null }, "propertyDescriptors": { "compression.type": { "name": "compression.type", "displayName": "Compression Type", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "acks": { "name": "acks", "displayName": "Delivery Guarantee", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Message Demarcator": { "name": "Message Demarcator", "displayName": "Message Demarcator", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Kafka Key Attribute Encoding": { "name": "Kafka Key Attribute Encoding", "displayName": "Kafka Key Attribute Encoding", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Record Reader": { "name": "Record Reader", "displayName": "Record Reader", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Record Metadata Strategy": { "name": "Record Metadata Strategy", "displayName": "Record Metadata Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Transactional ID Prefix": { "name": "Transactional ID Prefix", "displayName": "Transactional ID Prefix", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Header Encoding": { "name": "Header Encoding", "displayName": "Header Encoding", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "max.request.size": { "name": "max.request.size", "displayName": "Max Request Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Topic Name": { "name": "Topic Name", "displayName": "Topic Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Kafka Key": { "name": "Kafka Key", "displayName": "Kafka Key", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "partition": { "name": "partition", "displayName": "Partition", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Kafka Connection Service": { "name": "Kafka Connection Service", "displayName": "Kafka Connection Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Publish Strategy": { "name": "Publish Strategy", "displayName": "Publish Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Record Key Writer": { "name": "Record Key Writer", "displayName": "Record Key Writer", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Failure Strategy": { "name": "Failure Strategy", "displayName": "Failure Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "partitioner.class": { "name": "partitioner.class", "displayName": "Partitioner Class", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Record Writer": { "name": "Record Writer", "displayName": "Record Writer", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Transactions Enabled": { "name": "Transactions Enabled", "displayName": "Transactions Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Message Key Field": { "name": "Message Key Field", "displayName": "Message Key Field", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "FlowFile Attribute Header Pattern": { "name": "FlowFile Attribute Header Pattern", "displayName": "FlowFile Attribute Header Pattern", "identifiesControllerService": false, "sensitive": false, "dynamic": false } }, "style": {}, "schedulingPeriod": "0 sec", "schedulingStrategy": "TIMER_DRIVEN", "executionNode": "ALL", "penaltyDuration": "30 sec", "yieldDuration": "1 sec", "bulletinLevel": "WARN", "runDurationMillis": 0, "concurrentlySchedulableTaskCount": 1, "autoTerminatedRelationships": [ "success", "failure" ], "scheduledState": "ENABLED", "retryCount": 10, "retriedRelationships": [], "backoffMechanism": "PENALIZE_FLOWFILE", "maxBackoffPeriod": "10 mins", "componentType": "PROCESSOR", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" } ], "inputPorts": [], "outputPorts": [], "connections": [ { "identifier": "1ed79459-2cd4-30cc-b246-7df8c512d6aa", "instanceIdentifier": "f458062a-4156-340b-99e1-2c9c1fd5691d", "name": "", "source": { "id": "4db42754-1203-340d-830d-d662d16d13c8", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Get station list", "comments": "", "instanceIdentifier": "d8795306-ee83-3143-b633-fd70c932add5" }, "destination": { "id": "656d02d2-3100-39e6-a3dd-a8fe91b6dd06", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "SplitRecord", "comments": "", "instanceIdentifier": "cec0a8ff-73d7-35d1-9f9c-0c5cc0af6db2" }, "labelIndex": 1, "zIndex": 0, "selectedRelationships": [ "Response" ], "backPressureObjectThreshold": 1, "backPressureDataSizeThreshold": "1 GB", "flowFileExpiration": "0 sec", "prioritizers": [], "bends": [], "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", "partitioningAttribute": "", "loadBalanceCompression": "DO_NOT_COMPRESS", "componentType": "CONNECTION", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "6005f6e4-6a3f-379b-92bb-af654e9c13d8", "instanceIdentifier": "1b239318-886a-3f35-a3d4-c7a19aa52cad", "name": "", "source": { "id": "d56a1c61-9006-315a-a15c-41439f14d030", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "SplitRecord", "comments": "", "instanceIdentifier": "d78cc57f-9bd1-35a2-9957-a70d52d0fb69" }, "destination": { "id": "8809ece7-fbe0-3613-b7b0-77e05c8f4cb1", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Extract station_uuid", "comments": "", "instanceIdentifier": "1425717b-a077-39b0-872e-7381d0b3848f" }, "labelIndex": 1, "zIndex": 0, "selectedRelationships": [ "splits" ], "backPressureObjectThreshold": 10, "backPressureDataSizeThreshold": "1 GB", "flowFileExpiration": "0 sec", "prioritizers": [], "bends": [], "loadBalanceStrategy": "ROUND_ROBIN", "partitioningAttribute": "", "loadBalanceCompression": "DO_NOT_COMPRESS", "componentType": "CONNECTION", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "be649012-9cd8-3408-aef8-361c82058108", "instanceIdentifier": "8163d1b9-0195-1000-0000-000023899a37", "name": "", "source": { "id": "50bc20ed-2b1b-3068-0000-0000423c0a67", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Add station_uuid", "comments": "", "instanceIdentifier": "3c9c0c1f-db51-39f1-bcea-5aa511e75799" }, "destination": { "id": "98a12d17-c277-3226-af8b-03848dbdbf11", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "PublishKafka", "comments": "", "instanceIdentifier": "816125f7-0195-1000-0000-00006b8c4170" }, "labelIndex": 0, "zIndex": 0, "selectedRelationships": [ "success" ], "backPressureObjectThreshold": 20, "backPressureDataSizeThreshold": "1 GB", "flowFileExpiration": "0 sec", "prioritizers": [], "bends": [], "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", "partitioningAttribute": "", "loadBalanceCompression": "DO_NOT_COMPRESS", "componentType": "CONNECTION", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "18447f5e-4e45-39bc-80ac-86ef6083a913", "instanceIdentifier": "40d45abb-c0bb-3d35-a5e9-d4c28528445c", "name": "", "source": { "id": "ccf5a9db-6d16-3aa5-b054-b33a51405240", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Extract station_uuid", "comments": "", "instanceIdentifier": "6304de41-531f-37e9-b1a9-db89a7181c46" }, "destination": { "id": "d2841e3c-954c-3f6c-8c2b-0b4f20cea21c", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Get 30 minutes of historic data", "comments": "", "instanceIdentifier": "a11d09f2-9d6d-390d-947c-397b881e980f" }, "labelIndex": 1, "zIndex": 0, "selectedRelationships": [ "matched" ], "backPressureObjectThreshold": 10, "backPressureDataSizeThreshold": "1 GB", "flowFileExpiration": "0 sec", "prioritizers": [], "bends": [], "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", "partitioningAttribute": "", "loadBalanceCompression": "DO_NOT_COMPRESS", "componentType": "CONNECTION", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "d7a99464-402e-35fc-b090-3bc3d5fcb68a", "instanceIdentifier": "d5259744-57c7-3711-a0da-8114cb7db873", "name": "", "source": { "id": "8809ece7-fbe0-3613-b7b0-77e05c8f4cb1", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Extract station_uuid", "comments": "", "instanceIdentifier": "1425717b-a077-39b0-872e-7381d0b3848f" }, "destination": { "id": "a961da8c-d228-3d19-b6ed-2d48ebe35b05", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Get 30 days historic data", "comments": "", "instanceIdentifier": "15a87495-c9dc-36db-a3f0-828a63a688f9" }, "labelIndex": 1, "zIndex": 0, "selectedRelationships": [ "matched" ], "backPressureObjectThreshold": 10, "backPressureDataSizeThreshold": "1 GB", "flowFileExpiration": "0 sec", "prioritizers": [], "bends": [], "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", "partitioningAttribute": "", "loadBalanceCompression": "DO_NOT_COMPRESS", "componentType": "CONNECTION", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "3b89e1cf-29b9-3e53-bcc5-a58dc0db17a9", "instanceIdentifier": "296a4a6e-cf82-39bb-a329-9fc2a74652e7", "name": "", "source": { "id": "e85c2e60-192e-3ed8-ab64-750311e0ed45", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Get station list", "comments": "", "instanceIdentifier": "46c0209c-7abe-3a8e-bbc0-39f9333f14b1" }, "destination": { "id": "f5aefb8c-ec8c-3895-a221-b1514bf49019", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Produce station records", "comments": "", "instanceIdentifier": "815b69b0-0195-1000-ffff-ffff8e27806d" }, "labelIndex": 1, "zIndex": 0, "selectedRelationships": [ "Response" ], "backPressureObjectThreshold": 10000, "backPressureDataSizeThreshold": "1 GB", "flowFileExpiration": "0 sec", "prioritizers": [], "bends": [], "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", "partitioningAttribute": "", "loadBalanceCompression": "DO_NOT_COMPRESS", "componentType": "CONNECTION", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "0085c625-9d46-3f18-8d05-2d55c274a50e", "instanceIdentifier": "50823b83-873f-3bcd-b044-a85de2c53cf9", "name": "", "source": { "id": "656d02d2-3100-39e6-a3dd-a8fe91b6dd06", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "SplitRecord", "comments": "", "instanceIdentifier": "cec0a8ff-73d7-35d1-9f9c-0c5cc0af6db2" }, "destination": { "id": "ccf5a9db-6d16-3aa5-b054-b33a51405240", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Extract station_uuid", "comments": "", "instanceIdentifier": "6304de41-531f-37e9-b1a9-db89a7181c46" }, "labelIndex": 1, "zIndex": 0, "selectedRelationships": [ "splits" ], "backPressureObjectThreshold": 10, "backPressureDataSizeThreshold": "1 GB", "flowFileExpiration": "0 sec", "prioritizers": [], "bends": [], "loadBalanceStrategy": "ROUND_ROBIN", "partitioningAttribute": "", "loadBalanceCompression": "DO_NOT_COMPRESS", "componentType": "CONNECTION", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "9424162b-ce44-33ee-8b7a-cfea386e47e4", "instanceIdentifier": "74f2322f-a826-39db-87e3-114ce6a576e4", "name": "", "source": { "id": "e2bdb78b-009b-3086-ad39-816874d3be80", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Get station list", "comments": "", "instanceIdentifier": "72294ac8-46e9-33fb-8923-8e6cb4c69269" }, "destination": { "id": "d56a1c61-9006-315a-a15c-41439f14d030", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "SplitRecord", "comments": "", "instanceIdentifier": "d78cc57f-9bd1-35a2-9957-a70d52d0fb69" }, "labelIndex": 1, "zIndex": 0, "selectedRelationships": [ "Response" ], "backPressureObjectThreshold": 1, "backPressureDataSizeThreshold": "1 GB", "flowFileExpiration": "0 sec", "prioritizers": [], "bends": [], "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", "partitioningAttribute": "", "loadBalanceCompression": "DO_NOT_COMPRESS", "componentType": "CONNECTION", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "776daaa4-a1f6-38a7-b233-2102ddf589d8", "instanceIdentifier": "fbb55c02-33f9-3651-8e7d-f55f264e0514", "name": "", "source": { "id": "d2841e3c-954c-3f6c-8c2b-0b4f20cea21c", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Get 30 minutes of historic data", "comments": "", "instanceIdentifier": "a11d09f2-9d6d-390d-947c-397b881e980f" }, "destination": { "id": "50bc20ed-2b1b-3068-0000-0000423c0a67", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Add station_uuid", "comments": "", "instanceIdentifier": "3c9c0c1f-db51-39f1-bcea-5aa511e75799" }, "labelIndex": 1, "zIndex": 0, "selectedRelationships": [ "Response" ], "backPressureObjectThreshold": 10, "backPressureDataSizeThreshold": "1 GB", "flowFileExpiration": "0 sec", "prioritizers": [], "bends": [], "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", "partitioningAttribute": "", "loadBalanceCompression": "DO_NOT_COMPRESS", "componentType": "CONNECTION", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "82121195-d4b9-37e9-9994-87a6d890cc71", "instanceIdentifier": "8162fee0-0195-1000-ffff-ffff961b93ba", "name": "", "source": { "id": "dde01269-6b44-3f4c-9406-8e291cd8aaa4", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Add station_uuid", "comments": "", "instanceIdentifier": "816243be-0195-1000-ffff-fffff00620a1" }, "destination": { "id": "26542ec9-e3e3-380f-ab7a-7fa4b2c46d1e", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "PublishKafka", "comments": "", "instanceIdentifier": "815f05d7-0195-1000-0000-000005d97f79" }, "labelIndex": 0, "zIndex": 0, "selectedRelationships": [ "success" ], "backPressureObjectThreshold": 20, "backPressureDataSizeThreshold": "1 GB", "flowFileExpiration": "0 sec", "prioritizers": [], "bends": [], "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", "partitioningAttribute": "", "loadBalanceCompression": "DO_NOT_COMPRESS", "componentType": "CONNECTION", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "e911351c-a4a5-3a14-9c74-ebd96eef0f8d", "instanceIdentifier": "8b7cc62b-560c-3b8e-903a-f9572ac50df8", "name": "", "source": { "id": "a961da8c-d228-3d19-b6ed-2d48ebe35b05", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Get 30 days historic data", "comments": "", "instanceIdentifier": "15a87495-c9dc-36db-a3f0-828a63a688f9" }, "destination": { "id": "dde01269-6b44-3f4c-9406-8e291cd8aaa4", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Add station_uuid", "comments": "", "instanceIdentifier": "816243be-0195-1000-ffff-fffff00620a1" }, "labelIndex": 1, "zIndex": 0, "selectedRelationships": [ "Response" ], "backPressureObjectThreshold": 10, "backPressureDataSizeThreshold": "1 GB", "flowFileExpiration": "0 sec", "prioritizers": [], "bends": [], "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", "partitioningAttribute": "", "loadBalanceCompression": "DO_NOT_COMPRESS", "componentType": "CONNECTION", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" } ], "labels": [ { "identifier": "10ab1424-3268-3b7f-9e4e-d843df2427cd", "instanceIdentifier": "a57103e7-30b7-38d7-bb6c-f80b4dc4a710", "position": { "x": 485.99999797539556, "y": 174.99999837990495 }, "label": "Water levels data", "zIndex": 0, "width": 1104.0, "height": 24.0, "style": { "font-size": "12px" }, "componentType": "LABEL", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "938fbab6-21ee-347f-814a-b0016b7405b3", "instanceIdentifier": "99926082-4766-3223-8332-3f4affeae76b", "position": { "x": 1237.9999979753957, "y": 214.99999837990495 }, "label": "Stream real-time data", "zIndex": 0, "width": 152.0, "height": 24.0, "style": { "font-size": "12px" }, "componentType": "LABEL", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "b80512f7-0274-3712-8884-d6b31555927a", "instanceIdentifier": "7ef5e570-ca1c-3a70-abf7-9749db121fbc", "position": { "x": 485.99999797539556, "y": 214.99999837990495 }, "label": "Ingest station records", "zIndex": 0, "width": 152.0, "height": 24.0, "style": { "font-size": "12px" }, "componentType": "LABEL", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "4524d905-b8c4-32f6-ae83-4ecc54f95bfa", "instanceIdentifier": "a501f0f6-3372-3444-829c-2109de521069", "position": { "x": 861.9999979753956, "y": 214.99999837990495 }, "label": "Ingest historic data", "zIndex": 0, "width": 152.0, "height": 24.0, "style": { "font-size": "12px" }, "componentType": "LABEL", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" } ], "funnels": [], "controllerServices": [ { "identifier": "a43e5844-29fd-3ad4-8f84-5cfb771da897", "instanceIdentifier": "3213e3ae-00c3-3dd0-a838-770a15dc68e0", "name": "StandardRestrictedSSLContextService", "comments": "", "type": "org.apache.nifi.ssl.StandardRestrictedSSLContextService", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-ssl-context-service-nar", "version": "2.6.0" }, "properties": { "Truststore Type": "PKCS12", "Truststore Password": "secret", "SSL Protocol": "TLSv1.3", "Keystore Type": "PKCS12", "Keystore Password": "secret", "Truststore Filename": "/stackable/keystore/truststore.p12", "Keystore Filename": "/stackable/keystore/keystore.p12" }, "propertyDescriptors": { "Truststore Type": { "name": "Truststore Type", "displayName": "Truststore Type", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "SSL Protocol": { "name": "SSL Protocol", "displayName": "TLS Protocol", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Keystore Type": { "name": "Keystore Type", "displayName": "Keystore Type", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Truststore Filename": { "name": "Truststore Filename", "displayName": "Truststore Filename", "identifiesControllerService": false, "sensitive": false, "dynamic": false, "resourceDefinition": { "cardinality": "SINGLE", "resourceTypes": [ "FILE" ] } }, "Keystore Password": { "name": "Keystore Password", "displayName": "Keystore Password", "identifiesControllerService": false, "sensitive": true, "dynamic": false }, "key-password": { "name": "key-password", "displayName": "Key Password", "identifiesControllerService": false, "sensitive": true, "dynamic": false }, "Truststore Password": { "name": "Truststore Password", "displayName": "Truststore Password", "identifiesControllerService": false, "sensitive": true, "dynamic": false }, "Keystore Filename": { "name": "Keystore Filename", "displayName": "Keystore Filename", "identifiesControllerService": false, "sensitive": false, "dynamic": false, "resourceDefinition": { "cardinality": "SINGLE", "resourceTypes": [ "FILE" ] } } }, "controllerServiceApis": [ { "type": "org.apache.nifi.ssl.SSLContextProvider", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-services-api-nar", "version": "2.6.0" } }, { "type": "org.apache.nifi.ssl.SSLContextService", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-services-api-nar", "version": "2.6.0" } }, { "type": "org.apache.nifi.ssl.RestrictedSSLContextService", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-services-api-nar", "version": "2.6.0" } } ], "scheduledState": "DISABLED", "bulletinLevel": "WARN", "componentType": "CONTROLLER_SERVICE", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "f6b7ad0f-da95-39c4-be8d-4ae944d8034b", "instanceIdentifier": "ca38b3a6-868b-33f0-a858-30da336cc679", "name": "JsonRecordSetWriter", "type": "org.apache.nifi.json.JsonRecordSetWriter", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-record-serialization-services-nar", "version": "2.6.0" }, "properties": { "schema-reference-reader": null, "schema-branch": null, "Allow Scientific Notation": "false", "compression-level": "1", "schema-cache": null, "Timestamp Format": null, "Date Format": null, "Pretty Print JSON": "false", "compression-format": "none", "Schema Write Strategy": "no-schema", "suppress-nulls": "never-suppress", "output-grouping": "output-array", "schema-name": "${schema.name}", "schema-registry": null, "Time Format": null, "schema-access-strategy": "inherit-record-schema", "schema-version": null, "schema-text": "${avro.schema}", "Schema Reference Writer": null }, "propertyDescriptors": { "schema-reference-reader": { "name": "schema-reference-reader", "displayName": "Schema Reference Reader", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "schema-branch": { "name": "schema-branch", "displayName": "Schema Branch", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Allow Scientific Notation": { "name": "Allow Scientific Notation", "displayName": "Allow Scientific Notation", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "compression-level": { "name": "compression-level", "displayName": "Compression Level", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "schema-cache": { "name": "schema-cache", "displayName": "Schema Cache", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Timestamp Format": { "name": "Timestamp Format", "displayName": "Timestamp Format", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Date Format": { "name": "Date Format", "displayName": "Date Format", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Pretty Print JSON": { "name": "Pretty Print JSON", "displayName": "Pretty Print JSON", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "compression-format": { "name": "compression-format", "displayName": "Compression Format", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Schema Write Strategy": { "name": "Schema Write Strategy", "displayName": "Schema Write Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "suppress-nulls": { "name": "suppress-nulls", "displayName": "Suppress Null Values", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "output-grouping": { "name": "output-grouping", "displayName": "Output Grouping", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "schema-name": { "name": "schema-name", "displayName": "Schema Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "schema-registry": { "name": "schema-registry", "displayName": "Schema Registry", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Time Format": { "name": "Time Format", "displayName": "Time Format", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "schema-access-strategy": { "name": "schema-access-strategy", "displayName": "Schema Access Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "schema-version": { "name": "schema-version", "displayName": "Schema Version", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "schema-text": { "name": "schema-text", "displayName": "Schema Text", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Schema Reference Writer": { "name": "Schema Reference Writer", "displayName": "Schema Reference Writer", "identifiesControllerService": true, "sensitive": false, "dynamic": false } }, "controllerServiceApis": [ { "type": "org.apache.nifi.serialization.RecordSetWriterFactory", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-services-api-nar", "version": "2.6.0" } } ], "scheduledState": "DISABLED", "bulletinLevel": "WARN", "componentType": "CONTROLLER_SERVICE", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "e75c34eb-8e60-3b6b-8a29-3dd7b79776c4", "instanceIdentifier": "2d152882-2f62-3e45-8c8e-5f3127f8b931", "name": "JsonTreeReader", "type": "org.apache.nifi.json.JsonTreeReader", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-record-serialization-services-nar", "version": "2.6.0" }, "properties": { "schema-reference-reader": null, "schema-branch": null, "Max String Length": "20 MB", "schema-application-strategy": "SELECTED_PART", "Timestamp Format": null, "schema-inference-cache": null, "Date Format": null, "schema-name": "${schema.name}", "starting-field-strategy": "ROOT_NODE", "schema-registry": null, "starting-field-name": null, "Time Format": null, "schema-access-strategy": "infer-schema", "schema-version": null, "schema-text": "${avro.schema}", "Allow Comments": "false" }, "propertyDescriptors": { "schema-reference-reader": { "name": "schema-reference-reader", "displayName": "Schema Reference Reader", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "schema-branch": { "name": "schema-branch", "displayName": "Schema Branch", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Max String Length": { "name": "Max String Length", "displayName": "Max String Length", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "schema-application-strategy": { "name": "schema-application-strategy", "displayName": "Schema Application Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Timestamp Format": { "name": "Timestamp Format", "displayName": "Timestamp Format", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "schema-inference-cache": { "name": "schema-inference-cache", "displayName": "Schema Inference Cache", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Date Format": { "name": "Date Format", "displayName": "Date Format", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "schema-name": { "name": "schema-name", "displayName": "Schema Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "starting-field-strategy": { "name": "starting-field-strategy", "displayName": "Starting Field Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "schema-registry": { "name": "schema-registry", "displayName": "Schema Registry", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "starting-field-name": { "name": "starting-field-name", "displayName": "Starting Field Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Time Format": { "name": "Time Format", "displayName": "Time Format", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "schema-access-strategy": { "name": "schema-access-strategy", "displayName": "Schema Access Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "schema-version": { "name": "schema-version", "displayName": "Schema Version", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "schema-text": { "name": "schema-text", "displayName": "Schema Text", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Allow Comments": { "name": "Allow Comments", "displayName": "Allow Comments", "identifiesControllerService": false, "sensitive": false, "dynamic": false } }, "controllerServiceApis": [ { "type": "org.apache.nifi.serialization.RecordReaderFactory", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-services-api-nar", "version": "2.6.0" } } ], "scheduledState": "DISABLED", "bulletinLevel": "WARN", "componentType": "CONTROLLER_SERVICE", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "29032623-5723-3b5d-8983-07534da27fd5", "instanceIdentifier": "815ba7c0-0195-1000-0000-00002ff4760b", "name": "Kafka3ConnectionService", "comments": "", "type": "org.apache.nifi.kafka.service.Kafka3ConnectionService", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-kafka-3-service-nar", "version": "2.6.0" }, "properties": { "security.protocol": "SSL", "SSL Context Service": "a43e5844-29fd-3ad4-8f84-5cfb771da897", "ack.wait.time": "5 sec", "sasl.username": null, "max.poll.records": "10000", "sasl.mechanism": "GSSAPI", "isolation.level": "read_committed", "max.block.ms": "5 sec", "bootstrap.servers": "kafka-broker-default.default.svc.cluster.local:9093", "kerberos-user-service": null, "sasl.kerberos.service.name": null, "default.api.timeout.ms": "60 sec" }, "propertyDescriptors": { "ack.wait.time": { "name": "ack.wait.time", "displayName": "Acknowledgment Wait Time", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "sasl.username": { "name": "sasl.username", "displayName": "SASL Username", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "max.poll.records": { "name": "max.poll.records", "displayName": "Max Poll Records", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "bootstrap.servers": { "name": "bootstrap.servers", "displayName": "Bootstrap Servers", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "sasl.kerberos.service.name": { "name": "sasl.kerberos.service.name", "displayName": "Kerberos Service Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "security.protocol": { "name": "security.protocol", "displayName": "Security Protocol", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "SSL Context Service": { "name": "SSL Context Service", "displayName": "SSL Context Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "sasl.mechanism": { "name": "sasl.mechanism", "displayName": "SASL Mechanism", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "isolation.level": { "name": "isolation.level", "displayName": "Transaction Isolation Level", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "max.block.ms": { "name": "max.block.ms", "displayName": "Max Metadata Wait Time", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "kerberos-user-service": { "name": "kerberos-user-service", "displayName": "Kerberos User Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "sasl.password": { "name": "sasl.password", "displayName": "SASL Password", "identifiesControllerService": false, "sensitive": true, "dynamic": false }, "default.api.timeout.ms": { "name": "default.api.timeout.ms", "displayName": "Client Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false } }, "controllerServiceApis": [ { "type": "org.apache.nifi.kafka.service.api.KafkaConnectionService", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-kafka-service-api-nar", "version": "2.6.0" } } ], "scheduledState": "DISABLED", "bulletinLevel": "WARN", "componentType": "CONTROLLER_SERVICE", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" } ], "defaultFlowFileExpiration": "0 sec", "defaultBackPressureObjectThreshold": 10000, "defaultBackPressureDataSizeThreshold": "1 GB", "scheduledState": "ENABLED", "executionEngine": "INHERITED", "maxConcurrentTasks": 1, "statelessFlowTimeout": "1 min", "flowFileConcurrency": "UNBOUNDED", "flowFileOutboundPolicy": "STREAM_WHEN_AVAILABLE", "componentType": "PROCESS_GROUP" }, "externalControllerServices": {}, "parameterContexts": {}, "flowEncodingVersion": "1.0", "parameterProviders": {}, "latest": false } diff --git a/demos/nifi-kafka-druid-water-level-data/create-nifi-ingestion-job.yaml b/demos/nifi-kafka-druid-water-level-data/create-nifi-ingestion-job.yaml index 2ef923bb..277c9812 100644 --- a/demos/nifi-kafka-druid-water-level-data/create-nifi-ingestion-job.yaml +++ b/demos/nifi-kafka-druid-water-level-data/create-nifi-ingestion-job.yaml @@ -32,6 +32,8 @@ spec: volumeMounts: - name: script mountPath: /tmp/script + - name: flow + mountPath: /tmp/flow - name: nifi-admin-credentials-secret mountPath: /nifi-admin-credentials-secret env: @@ -43,6 +45,9 @@ spec: - name: script configMap: name: create-nifi-ingestion-job-script + - name: flow + configMap: + name: ingest-water-level-data-flow - name: nifi-admin-credentials-secret secret: secretName: nifi-admin-credentials-secret @@ -76,12 +81,6 @@ data: service_login(username=USERNAME, password=PASSWORD) print("Logged in") - response = requests.get("https://raw.githubusercontent.com/stackabletech/demos/refs/heads/main/demos/nifi-kafka-druid-water-level-data/IngestWaterLevelsToKafka.json") - - filename = "/tmp/IngestWaterLevelsToKafka.json" - with open(filename, "wb") as f: - f.write(response.content) - pg_id = get_root_pg_id() if not nipyapi.config.nifi_config.api_client: @@ -103,7 +102,7 @@ data: ('clientId', nipyapi.nifi.FlowApi().generate_client_id()), ], files={ - 'file': filename + 'file': "/tmp/flow/IngestWaterLevelsToKafka.json" }, auth_settings=['tokenAuth']) @@ -123,3 +122,12 @@ data: print(f"Failed to schedule controller {controller.component.name}: {e}") schedule_process_group(pg_id, scheduled=True) +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: ingest-water-level-data-flow + namespace: default +data: + IngestWaterLevelsToKafka.json: | + { "flowContents": { "identifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "instanceIdentifier": "81598f35-0195-1000-0000-000073723729", "name": "IngestWaterLevelsToKafka_raw", "comments": "", "position": { "x": -472.0, "y": -496.0 }, "processGroups": [], "remoteProcessGroups": [], "processors": [ { "identifier": "e85c2e60-192e-3ed8-ab64-750311e0ed45", "instanceIdentifier": "46c0209c-7abe-3a8e-bbc0-39f9333f14b1", "name": "Get station list", "comments": "", "position": { "x": 485.99999797539556, "y": 246.99999837990495 }, "type": "org.apache.nifi.processors.standard.InvokeHTTP", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-nar", "version": "2.6.0" }, "properties": { "Request Content-Encoding": "DISABLED", "proxy-configuration-service": null, "Request Multipart Form-Data Filename Enabled": "true", "Request Chunked Transfer-Encoding Enabled": "false", "Response Header Request Attributes Prefix": null, "HTTP/2 Disabled": "False", "Connection Timeout": "5 secs", "Response Cookie Strategy": "DISABLED", "Socket Read Timeout": "15 secs", "Socket Idle Connections": "5", "Request Body Enabled": "true", "HTTP URL": "https://www.pegelonline.wsv.de/webservices/rest-api/v2/stations.json", "Request OAuth2 Access Token Provider": null, "Socket Idle Timeout": "5 mins", "Response Redirects Enabled": "True", "Socket Write Timeout": "15 secs", "Request Header Attributes Pattern": null, "Response FlowFile Naming Strategy": "RANDOM", "Response Cache Enabled": "false", "Request Date Header Enabled": "True", "Request Failure Penalization Enabled": "false", "Response Body Attribute Size": "256", "SSL Context Service": null, "Response Generation Required": "false", "Request User-Agent": null, "Response Header Request Attributes Enabled": "false", "HTTP Method": "GET", "Request Username": null, "Request Content-Type": "${mime.type}", "Response Body Attribute Name": null, "Request Digest Authentication Enabled": "false", "Request Multipart Form-Data Name": null, "Response Cache Size": "10MB", "Response Body Ignored": "false" }, "propertyDescriptors": { "Request Content-Encoding": { "name": "Request Content-Encoding", "displayName": "Request Content-Encoding", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "proxy-configuration-service": { "name": "proxy-configuration-service", "displayName": "Proxy Configuration Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Request Multipart Form-Data Filename Enabled": { "name": "Request Multipart Form-Data Filename Enabled", "displayName": "Request Multipart Form-Data Filename Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Chunked Transfer-Encoding Enabled": { "name": "Request Chunked Transfer-Encoding Enabled", "displayName": "Request Chunked Transfer-Encoding Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Header Request Attributes Prefix": { "name": "Response Header Request Attributes Prefix", "displayName": "Response Header Request Attributes Prefix", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP/2 Disabled": { "name": "HTTP/2 Disabled", "displayName": "HTTP/2 Disabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Connection Timeout": { "name": "Connection Timeout", "displayName": "Connection Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cookie Strategy": { "name": "Response Cookie Strategy", "displayName": "Response Cookie Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Password": { "name": "Request Password", "displayName": "Request Password", "identifiesControllerService": false, "sensitive": true, "dynamic": false }, "Socket Read Timeout": { "name": "Socket Read Timeout", "displayName": "Socket Read Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Socket Idle Connections": { "name": "Socket Idle Connections", "displayName": "Socket Idle Connections", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Body Enabled": { "name": "Request Body Enabled", "displayName": "Request Body Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP URL": { "name": "HTTP URL", "displayName": "HTTP URL", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request OAuth2 Access Token Provider": { "name": "Request OAuth2 Access Token Provider", "displayName": "Request OAuth2 Access Token Provider", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Socket Idle Timeout": { "name": "Socket Idle Timeout", "displayName": "Socket Idle Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Redirects Enabled": { "name": "Response Redirects Enabled", "displayName": "Response Redirects Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Socket Write Timeout": { "name": "Socket Write Timeout", "displayName": "Socket Write Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Header Attributes Pattern": { "name": "Request Header Attributes Pattern", "displayName": "Request Header Attributes Pattern", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response FlowFile Naming Strategy": { "name": "Response FlowFile Naming Strategy", "displayName": "Response FlowFile Naming Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cache Enabled": { "name": "Response Cache Enabled", "displayName": "Response Cache Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Date Header Enabled": { "name": "Request Date Header Enabled", "displayName": "Request Date Header Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Failure Penalization Enabled": { "name": "Request Failure Penalization Enabled", "displayName": "Request Failure Penalization Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Attribute Size": { "name": "Response Body Attribute Size", "displayName": "Response Body Attribute Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "SSL Context Service": { "name": "SSL Context Service", "displayName": "SSL Context Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Response Generation Required": { "name": "Response Generation Required", "displayName": "Response Generation Required", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request User-Agent": { "name": "Request User-Agent", "displayName": "Request User-Agent", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Header Request Attributes Enabled": { "name": "Response Header Request Attributes Enabled", "displayName": "Response Header Request Attributes Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP Method": { "name": "HTTP Method", "displayName": "HTTP Method", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Username": { "name": "Request Username", "displayName": "Request Username", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Content-Type": { "name": "Request Content-Type", "displayName": "Request Content-Type", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Attribute Name": { "name": "Response Body Attribute Name", "displayName": "Response Body Attribute Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Digest Authentication Enabled": { "name": "Request Digest Authentication Enabled", "displayName": "Request Digest Authentication Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Multipart Form-Data Name": { "name": "Request Multipart Form-Data Name", "displayName": "Request Multipart Form-Data Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cache Size": { "name": "Response Cache Size", "displayName": "Response Cache Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Ignored": { "name": "Response Body Ignored", "displayName": "Response Body Ignored", "identifiesControllerService": false, "sensitive": false, "dynamic": false } }, "style": {}, "schedulingPeriod": "365000 days", "schedulingStrategy": "TIMER_DRIVEN", "executionNode": "PRIMARY", "penaltyDuration": "30 sec", "yieldDuration": "1 sec", "bulletinLevel": "WARN", "runDurationMillis": 0, "concurrentlySchedulableTaskCount": 1, "autoTerminatedRelationships": [ "No Retry", "Retry", "Original", "Failure" ], "scheduledState": "ENABLED", "retryCount": 10, "retriedRelationships": [], "backoffMechanism": "PENALIZE_FLOWFILE", "maxBackoffPeriod": "10 mins", "componentType": "PROCESSOR", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "50bc20ed-2b1b-3068-0000-0000423c0a67", "instanceIdentifier": "3c9c0c1f-db51-39f1-bcea-5aa511e75799", "name": "Add station_uuid", "comments": "", "position": { "x": 1240.0, "y": 1192.0 }, "type": "org.apache.nifi.processors.jolt.JoltTransformJSON", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-jolt-nar", "version": "2.6.0" }, "properties": { "Jolt Transform": "jolt-transform-chain", "Max String Length": "20 MB", "Transform Cache Size": "1", "Custom Transformation Class Name": null, "Custom Module Directory": null, "Pretty Print": "false", "Jolt Specification": "[\n {\n \"operation\": \"default\",\n \"spec\": {\n \"*\": {\n \"station_uuid\": \"${station_uuid}\"\n }\n }\n }\n]\n" }, "propertyDescriptors": { "Jolt Transform": { "name": "Jolt Transform", "displayName": "Jolt Transform", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Max String Length": { "name": "Max String Length", "displayName": "Max String Length", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Transform Cache Size": { "name": "Transform Cache Size", "displayName": "Transform Cache Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Custom Transformation Class Name": { "name": "Custom Transformation Class Name", "displayName": "Custom Transformation Class Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Custom Module Directory": { "name": "Custom Module Directory", "displayName": "Custom Module Directory", "identifiesControllerService": false, "sensitive": false, "dynamic": false, "resourceDefinition": { "cardinality": "MULTIPLE", "resourceTypes": [ "DIRECTORY", "FILE" ] } }, "Pretty Print": { "name": "Pretty Print", "displayName": "Pretty Print", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Jolt Specification": { "name": "Jolt Specification", "displayName": "Jolt Specification", "identifiesControllerService": false, "sensitive": false, "dynamic": false, "resourceDefinition": { "cardinality": "SINGLE", "resourceTypes": [ "TEXT", "FILE" ] } } }, "style": {}, "schedulingPeriod": "0 sec", "schedulingStrategy": "TIMER_DRIVEN", "executionNode": "ALL", "penaltyDuration": "30 sec", "yieldDuration": "1 sec", "bulletinLevel": "WARN", "runDurationMillis": 0, "concurrentlySchedulableTaskCount": 1, "autoTerminatedRelationships": [ "failure" ], "scheduledState": "ENABLED", "retryCount": 10, "retriedRelationships": [], "backoffMechanism": "PENALIZE_FLOWFILE", "maxBackoffPeriod": "10 mins", "componentType": "PROCESSOR", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "8809ece7-fbe0-3613-b7b0-77e05c8f4cb1", "instanceIdentifier": "1425717b-a077-39b0-872e-7381d0b3848f", "name": "Extract station_uuid", "comments": "", "position": { "x": 861.9999979753956, "y": 726.9999983799049 }, "type": "org.apache.nifi.processors.standard.EvaluateJsonPath", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-nar", "version": "2.6.0" }, "properties": { "Destination": "flowfile-attribute", "Max String Length": "20 MB", "Return Type": "auto-detect", "Null Value Representation": "empty string", "station_uuid": "$.uuid", "Path Not Found Behavior": "ignore" }, "propertyDescriptors": { "Destination": { "name": "Destination", "displayName": "Destination", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Max String Length": { "name": "Max String Length", "displayName": "Max String Length", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Return Type": { "name": "Return Type", "displayName": "Return Type", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Null Value Representation": { "name": "Null Value Representation", "displayName": "Null Value Representation", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "station_uuid": { "name": "station_uuid", "displayName": "station_uuid", "identifiesControllerService": false, "sensitive": false, "dynamic": true }, "Path Not Found Behavior": { "name": "Path Not Found Behavior", "displayName": "Path Not Found Behavior", "identifiesControllerService": false, "sensitive": false, "dynamic": false } }, "style": {}, "schedulingPeriod": "0 sec", "schedulingStrategy": "TIMER_DRIVEN", "executionNode": "ALL", "penaltyDuration": "30 sec", "yieldDuration": "1 sec", "bulletinLevel": "WARN", "runDurationMillis": 0, "concurrentlySchedulableTaskCount": 1, "autoTerminatedRelationships": [ "failure", "unmatched" ], "scheduledState": "ENABLED", "retryCount": 10, "retriedRelationships": [], "backoffMechanism": "PENALIZE_FLOWFILE", "maxBackoffPeriod": "10 mins", "componentType": "PROCESSOR", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "656d02d2-3100-39e6-a3dd-a8fe91b6dd06", "instanceIdentifier": "cec0a8ff-73d7-35d1-9f9c-0c5cc0af6db2", "name": "SplitRecord", "comments": "", "position": { "x": 1237.9999979753957, "y": 510.9999983799049 }, "type": "org.apache.nifi.processors.standard.SplitRecord", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-nar", "version": "2.6.0" }, "properties": { "Record Writer": "f6b7ad0f-da95-39c4-be8d-4ae944d8034b", "Record Reader": "e75c34eb-8e60-3b6b-8a29-3dd7b79776c4", "Records Per Split": "1" }, "propertyDescriptors": { "Record Writer": { "name": "Record Writer", "displayName": "Record Writer", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Record Reader": { "name": "Record Reader", "displayName": "Record Reader", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Records Per Split": { "name": "Records Per Split", "displayName": "Records Per Split", "identifiesControllerService": false, "sensitive": false, "dynamic": false } }, "style": {}, "schedulingPeriod": "0 sec", "schedulingStrategy": "TIMER_DRIVEN", "executionNode": "ALL", "penaltyDuration": "30 sec", "yieldDuration": "1 sec", "bulletinLevel": "WARN", "runDurationMillis": 0, "concurrentlySchedulableTaskCount": 1, "autoTerminatedRelationships": [ "original", "failure" ], "scheduledState": "ENABLED", "retryCount": 10, "retriedRelationships": [], "backoffMechanism": "PENALIZE_FLOWFILE", "maxBackoffPeriod": "10 mins", "componentType": "PROCESSOR", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "e2bdb78b-009b-3086-ad39-816874d3be80", "instanceIdentifier": "72294ac8-46e9-33fb-8923-8e6cb4c69269", "name": "Get station list", "comments": "", "position": { "x": 861.9999979753956, "y": 246.99999837990495 }, "type": "org.apache.nifi.processors.standard.InvokeHTTP", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-nar", "version": "2.6.0" }, "properties": { "Request Content-Encoding": "DISABLED", "proxy-configuration-service": null, "Request Multipart Form-Data Filename Enabled": "true", "Request Chunked Transfer-Encoding Enabled": "false", "Response Header Request Attributes Prefix": null, "HTTP/2 Disabled": "False", "Connection Timeout": "5 secs", "Response Cookie Strategy": "DISABLED", "Socket Read Timeout": "15 secs", "Socket Idle Connections": "5", "Request Body Enabled": "true", "HTTP URL": "https://www.pegelonline.wsv.de/webservices/rest-api/v2/stations.json", "Request OAuth2 Access Token Provider": null, "Socket Idle Timeout": "5 mins", "Response Redirects Enabled": "True", "Socket Write Timeout": "15 secs", "Request Header Attributes Pattern": null, "Response FlowFile Naming Strategy": "RANDOM", "Response Cache Enabled": "false", "Request Date Header Enabled": "True", "Request Failure Penalization Enabled": "false", "Response Body Attribute Size": "256", "SSL Context Service": null, "Response Generation Required": "false", "Request User-Agent": null, "Response Header Request Attributes Enabled": "false", "HTTP Method": "GET", "Request Username": null, "Request Content-Type": "${mime.type}", "Response Body Attribute Name": null, "Request Digest Authentication Enabled": "false", "Request Multipart Form-Data Name": null, "Response Cache Size": "10MB", "Response Body Ignored": "false" }, "propertyDescriptors": { "Request Content-Encoding": { "name": "Request Content-Encoding", "displayName": "Request Content-Encoding", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "proxy-configuration-service": { "name": "proxy-configuration-service", "displayName": "Proxy Configuration Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Request Multipart Form-Data Filename Enabled": { "name": "Request Multipart Form-Data Filename Enabled", "displayName": "Request Multipart Form-Data Filename Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Chunked Transfer-Encoding Enabled": { "name": "Request Chunked Transfer-Encoding Enabled", "displayName": "Request Chunked Transfer-Encoding Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Header Request Attributes Prefix": { "name": "Response Header Request Attributes Prefix", "displayName": "Response Header Request Attributes Prefix", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP/2 Disabled": { "name": "HTTP/2 Disabled", "displayName": "HTTP/2 Disabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Connection Timeout": { "name": "Connection Timeout", "displayName": "Connection Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cookie Strategy": { "name": "Response Cookie Strategy", "displayName": "Response Cookie Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Password": { "name": "Request Password", "displayName": "Request Password", "identifiesControllerService": false, "sensitive": true, "dynamic": false }, "Socket Read Timeout": { "name": "Socket Read Timeout", "displayName": "Socket Read Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Socket Idle Connections": { "name": "Socket Idle Connections", "displayName": "Socket Idle Connections", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Body Enabled": { "name": "Request Body Enabled", "displayName": "Request Body Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP URL": { "name": "HTTP URL", "displayName": "HTTP URL", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request OAuth2 Access Token Provider": { "name": "Request OAuth2 Access Token Provider", "displayName": "Request OAuth2 Access Token Provider", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Socket Idle Timeout": { "name": "Socket Idle Timeout", "displayName": "Socket Idle Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Redirects Enabled": { "name": "Response Redirects Enabled", "displayName": "Response Redirects Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Socket Write Timeout": { "name": "Socket Write Timeout", "displayName": "Socket Write Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Header Attributes Pattern": { "name": "Request Header Attributes Pattern", "displayName": "Request Header Attributes Pattern", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response FlowFile Naming Strategy": { "name": "Response FlowFile Naming Strategy", "displayName": "Response FlowFile Naming Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cache Enabled": { "name": "Response Cache Enabled", "displayName": "Response Cache Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Date Header Enabled": { "name": "Request Date Header Enabled", "displayName": "Request Date Header Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Failure Penalization Enabled": { "name": "Request Failure Penalization Enabled", "displayName": "Request Failure Penalization Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Attribute Size": { "name": "Response Body Attribute Size", "displayName": "Response Body Attribute Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "SSL Context Service": { "name": "SSL Context Service", "displayName": "SSL Context Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Response Generation Required": { "name": "Response Generation Required", "displayName": "Response Generation Required", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request User-Agent": { "name": "Request User-Agent", "displayName": "Request User-Agent", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Header Request Attributes Enabled": { "name": "Response Header Request Attributes Enabled", "displayName": "Response Header Request Attributes Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP Method": { "name": "HTTP Method", "displayName": "HTTP Method", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Username": { "name": "Request Username", "displayName": "Request Username", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Content-Type": { "name": "Request Content-Type", "displayName": "Request Content-Type", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Attribute Name": { "name": "Response Body Attribute Name", "displayName": "Response Body Attribute Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Digest Authentication Enabled": { "name": "Request Digest Authentication Enabled", "displayName": "Request Digest Authentication Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Multipart Form-Data Name": { "name": "Request Multipart Form-Data Name", "displayName": "Request Multipart Form-Data Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cache Size": { "name": "Response Cache Size", "displayName": "Response Cache Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Ignored": { "name": "Response Body Ignored", "displayName": "Response Body Ignored", "identifiesControllerService": false, "sensitive": false, "dynamic": false } }, "style": {}, "schedulingPeriod": "365000 days", "schedulingStrategy": "TIMER_DRIVEN", "executionNode": "PRIMARY", "penaltyDuration": "30 sec", "yieldDuration": "1 sec", "bulletinLevel": "WARN", "runDurationMillis": 0, "concurrentlySchedulableTaskCount": 1, "autoTerminatedRelationships": [ "No Retry", "Retry", "Original", "Failure" ], "scheduledState": "ENABLED", "retryCount": 10, "retriedRelationships": [], "backoffMechanism": "PENALIZE_FLOWFILE", "maxBackoffPeriod": "10 mins", "componentType": "PROCESSOR", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "dde01269-6b44-3f4c-9406-8e291cd8aaa4", "instanceIdentifier": "816243be-0195-1000-ffff-fffff00620a1", "name": "Add station_uuid", "comments": "", "position": { "x": 864.0, "y": 1192.0 }, "type": "org.apache.nifi.processors.jolt.JoltTransformJSON", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-jolt-nar", "version": "2.6.0" }, "properties": { "Jolt Transform": "jolt-transform-chain", "Max String Length": "20 MB", "Transform Cache Size": "1", "Custom Transformation Class Name": null, "Custom Module Directory": null, "Pretty Print": "false", "Jolt Specification": "[\n {\n \"operation\": \"default\",\n \"spec\": {\n \"*\": {\n \"station_uuid\": \"${station_uuid}\"\n }\n }\n }\n]\n" }, "propertyDescriptors": { "Jolt Transform": { "name": "Jolt Transform", "displayName": "Jolt Transform", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Max String Length": { "name": "Max String Length", "displayName": "Max String Length", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Transform Cache Size": { "name": "Transform Cache Size", "displayName": "Transform Cache Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Custom Transformation Class Name": { "name": "Custom Transformation Class Name", "displayName": "Custom Transformation Class Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Custom Module Directory": { "name": "Custom Module Directory", "displayName": "Custom Module Directory", "identifiesControllerService": false, "sensitive": false, "dynamic": false, "resourceDefinition": { "cardinality": "MULTIPLE", "resourceTypes": [ "DIRECTORY", "FILE" ] } }, "Pretty Print": { "name": "Pretty Print", "displayName": "Pretty Print", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Jolt Specification": { "name": "Jolt Specification", "displayName": "Jolt Specification", "identifiesControllerService": false, "sensitive": false, "dynamic": false, "resourceDefinition": { "cardinality": "SINGLE", "resourceTypes": [ "TEXT", "FILE" ] } } }, "style": {}, "schedulingPeriod": "0 sec", "schedulingStrategy": "TIMER_DRIVEN", "executionNode": "ALL", "penaltyDuration": "30 sec", "yieldDuration": "1 sec", "bulletinLevel": "WARN", "runDurationMillis": 0, "concurrentlySchedulableTaskCount": 1, "autoTerminatedRelationships": [ "failure" ], "scheduledState": "ENABLED", "retryCount": 10, "retriedRelationships": [], "backoffMechanism": "PENALIZE_FLOWFILE", "maxBackoffPeriod": "10 mins", "componentType": "PROCESSOR", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "98a12d17-c277-3226-af8b-03848dbdbf11", "instanceIdentifier": "816125f7-0195-1000-0000-00006b8c4170", "name": "PublishKafka", "comments": "", "position": { "x": 1240.0, "y": 1408.0 }, "type": "org.apache.nifi.kafka.processors.PublishKafka", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-kafka-nar", "version": "2.6.0" }, "properties": { "compression.type": "snappy", "acks": "all", "Message Demarcator": null, "Kafka Key Attribute Encoding": "utf-8", "Record Reader": "e75c34eb-8e60-3b6b-8a29-3dd7b79776c4", "Record Metadata Strategy": "FROM_PROPERTIES", "Transactional ID Prefix": null, "Header Encoding": "UTF-8", "max.request.size": "1 MB", "Topic Name": "measurements", "Kafka Key": null, "partition": null, "Kafka Connection Service": "29032623-5723-3b5d-8983-07534da27fd5", "Publish Strategy": "USE_VALUE", "Record Key Writer": null, "Failure Strategy": "Route to Failure", "partitioner.class": "org.apache.kafka.clients.producer.internals.DefaultPartitioner", "Record Writer": "f6b7ad0f-da95-39c4-be8d-4ae944d8034b", "Transactions Enabled": "false", "Message Key Field": null, "FlowFile Attribute Header Pattern": null }, "propertyDescriptors": { "compression.type": { "name": "compression.type", "displayName": "Compression Type", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "acks": { "name": "acks", "displayName": "Delivery Guarantee", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Message Demarcator": { "name": "Message Demarcator", "displayName": "Message Demarcator", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Kafka Key Attribute Encoding": { "name": "Kafka Key Attribute Encoding", "displayName": "Kafka Key Attribute Encoding", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Record Reader": { "name": "Record Reader", "displayName": "Record Reader", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Record Metadata Strategy": { "name": "Record Metadata Strategy", "displayName": "Record Metadata Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Transactional ID Prefix": { "name": "Transactional ID Prefix", "displayName": "Transactional ID Prefix", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Header Encoding": { "name": "Header Encoding", "displayName": "Header Encoding", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "max.request.size": { "name": "max.request.size", "displayName": "Max Request Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Topic Name": { "name": "Topic Name", "displayName": "Topic Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Kafka Key": { "name": "Kafka Key", "displayName": "Kafka Key", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "partition": { "name": "partition", "displayName": "Partition", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Kafka Connection Service": { "name": "Kafka Connection Service", "displayName": "Kafka Connection Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Publish Strategy": { "name": "Publish Strategy", "displayName": "Publish Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Record Key Writer": { "name": "Record Key Writer", "displayName": "Record Key Writer", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Failure Strategy": { "name": "Failure Strategy", "displayName": "Failure Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "partitioner.class": { "name": "partitioner.class", "displayName": "Partitioner Class", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Record Writer": { "name": "Record Writer", "displayName": "Record Writer", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Transactions Enabled": { "name": "Transactions Enabled", "displayName": "Transactions Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Message Key Field": { "name": "Message Key Field", "displayName": "Message Key Field", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "FlowFile Attribute Header Pattern": { "name": "FlowFile Attribute Header Pattern", "displayName": "FlowFile Attribute Header Pattern", "identifiesControllerService": false, "sensitive": false, "dynamic": false } }, "style": {}, "schedulingPeriod": "0 sec", "schedulingStrategy": "TIMER_DRIVEN", "executionNode": "ALL", "penaltyDuration": "30 sec", "yieldDuration": "1 sec", "bulletinLevel": "WARN", "runDurationMillis": 0, "concurrentlySchedulableTaskCount": 1, "autoTerminatedRelationships": [ "success", "failure" ], "scheduledState": "ENABLED", "retryCount": 10, "retriedRelationships": [], "backoffMechanism": "PENALIZE_FLOWFILE", "maxBackoffPeriod": "10 mins", "componentType": "PROCESSOR", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "ccf5a9db-6d16-3aa5-b054-b33a51405240", "instanceIdentifier": "6304de41-531f-37e9-b1a9-db89a7181c46", "name": "Extract station_uuid", "comments": "", "position": { "x": 1237.9999979753957, "y": 726.9999983799049 }, "type": "org.apache.nifi.processors.standard.EvaluateJsonPath", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-nar", "version": "2.6.0" }, "properties": { "Destination": "flowfile-attribute", "Max String Length": "20 MB", "Return Type": "auto-detect", "Null Value Representation": "empty string", "station_uuid": "$.uuid", "Path Not Found Behavior": "ignore" }, "propertyDescriptors": { "Destination": { "name": "Destination", "displayName": "Destination", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Max String Length": { "name": "Max String Length", "displayName": "Max String Length", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Return Type": { "name": "Return Type", "displayName": "Return Type", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Null Value Representation": { "name": "Null Value Representation", "displayName": "Null Value Representation", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "station_uuid": { "name": "station_uuid", "displayName": "station_uuid", "identifiesControllerService": false, "sensitive": false, "dynamic": true }, "Path Not Found Behavior": { "name": "Path Not Found Behavior", "displayName": "Path Not Found Behavior", "identifiesControllerService": false, "sensitive": false, "dynamic": false } }, "style": {}, "schedulingPeriod": "0 sec", "schedulingStrategy": "TIMER_DRIVEN", "executionNode": "ALL", "penaltyDuration": "30 sec", "yieldDuration": "1 sec", "bulletinLevel": "WARN", "runDurationMillis": 0, "concurrentlySchedulableTaskCount": 1, "autoTerminatedRelationships": [ "failure", "unmatched" ], "scheduledState": "ENABLED", "retryCount": 10, "retriedRelationships": [], "backoffMechanism": "PENALIZE_FLOWFILE", "maxBackoffPeriod": "10 mins", "componentType": "PROCESSOR", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "d56a1c61-9006-315a-a15c-41439f14d030", "instanceIdentifier": "d78cc57f-9bd1-35a2-9957-a70d52d0fb69", "name": "SplitRecord", "comments": "", "position": { "x": 861.9999979753956, "y": 510.9999983799049 }, "type": "org.apache.nifi.processors.standard.SplitRecord", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-nar", "version": "2.6.0" }, "properties": { "Record Writer": "f6b7ad0f-da95-39c4-be8d-4ae944d8034b", "Record Reader": "e75c34eb-8e60-3b6b-8a29-3dd7b79776c4", "Records Per Split": "1" }, "propertyDescriptors": { "Record Writer": { "name": "Record Writer", "displayName": "Record Writer", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Record Reader": { "name": "Record Reader", "displayName": "Record Reader", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Records Per Split": { "name": "Records Per Split", "displayName": "Records Per Split", "identifiesControllerService": false, "sensitive": false, "dynamic": false } }, "style": {}, "schedulingPeriod": "0 sec", "schedulingStrategy": "TIMER_DRIVEN", "executionNode": "ALL", "penaltyDuration": "30 sec", "yieldDuration": "1 sec", "bulletinLevel": "WARN", "runDurationMillis": 0, "concurrentlySchedulableTaskCount": 1, "autoTerminatedRelationships": [ "original", "failure" ], "scheduledState": "ENABLED", "retryCount": 10, "retriedRelationships": [], "backoffMechanism": "PENALIZE_FLOWFILE", "maxBackoffPeriod": "10 mins", "componentType": "PROCESSOR", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "a961da8c-d228-3d19-b6ed-2d48ebe35b05", "instanceIdentifier": "15a87495-c9dc-36db-a3f0-828a63a688f9", "name": "Get 30 days historic data", "comments": "", "position": { "x": 861.9999979753956, "y": 966.9999983799049 }, "type": "org.apache.nifi.processors.standard.InvokeHTTP", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-nar", "version": "2.6.0" }, "properties": { "Request Content-Encoding": "DISABLED", "proxy-configuration-service": null, "Request Multipart Form-Data Filename Enabled": "true", "Request Chunked Transfer-Encoding Enabled": "false", "Response Header Request Attributes Prefix": null, "HTTP/2 Disabled": "False", "Connection Timeout": "5 secs", "Response Cookie Strategy": "DISABLED", "Socket Read Timeout": "15 secs", "Socket Idle Connections": "5", "Request Body Enabled": "true", "HTTP URL": "https://www.pegelonline.wsv.de/webservices/rest-api/v2/stations/${station_uuid}/W/measurements.json?start=P30D", "Request OAuth2 Access Token Provider": null, "Socket Idle Timeout": "5 mins", "Response Redirects Enabled": "True", "Socket Write Timeout": "15 secs", "Request Header Attributes Pattern": null, "Response FlowFile Naming Strategy": "RANDOM", "Response Cache Enabled": "false", "Request Date Header Enabled": "True", "Request Failure Penalization Enabled": "false", "Response Body Attribute Size": "256", "SSL Context Service": null, "Response Generation Required": "false", "Request User-Agent": null, "Response Header Request Attributes Enabled": "false", "HTTP Method": "GET", "Request Username": null, "Request Content-Type": "${mime.type}", "Response Body Attribute Name": null, "Request Digest Authentication Enabled": "false", "Request Multipart Form-Data Name": null, "Response Cache Size": "10MB", "Response Body Ignored": "false" }, "propertyDescriptors": { "Request Content-Encoding": { "name": "Request Content-Encoding", "displayName": "Request Content-Encoding", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "proxy-configuration-service": { "name": "proxy-configuration-service", "displayName": "Proxy Configuration Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Request Multipart Form-Data Filename Enabled": { "name": "Request Multipart Form-Data Filename Enabled", "displayName": "Request Multipart Form-Data Filename Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Chunked Transfer-Encoding Enabled": { "name": "Request Chunked Transfer-Encoding Enabled", "displayName": "Request Chunked Transfer-Encoding Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Header Request Attributes Prefix": { "name": "Response Header Request Attributes Prefix", "displayName": "Response Header Request Attributes Prefix", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP/2 Disabled": { "name": "HTTP/2 Disabled", "displayName": "HTTP/2 Disabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Connection Timeout": { "name": "Connection Timeout", "displayName": "Connection Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cookie Strategy": { "name": "Response Cookie Strategy", "displayName": "Response Cookie Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Password": { "name": "Request Password", "displayName": "Request Password", "identifiesControllerService": false, "sensitive": true, "dynamic": false }, "Socket Read Timeout": { "name": "Socket Read Timeout", "displayName": "Socket Read Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Socket Idle Connections": { "name": "Socket Idle Connections", "displayName": "Socket Idle Connections", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Body Enabled": { "name": "Request Body Enabled", "displayName": "Request Body Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP URL": { "name": "HTTP URL", "displayName": "HTTP URL", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request OAuth2 Access Token Provider": { "name": "Request OAuth2 Access Token Provider", "displayName": "Request OAuth2 Access Token Provider", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Socket Idle Timeout": { "name": "Socket Idle Timeout", "displayName": "Socket Idle Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Redirects Enabled": { "name": "Response Redirects Enabled", "displayName": "Response Redirects Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Socket Write Timeout": { "name": "Socket Write Timeout", "displayName": "Socket Write Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Header Attributes Pattern": { "name": "Request Header Attributes Pattern", "displayName": "Request Header Attributes Pattern", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response FlowFile Naming Strategy": { "name": "Response FlowFile Naming Strategy", "displayName": "Response FlowFile Naming Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cache Enabled": { "name": "Response Cache Enabled", "displayName": "Response Cache Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Date Header Enabled": { "name": "Request Date Header Enabled", "displayName": "Request Date Header Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Failure Penalization Enabled": { "name": "Request Failure Penalization Enabled", "displayName": "Request Failure Penalization Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Attribute Size": { "name": "Response Body Attribute Size", "displayName": "Response Body Attribute Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "SSL Context Service": { "name": "SSL Context Service", "displayName": "SSL Context Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Response Generation Required": { "name": "Response Generation Required", "displayName": "Response Generation Required", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request User-Agent": { "name": "Request User-Agent", "displayName": "Request User-Agent", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Header Request Attributes Enabled": { "name": "Response Header Request Attributes Enabled", "displayName": "Response Header Request Attributes Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP Method": { "name": "HTTP Method", "displayName": "HTTP Method", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Username": { "name": "Request Username", "displayName": "Request Username", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Content-Type": { "name": "Request Content-Type", "displayName": "Request Content-Type", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Attribute Name": { "name": "Response Body Attribute Name", "displayName": "Response Body Attribute Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Digest Authentication Enabled": { "name": "Request Digest Authentication Enabled", "displayName": "Request Digest Authentication Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Multipart Form-Data Name": { "name": "Request Multipart Form-Data Name", "displayName": "Request Multipart Form-Data Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cache Size": { "name": "Response Cache Size", "displayName": "Response Cache Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Ignored": { "name": "Response Body Ignored", "displayName": "Response Body Ignored", "identifiesControllerService": false, "sensitive": false, "dynamic": false } }, "style": {}, "schedulingPeriod": "0 sec", "schedulingStrategy": "TIMER_DRIVEN", "executionNode": "ALL", "penaltyDuration": "30 sec", "yieldDuration": "1 sec", "bulletinLevel": "WARN", "runDurationMillis": 0, "concurrentlySchedulableTaskCount": 1, "autoTerminatedRelationships": [ "No Retry", "Retry", "Original", "Failure" ], "scheduledState": "ENABLED", "retryCount": 10, "retriedRelationships": [], "backoffMechanism": "PENALIZE_FLOWFILE", "maxBackoffPeriod": "10 mins", "componentType": "PROCESSOR", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "26542ec9-e3e3-380f-ab7a-7fa4b2c46d1e", "instanceIdentifier": "815f05d7-0195-1000-0000-000005d97f79", "name": "PublishKafka", "comments": "", "position": { "x": 864.0, "y": 1408.0 }, "type": "org.apache.nifi.kafka.processors.PublishKafka", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-kafka-nar", "version": "2.6.0" }, "properties": { "compression.type": "snappy", "acks": "all", "Message Demarcator": null, "Kafka Key Attribute Encoding": "utf-8", "Record Reader": "e75c34eb-8e60-3b6b-8a29-3dd7b79776c4", "Record Metadata Strategy": "FROM_PROPERTIES", "Transactional ID Prefix": null, "Header Encoding": "UTF-8", "max.request.size": "1 MB", "Topic Name": "measurements", "Kafka Key": null, "partition": null, "Kafka Connection Service": "29032623-5723-3b5d-8983-07534da27fd5", "Publish Strategy": "USE_VALUE", "Record Key Writer": null, "Failure Strategy": "Route to Failure", "partitioner.class": "org.apache.kafka.clients.producer.internals.DefaultPartitioner", "Record Writer": "f6b7ad0f-da95-39c4-be8d-4ae944d8034b", "Transactions Enabled": "false", "Message Key Field": null, "FlowFile Attribute Header Pattern": null }, "propertyDescriptors": { "compression.type": { "name": "compression.type", "displayName": "Compression Type", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "acks": { "name": "acks", "displayName": "Delivery Guarantee", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Message Demarcator": { "name": "Message Demarcator", "displayName": "Message Demarcator", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Kafka Key Attribute Encoding": { "name": "Kafka Key Attribute Encoding", "displayName": "Kafka Key Attribute Encoding", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Record Reader": { "name": "Record Reader", "displayName": "Record Reader", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Record Metadata Strategy": { "name": "Record Metadata Strategy", "displayName": "Record Metadata Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Transactional ID Prefix": { "name": "Transactional ID Prefix", "displayName": "Transactional ID Prefix", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Header Encoding": { "name": "Header Encoding", "displayName": "Header Encoding", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "max.request.size": { "name": "max.request.size", "displayName": "Max Request Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Topic Name": { "name": "Topic Name", "displayName": "Topic Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Kafka Key": { "name": "Kafka Key", "displayName": "Kafka Key", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "partition": { "name": "partition", "displayName": "Partition", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Kafka Connection Service": { "name": "Kafka Connection Service", "displayName": "Kafka Connection Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Publish Strategy": { "name": "Publish Strategy", "displayName": "Publish Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Record Key Writer": { "name": "Record Key Writer", "displayName": "Record Key Writer", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Failure Strategy": { "name": "Failure Strategy", "displayName": "Failure Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "partitioner.class": { "name": "partitioner.class", "displayName": "Partitioner Class", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Record Writer": { "name": "Record Writer", "displayName": "Record Writer", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Transactions Enabled": { "name": "Transactions Enabled", "displayName": "Transactions Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Message Key Field": { "name": "Message Key Field", "displayName": "Message Key Field", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "FlowFile Attribute Header Pattern": { "name": "FlowFile Attribute Header Pattern", "displayName": "FlowFile Attribute Header Pattern", "identifiesControllerService": false, "sensitive": false, "dynamic": false } }, "style": {}, "schedulingPeriod": "0 sec", "schedulingStrategy": "TIMER_DRIVEN", "executionNode": "ALL", "penaltyDuration": "30 sec", "yieldDuration": "1 sec", "bulletinLevel": "WARN", "runDurationMillis": 0, "concurrentlySchedulableTaskCount": 1, "autoTerminatedRelationships": [ "success", "failure" ], "scheduledState": "ENABLED", "retryCount": 10, "retriedRelationships": [], "backoffMechanism": "PENALIZE_FLOWFILE", "maxBackoffPeriod": "10 mins", "componentType": "PROCESSOR", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "4db42754-1203-340d-830d-d662d16d13c8", "instanceIdentifier": "d8795306-ee83-3143-b633-fd70c932add5", "name": "Get station list", "comments": "", "position": { "x": 1237.9999979753957, "y": 246.99999837990495 }, "type": "org.apache.nifi.processors.standard.InvokeHTTP", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-nar", "version": "2.6.0" }, "properties": { "Request Content-Encoding": "DISABLED", "proxy-configuration-service": null, "Request Multipart Form-Data Filename Enabled": "true", "Request Chunked Transfer-Encoding Enabled": "false", "Response Header Request Attributes Prefix": null, "HTTP/2 Disabled": "False", "Connection Timeout": "5 secs", "Response Cookie Strategy": "DISABLED", "Socket Read Timeout": "15 secs", "Socket Idle Connections": "5", "Request Body Enabled": "true", "HTTP URL": "https://www.pegelonline.wsv.de/webservices/rest-api/v2/stations.json", "Request OAuth2 Access Token Provider": null, "Socket Idle Timeout": "5 mins", "Response Redirects Enabled": "True", "Socket Write Timeout": "15 secs", "Request Header Attributes Pattern": null, "Response FlowFile Naming Strategy": "RANDOM", "Response Cache Enabled": "false", "Request Date Header Enabled": "True", "Request Failure Penalization Enabled": "false", "Response Body Attribute Size": "256", "SSL Context Service": null, "Response Generation Required": "false", "Request User-Agent": null, "Response Header Request Attributes Enabled": "false", "HTTP Method": "GET", "Request Username": null, "Request Content-Type": "${mime.type}", "Response Body Attribute Name": null, "Request Digest Authentication Enabled": "false", "Request Multipart Form-Data Name": null, "Response Cache Size": "10MB", "Response Body Ignored": "false" }, "propertyDescriptors": { "Request Content-Encoding": { "name": "Request Content-Encoding", "displayName": "Request Content-Encoding", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "proxy-configuration-service": { "name": "proxy-configuration-service", "displayName": "Proxy Configuration Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Request Multipart Form-Data Filename Enabled": { "name": "Request Multipart Form-Data Filename Enabled", "displayName": "Request Multipart Form-Data Filename Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Chunked Transfer-Encoding Enabled": { "name": "Request Chunked Transfer-Encoding Enabled", "displayName": "Request Chunked Transfer-Encoding Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Header Request Attributes Prefix": { "name": "Response Header Request Attributes Prefix", "displayName": "Response Header Request Attributes Prefix", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP/2 Disabled": { "name": "HTTP/2 Disabled", "displayName": "HTTP/2 Disabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Connection Timeout": { "name": "Connection Timeout", "displayName": "Connection Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cookie Strategy": { "name": "Response Cookie Strategy", "displayName": "Response Cookie Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Password": { "name": "Request Password", "displayName": "Request Password", "identifiesControllerService": false, "sensitive": true, "dynamic": false }, "Socket Read Timeout": { "name": "Socket Read Timeout", "displayName": "Socket Read Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Socket Idle Connections": { "name": "Socket Idle Connections", "displayName": "Socket Idle Connections", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Body Enabled": { "name": "Request Body Enabled", "displayName": "Request Body Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP URL": { "name": "HTTP URL", "displayName": "HTTP URL", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request OAuth2 Access Token Provider": { "name": "Request OAuth2 Access Token Provider", "displayName": "Request OAuth2 Access Token Provider", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Socket Idle Timeout": { "name": "Socket Idle Timeout", "displayName": "Socket Idle Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Redirects Enabled": { "name": "Response Redirects Enabled", "displayName": "Response Redirects Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Socket Write Timeout": { "name": "Socket Write Timeout", "displayName": "Socket Write Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Header Attributes Pattern": { "name": "Request Header Attributes Pattern", "displayName": "Request Header Attributes Pattern", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response FlowFile Naming Strategy": { "name": "Response FlowFile Naming Strategy", "displayName": "Response FlowFile Naming Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cache Enabled": { "name": "Response Cache Enabled", "displayName": "Response Cache Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Date Header Enabled": { "name": "Request Date Header Enabled", "displayName": "Request Date Header Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Failure Penalization Enabled": { "name": "Request Failure Penalization Enabled", "displayName": "Request Failure Penalization Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Attribute Size": { "name": "Response Body Attribute Size", "displayName": "Response Body Attribute Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "SSL Context Service": { "name": "SSL Context Service", "displayName": "SSL Context Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Response Generation Required": { "name": "Response Generation Required", "displayName": "Response Generation Required", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request User-Agent": { "name": "Request User-Agent", "displayName": "Request User-Agent", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Header Request Attributes Enabled": { "name": "Response Header Request Attributes Enabled", "displayName": "Response Header Request Attributes Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP Method": { "name": "HTTP Method", "displayName": "HTTP Method", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Username": { "name": "Request Username", "displayName": "Request Username", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Content-Type": { "name": "Request Content-Type", "displayName": "Request Content-Type", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Attribute Name": { "name": "Response Body Attribute Name", "displayName": "Response Body Attribute Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Digest Authentication Enabled": { "name": "Request Digest Authentication Enabled", "displayName": "Request Digest Authentication Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Multipart Form-Data Name": { "name": "Request Multipart Form-Data Name", "displayName": "Request Multipart Form-Data Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cache Size": { "name": "Response Cache Size", "displayName": "Response Cache Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Ignored": { "name": "Response Body Ignored", "displayName": "Response Body Ignored", "identifiesControllerService": false, "sensitive": false, "dynamic": false } }, "style": {}, "schedulingPeriod": "15 m", "schedulingStrategy": "TIMER_DRIVEN", "executionNode": "PRIMARY", "penaltyDuration": "30 sec", "yieldDuration": "1 sec", "bulletinLevel": "WARN", "runDurationMillis": 0, "concurrentlySchedulableTaskCount": 1, "autoTerminatedRelationships": [ "No Retry", "Retry", "Original", "Failure" ], "scheduledState": "ENABLED", "retryCount": 10, "retriedRelationships": [], "backoffMechanism": "PENALIZE_FLOWFILE", "maxBackoffPeriod": "10 mins", "componentType": "PROCESSOR", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "d2841e3c-954c-3f6c-8c2b-0b4f20cea21c", "instanceIdentifier": "a11d09f2-9d6d-390d-947c-397b881e980f", "name": "Get 30 minutes of historic data", "comments": "", "position": { "x": 1237.9999979753957, "y": 966.9999983799049 }, "type": "org.apache.nifi.processors.standard.InvokeHTTP", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-nar", "version": "2.6.0" }, "properties": { "Request Content-Encoding": "DISABLED", "proxy-configuration-service": null, "Request Multipart Form-Data Filename Enabled": "true", "Request Chunked Transfer-Encoding Enabled": "false", "Response Header Request Attributes Prefix": null, "HTTP/2 Disabled": "False", "Connection Timeout": "5 secs", "Response Cookie Strategy": "DISABLED", "Socket Read Timeout": "15 secs", "Socket Idle Connections": "5", "Request Body Enabled": "true", "HTTP URL": "https://www.pegelonline.wsv.de/webservices/rest-api/v2/stations/${station_uuid}/W/measurements.json?start=PT30M", "Request OAuth2 Access Token Provider": null, "Socket Idle Timeout": "5 mins", "Response Redirects Enabled": "True", "Socket Write Timeout": "15 secs", "Request Header Attributes Pattern": null, "Response FlowFile Naming Strategy": "RANDOM", "Response Cache Enabled": "false", "Request Date Header Enabled": "True", "Request Failure Penalization Enabled": "false", "Response Body Attribute Size": "256", "SSL Context Service": null, "Response Generation Required": "false", "Request User-Agent": null, "Response Header Request Attributes Enabled": "false", "HTTP Method": "GET", "Request Username": null, "Request Content-Type": "${mime.type}", "Response Body Attribute Name": null, "Request Digest Authentication Enabled": "false", "Request Multipart Form-Data Name": null, "Response Cache Size": "10MB", "Response Body Ignored": "false" }, "propertyDescriptors": { "Request Content-Encoding": { "name": "Request Content-Encoding", "displayName": "Request Content-Encoding", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "proxy-configuration-service": { "name": "proxy-configuration-service", "displayName": "Proxy Configuration Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Request Multipart Form-Data Filename Enabled": { "name": "Request Multipart Form-Data Filename Enabled", "displayName": "Request Multipart Form-Data Filename Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Chunked Transfer-Encoding Enabled": { "name": "Request Chunked Transfer-Encoding Enabled", "displayName": "Request Chunked Transfer-Encoding Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Header Request Attributes Prefix": { "name": "Response Header Request Attributes Prefix", "displayName": "Response Header Request Attributes Prefix", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP/2 Disabled": { "name": "HTTP/2 Disabled", "displayName": "HTTP/2 Disabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Connection Timeout": { "name": "Connection Timeout", "displayName": "Connection Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cookie Strategy": { "name": "Response Cookie Strategy", "displayName": "Response Cookie Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Password": { "name": "Request Password", "displayName": "Request Password", "identifiesControllerService": false, "sensitive": true, "dynamic": false }, "Socket Read Timeout": { "name": "Socket Read Timeout", "displayName": "Socket Read Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Socket Idle Connections": { "name": "Socket Idle Connections", "displayName": "Socket Idle Connections", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Body Enabled": { "name": "Request Body Enabled", "displayName": "Request Body Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP URL": { "name": "HTTP URL", "displayName": "HTTP URL", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request OAuth2 Access Token Provider": { "name": "Request OAuth2 Access Token Provider", "displayName": "Request OAuth2 Access Token Provider", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Socket Idle Timeout": { "name": "Socket Idle Timeout", "displayName": "Socket Idle Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Redirects Enabled": { "name": "Response Redirects Enabled", "displayName": "Response Redirects Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Socket Write Timeout": { "name": "Socket Write Timeout", "displayName": "Socket Write Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Header Attributes Pattern": { "name": "Request Header Attributes Pattern", "displayName": "Request Header Attributes Pattern", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response FlowFile Naming Strategy": { "name": "Response FlowFile Naming Strategy", "displayName": "Response FlowFile Naming Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cache Enabled": { "name": "Response Cache Enabled", "displayName": "Response Cache Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Date Header Enabled": { "name": "Request Date Header Enabled", "displayName": "Request Date Header Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Failure Penalization Enabled": { "name": "Request Failure Penalization Enabled", "displayName": "Request Failure Penalization Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Attribute Size": { "name": "Response Body Attribute Size", "displayName": "Response Body Attribute Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "SSL Context Service": { "name": "SSL Context Service", "displayName": "SSL Context Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Response Generation Required": { "name": "Response Generation Required", "displayName": "Response Generation Required", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request User-Agent": { "name": "Request User-Agent", "displayName": "Request User-Agent", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Header Request Attributes Enabled": { "name": "Response Header Request Attributes Enabled", "displayName": "Response Header Request Attributes Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "HTTP Method": { "name": "HTTP Method", "displayName": "HTTP Method", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Username": { "name": "Request Username", "displayName": "Request Username", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Content-Type": { "name": "Request Content-Type", "displayName": "Request Content-Type", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Attribute Name": { "name": "Response Body Attribute Name", "displayName": "Response Body Attribute Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Digest Authentication Enabled": { "name": "Request Digest Authentication Enabled", "displayName": "Request Digest Authentication Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Request Multipart Form-Data Name": { "name": "Request Multipart Form-Data Name", "displayName": "Request Multipart Form-Data Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Cache Size": { "name": "Response Cache Size", "displayName": "Response Cache Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Response Body Ignored": { "name": "Response Body Ignored", "displayName": "Response Body Ignored", "identifiesControllerService": false, "sensitive": false, "dynamic": false } }, "style": {}, "schedulingPeriod": "1 s", "schedulingStrategy": "TIMER_DRIVEN", "executionNode": "ALL", "penaltyDuration": "30 sec", "yieldDuration": "1 sec", "bulletinLevel": "WARN", "runDurationMillis": 0, "concurrentlySchedulableTaskCount": 1, "autoTerminatedRelationships": [ "No Retry", "Retry", "Original", "Failure" ], "scheduledState": "ENABLED", "retryCount": 10, "retriedRelationships": [], "backoffMechanism": "PENALIZE_FLOWFILE", "maxBackoffPeriod": "10 mins", "componentType": "PROCESSOR", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "f5aefb8c-ec8c-3895-a221-b1514bf49019", "instanceIdentifier": "815b69b0-0195-1000-ffff-ffff8e27806d", "name": "Produce station records", "comments": "", "position": { "x": 488.0, "y": 512.0 }, "type": "org.apache.nifi.kafka.processors.PublishKafka", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-kafka-nar", "version": "2.6.0" }, "properties": { "compression.type": "none", "acks": "all", "Message Demarcator": null, "Kafka Key Attribute Encoding": "utf-8", "Record Reader": "e75c34eb-8e60-3b6b-8a29-3dd7b79776c4", "Record Metadata Strategy": "FROM_PROPERTIES", "Transactional ID Prefix": null, "Header Encoding": "UTF-8", "max.request.size": "1 MB", "Topic Name": "stations", "Kafka Key": null, "partition": null, "Kafka Connection Service": "29032623-5723-3b5d-8983-07534da27fd5", "Publish Strategy": "USE_VALUE", "Record Key Writer": null, "Failure Strategy": "Route to Failure", "partitioner.class": "org.apache.kafka.clients.producer.internals.DefaultPartitioner", "Record Writer": "f6b7ad0f-da95-39c4-be8d-4ae944d8034b", "Transactions Enabled": "false", "Message Key Field": null, "FlowFile Attribute Header Pattern": null }, "propertyDescriptors": { "compression.type": { "name": "compression.type", "displayName": "Compression Type", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "acks": { "name": "acks", "displayName": "Delivery Guarantee", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Message Demarcator": { "name": "Message Demarcator", "displayName": "Message Demarcator", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Kafka Key Attribute Encoding": { "name": "Kafka Key Attribute Encoding", "displayName": "Kafka Key Attribute Encoding", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Record Reader": { "name": "Record Reader", "displayName": "Record Reader", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Record Metadata Strategy": { "name": "Record Metadata Strategy", "displayName": "Record Metadata Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Transactional ID Prefix": { "name": "Transactional ID Prefix", "displayName": "Transactional ID Prefix", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Header Encoding": { "name": "Header Encoding", "displayName": "Header Encoding", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "max.request.size": { "name": "max.request.size", "displayName": "Max Request Size", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Topic Name": { "name": "Topic Name", "displayName": "Topic Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Kafka Key": { "name": "Kafka Key", "displayName": "Kafka Key", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "partition": { "name": "partition", "displayName": "Partition", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Kafka Connection Service": { "name": "Kafka Connection Service", "displayName": "Kafka Connection Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Publish Strategy": { "name": "Publish Strategy", "displayName": "Publish Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Record Key Writer": { "name": "Record Key Writer", "displayName": "Record Key Writer", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Failure Strategy": { "name": "Failure Strategy", "displayName": "Failure Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "partitioner.class": { "name": "partitioner.class", "displayName": "Partitioner Class", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Record Writer": { "name": "Record Writer", "displayName": "Record Writer", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Transactions Enabled": { "name": "Transactions Enabled", "displayName": "Transactions Enabled", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Message Key Field": { "name": "Message Key Field", "displayName": "Message Key Field", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "FlowFile Attribute Header Pattern": { "name": "FlowFile Attribute Header Pattern", "displayName": "FlowFile Attribute Header Pattern", "identifiesControllerService": false, "sensitive": false, "dynamic": false } }, "style": {}, "schedulingPeriod": "0 sec", "schedulingStrategy": "TIMER_DRIVEN", "executionNode": "ALL", "penaltyDuration": "30 sec", "yieldDuration": "1 sec", "bulletinLevel": "WARN", "runDurationMillis": 0, "concurrentlySchedulableTaskCount": 1, "autoTerminatedRelationships": [ "success", "failure" ], "scheduledState": "ENABLED", "retryCount": 10, "retriedRelationships": [], "backoffMechanism": "PENALIZE_FLOWFILE", "maxBackoffPeriod": "10 mins", "componentType": "PROCESSOR", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" } ], "inputPorts": [], "outputPorts": [], "connections": [ { "identifier": "1ed79459-2cd4-30cc-b246-7df8c512d6aa", "instanceIdentifier": "f458062a-4156-340b-99e1-2c9c1fd5691d", "name": "", "source": { "id": "4db42754-1203-340d-830d-d662d16d13c8", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Get station list", "comments": "", "instanceIdentifier": "d8795306-ee83-3143-b633-fd70c932add5" }, "destination": { "id": "656d02d2-3100-39e6-a3dd-a8fe91b6dd06", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "SplitRecord", "comments": "", "instanceIdentifier": "cec0a8ff-73d7-35d1-9f9c-0c5cc0af6db2" }, "labelIndex": 1, "zIndex": 0, "selectedRelationships": [ "Response" ], "backPressureObjectThreshold": 1, "backPressureDataSizeThreshold": "1 GB", "flowFileExpiration": "0 sec", "prioritizers": [], "bends": [], "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", "partitioningAttribute": "", "loadBalanceCompression": "DO_NOT_COMPRESS", "componentType": "CONNECTION", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "6005f6e4-6a3f-379b-92bb-af654e9c13d8", "instanceIdentifier": "1b239318-886a-3f35-a3d4-c7a19aa52cad", "name": "", "source": { "id": "d56a1c61-9006-315a-a15c-41439f14d030", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "SplitRecord", "comments": "", "instanceIdentifier": "d78cc57f-9bd1-35a2-9957-a70d52d0fb69" }, "destination": { "id": "8809ece7-fbe0-3613-b7b0-77e05c8f4cb1", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Extract station_uuid", "comments": "", "instanceIdentifier": "1425717b-a077-39b0-872e-7381d0b3848f" }, "labelIndex": 1, "zIndex": 0, "selectedRelationships": [ "splits" ], "backPressureObjectThreshold": 10, "backPressureDataSizeThreshold": "1 GB", "flowFileExpiration": "0 sec", "prioritizers": [], "bends": [], "loadBalanceStrategy": "ROUND_ROBIN", "partitioningAttribute": "", "loadBalanceCompression": "DO_NOT_COMPRESS", "componentType": "CONNECTION", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "be649012-9cd8-3408-aef8-361c82058108", "instanceIdentifier": "8163d1b9-0195-1000-0000-000023899a37", "name": "", "source": { "id": "50bc20ed-2b1b-3068-0000-0000423c0a67", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Add station_uuid", "comments": "", "instanceIdentifier": "3c9c0c1f-db51-39f1-bcea-5aa511e75799" }, "destination": { "id": "98a12d17-c277-3226-af8b-03848dbdbf11", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "PublishKafka", "comments": "", "instanceIdentifier": "816125f7-0195-1000-0000-00006b8c4170" }, "labelIndex": 0, "zIndex": 0, "selectedRelationships": [ "success" ], "backPressureObjectThreshold": 20, "backPressureDataSizeThreshold": "1 GB", "flowFileExpiration": "0 sec", "prioritizers": [], "bends": [], "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", "partitioningAttribute": "", "loadBalanceCompression": "DO_NOT_COMPRESS", "componentType": "CONNECTION", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "18447f5e-4e45-39bc-80ac-86ef6083a913", "instanceIdentifier": "40d45abb-c0bb-3d35-a5e9-d4c28528445c", "name": "", "source": { "id": "ccf5a9db-6d16-3aa5-b054-b33a51405240", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Extract station_uuid", "comments": "", "instanceIdentifier": "6304de41-531f-37e9-b1a9-db89a7181c46" }, "destination": { "id": "d2841e3c-954c-3f6c-8c2b-0b4f20cea21c", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Get 30 minutes of historic data", "comments": "", "instanceIdentifier": "a11d09f2-9d6d-390d-947c-397b881e980f" }, "labelIndex": 1, "zIndex": 0, "selectedRelationships": [ "matched" ], "backPressureObjectThreshold": 10, "backPressureDataSizeThreshold": "1 GB", "flowFileExpiration": "0 sec", "prioritizers": [], "bends": [], "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", "partitioningAttribute": "", "loadBalanceCompression": "DO_NOT_COMPRESS", "componentType": "CONNECTION", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "d7a99464-402e-35fc-b090-3bc3d5fcb68a", "instanceIdentifier": "d5259744-57c7-3711-a0da-8114cb7db873", "name": "", "source": { "id": "8809ece7-fbe0-3613-b7b0-77e05c8f4cb1", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Extract station_uuid", "comments": "", "instanceIdentifier": "1425717b-a077-39b0-872e-7381d0b3848f" }, "destination": { "id": "a961da8c-d228-3d19-b6ed-2d48ebe35b05", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Get 30 days historic data", "comments": "", "instanceIdentifier": "15a87495-c9dc-36db-a3f0-828a63a688f9" }, "labelIndex": 1, "zIndex": 0, "selectedRelationships": [ "matched" ], "backPressureObjectThreshold": 10, "backPressureDataSizeThreshold": "1 GB", "flowFileExpiration": "0 sec", "prioritizers": [], "bends": [], "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", "partitioningAttribute": "", "loadBalanceCompression": "DO_NOT_COMPRESS", "componentType": "CONNECTION", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "3b89e1cf-29b9-3e53-bcc5-a58dc0db17a9", "instanceIdentifier": "296a4a6e-cf82-39bb-a329-9fc2a74652e7", "name": "", "source": { "id": "e85c2e60-192e-3ed8-ab64-750311e0ed45", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Get station list", "comments": "", "instanceIdentifier": "46c0209c-7abe-3a8e-bbc0-39f9333f14b1" }, "destination": { "id": "f5aefb8c-ec8c-3895-a221-b1514bf49019", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Produce station records", "comments": "", "instanceIdentifier": "815b69b0-0195-1000-ffff-ffff8e27806d" }, "labelIndex": 1, "zIndex": 0, "selectedRelationships": [ "Response" ], "backPressureObjectThreshold": 10000, "backPressureDataSizeThreshold": "1 GB", "flowFileExpiration": "0 sec", "prioritizers": [], "bends": [], "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", "partitioningAttribute": "", "loadBalanceCompression": "DO_NOT_COMPRESS", "componentType": "CONNECTION", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "0085c625-9d46-3f18-8d05-2d55c274a50e", "instanceIdentifier": "50823b83-873f-3bcd-b044-a85de2c53cf9", "name": "", "source": { "id": "656d02d2-3100-39e6-a3dd-a8fe91b6dd06", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "SplitRecord", "comments": "", "instanceIdentifier": "cec0a8ff-73d7-35d1-9f9c-0c5cc0af6db2" }, "destination": { "id": "ccf5a9db-6d16-3aa5-b054-b33a51405240", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Extract station_uuid", "comments": "", "instanceIdentifier": "6304de41-531f-37e9-b1a9-db89a7181c46" }, "labelIndex": 1, "zIndex": 0, "selectedRelationships": [ "splits" ], "backPressureObjectThreshold": 10, "backPressureDataSizeThreshold": "1 GB", "flowFileExpiration": "0 sec", "prioritizers": [], "bends": [], "loadBalanceStrategy": "ROUND_ROBIN", "partitioningAttribute": "", "loadBalanceCompression": "DO_NOT_COMPRESS", "componentType": "CONNECTION", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "9424162b-ce44-33ee-8b7a-cfea386e47e4", "instanceIdentifier": "74f2322f-a826-39db-87e3-114ce6a576e4", "name": "", "source": { "id": "e2bdb78b-009b-3086-ad39-816874d3be80", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Get station list", "comments": "", "instanceIdentifier": "72294ac8-46e9-33fb-8923-8e6cb4c69269" }, "destination": { "id": "d56a1c61-9006-315a-a15c-41439f14d030", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "SplitRecord", "comments": "", "instanceIdentifier": "d78cc57f-9bd1-35a2-9957-a70d52d0fb69" }, "labelIndex": 1, "zIndex": 0, "selectedRelationships": [ "Response" ], "backPressureObjectThreshold": 1, "backPressureDataSizeThreshold": "1 GB", "flowFileExpiration": "0 sec", "prioritizers": [], "bends": [], "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", "partitioningAttribute": "", "loadBalanceCompression": "DO_NOT_COMPRESS", "componentType": "CONNECTION", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "776daaa4-a1f6-38a7-b233-2102ddf589d8", "instanceIdentifier": "fbb55c02-33f9-3651-8e7d-f55f264e0514", "name": "", "source": { "id": "d2841e3c-954c-3f6c-8c2b-0b4f20cea21c", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Get 30 minutes of historic data", "comments": "", "instanceIdentifier": "a11d09f2-9d6d-390d-947c-397b881e980f" }, "destination": { "id": "50bc20ed-2b1b-3068-0000-0000423c0a67", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Add station_uuid", "comments": "", "instanceIdentifier": "3c9c0c1f-db51-39f1-bcea-5aa511e75799" }, "labelIndex": 1, "zIndex": 0, "selectedRelationships": [ "Response" ], "backPressureObjectThreshold": 10, "backPressureDataSizeThreshold": "1 GB", "flowFileExpiration": "0 sec", "prioritizers": [], "bends": [], "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", "partitioningAttribute": "", "loadBalanceCompression": "DO_NOT_COMPRESS", "componentType": "CONNECTION", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "82121195-d4b9-37e9-9994-87a6d890cc71", "instanceIdentifier": "8162fee0-0195-1000-ffff-ffff961b93ba", "name": "", "source": { "id": "dde01269-6b44-3f4c-9406-8e291cd8aaa4", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Add station_uuid", "comments": "", "instanceIdentifier": "816243be-0195-1000-ffff-fffff00620a1" }, "destination": { "id": "26542ec9-e3e3-380f-ab7a-7fa4b2c46d1e", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "PublishKafka", "comments": "", "instanceIdentifier": "815f05d7-0195-1000-0000-000005d97f79" }, "labelIndex": 0, "zIndex": 0, "selectedRelationships": [ "success" ], "backPressureObjectThreshold": 20, "backPressureDataSizeThreshold": "1 GB", "flowFileExpiration": "0 sec", "prioritizers": [], "bends": [], "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", "partitioningAttribute": "", "loadBalanceCompression": "DO_NOT_COMPRESS", "componentType": "CONNECTION", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "e911351c-a4a5-3a14-9c74-ebd96eef0f8d", "instanceIdentifier": "8b7cc62b-560c-3b8e-903a-f9572ac50df8", "name": "", "source": { "id": "a961da8c-d228-3d19-b6ed-2d48ebe35b05", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Get 30 days historic data", "comments": "", "instanceIdentifier": "15a87495-c9dc-36db-a3f0-828a63a688f9" }, "destination": { "id": "dde01269-6b44-3f4c-9406-8e291cd8aaa4", "type": "PROCESSOR", "groupId": "5bb5c008-b432-3d6f-b99e-fedc455bd418", "name": "Add station_uuid", "comments": "", "instanceIdentifier": "816243be-0195-1000-ffff-fffff00620a1" }, "labelIndex": 1, "zIndex": 0, "selectedRelationships": [ "Response" ], "backPressureObjectThreshold": 10, "backPressureDataSizeThreshold": "1 GB", "flowFileExpiration": "0 sec", "prioritizers": [], "bends": [], "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", "partitioningAttribute": "", "loadBalanceCompression": "DO_NOT_COMPRESS", "componentType": "CONNECTION", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" } ], "labels": [ { "identifier": "10ab1424-3268-3b7f-9e4e-d843df2427cd", "instanceIdentifier": "a57103e7-30b7-38d7-bb6c-f80b4dc4a710", "position": { "x": 485.99999797539556, "y": 174.99999837990495 }, "label": "Water levels data", "zIndex": 0, "width": 1104.0, "height": 24.0, "style": { "font-size": "12px" }, "componentType": "LABEL", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "938fbab6-21ee-347f-814a-b0016b7405b3", "instanceIdentifier": "99926082-4766-3223-8332-3f4affeae76b", "position": { "x": 1237.9999979753957, "y": 214.99999837990495 }, "label": "Stream real-time data", "zIndex": 0, "width": 152.0, "height": 24.0, "style": { "font-size": "12px" }, "componentType": "LABEL", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "b80512f7-0274-3712-8884-d6b31555927a", "instanceIdentifier": "7ef5e570-ca1c-3a70-abf7-9749db121fbc", "position": { "x": 485.99999797539556, "y": 214.99999837990495 }, "label": "Ingest station records", "zIndex": 0, "width": 152.0, "height": 24.0, "style": { "font-size": "12px" }, "componentType": "LABEL", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "4524d905-b8c4-32f6-ae83-4ecc54f95bfa", "instanceIdentifier": "a501f0f6-3372-3444-829c-2109de521069", "position": { "x": 861.9999979753956, "y": 214.99999837990495 }, "label": "Ingest historic data", "zIndex": 0, "width": 152.0, "height": 24.0, "style": { "font-size": "12px" }, "componentType": "LABEL", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" } ], "funnels": [], "controllerServices": [ { "identifier": "a43e5844-29fd-3ad4-8f84-5cfb771da897", "instanceIdentifier": "3213e3ae-00c3-3dd0-a838-770a15dc68e0", "name": "StandardRestrictedSSLContextService", "comments": "", "type": "org.apache.nifi.ssl.StandardRestrictedSSLContextService", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-ssl-context-service-nar", "version": "2.6.0" }, "properties": { "Truststore Type": "PKCS12", "Truststore Password": "secret", "SSL Protocol": "TLSv1.3", "Keystore Type": "PKCS12", "Keystore Password": "secret", "Truststore Filename": "/stackable/keystore/truststore.p12", "Keystore Filename": "/stackable/keystore/keystore.p12" }, "propertyDescriptors": { "Truststore Type": { "name": "Truststore Type", "displayName": "Truststore Type", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "SSL Protocol": { "name": "SSL Protocol", "displayName": "TLS Protocol", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Keystore Type": { "name": "Keystore Type", "displayName": "Keystore Type", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Truststore Filename": { "name": "Truststore Filename", "displayName": "Truststore Filename", "identifiesControllerService": false, "sensitive": false, "dynamic": false, "resourceDefinition": { "cardinality": "SINGLE", "resourceTypes": [ "FILE" ] } }, "Keystore Password": { "name": "Keystore Password", "displayName": "Keystore Password", "identifiesControllerService": false, "sensitive": true, "dynamic": false }, "key-password": { "name": "key-password", "displayName": "Key Password", "identifiesControllerService": false, "sensitive": true, "dynamic": false }, "Truststore Password": { "name": "Truststore Password", "displayName": "Truststore Password", "identifiesControllerService": false, "sensitive": true, "dynamic": false }, "Keystore Filename": { "name": "Keystore Filename", "displayName": "Keystore Filename", "identifiesControllerService": false, "sensitive": false, "dynamic": false, "resourceDefinition": { "cardinality": "SINGLE", "resourceTypes": [ "FILE" ] } } }, "controllerServiceApis": [ { "type": "org.apache.nifi.ssl.SSLContextProvider", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-services-api-nar", "version": "2.6.0" } }, { "type": "org.apache.nifi.ssl.SSLContextService", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-services-api-nar", "version": "2.6.0" } }, { "type": "org.apache.nifi.ssl.RestrictedSSLContextService", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-services-api-nar", "version": "2.6.0" } } ], "scheduledState": "DISABLED", "bulletinLevel": "WARN", "componentType": "CONTROLLER_SERVICE", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "f6b7ad0f-da95-39c4-be8d-4ae944d8034b", "instanceIdentifier": "ca38b3a6-868b-33f0-a858-30da336cc679", "name": "JsonRecordSetWriter", "type": "org.apache.nifi.json.JsonRecordSetWriter", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-record-serialization-services-nar", "version": "2.6.0" }, "properties": { "schema-reference-reader": null, "schema-branch": null, "Allow Scientific Notation": "false", "compression-level": "1", "schema-cache": null, "Timestamp Format": null, "Date Format": null, "Pretty Print JSON": "false", "compression-format": "none", "Schema Write Strategy": "no-schema", "suppress-nulls": "never-suppress", "output-grouping": "output-array", "schema-name": "${schema.name}", "schema-registry": null, "Time Format": null, "schema-access-strategy": "inherit-record-schema", "schema-version": null, "schema-text": "${avro.schema}", "Schema Reference Writer": null }, "propertyDescriptors": { "schema-reference-reader": { "name": "schema-reference-reader", "displayName": "Schema Reference Reader", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "schema-branch": { "name": "schema-branch", "displayName": "Schema Branch", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Allow Scientific Notation": { "name": "Allow Scientific Notation", "displayName": "Allow Scientific Notation", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "compression-level": { "name": "compression-level", "displayName": "Compression Level", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "schema-cache": { "name": "schema-cache", "displayName": "Schema Cache", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Timestamp Format": { "name": "Timestamp Format", "displayName": "Timestamp Format", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Date Format": { "name": "Date Format", "displayName": "Date Format", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Pretty Print JSON": { "name": "Pretty Print JSON", "displayName": "Pretty Print JSON", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "compression-format": { "name": "compression-format", "displayName": "Compression Format", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Schema Write Strategy": { "name": "Schema Write Strategy", "displayName": "Schema Write Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "suppress-nulls": { "name": "suppress-nulls", "displayName": "Suppress Null Values", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "output-grouping": { "name": "output-grouping", "displayName": "Output Grouping", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "schema-name": { "name": "schema-name", "displayName": "Schema Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "schema-registry": { "name": "schema-registry", "displayName": "Schema Registry", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Time Format": { "name": "Time Format", "displayName": "Time Format", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "schema-access-strategy": { "name": "schema-access-strategy", "displayName": "Schema Access Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "schema-version": { "name": "schema-version", "displayName": "Schema Version", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "schema-text": { "name": "schema-text", "displayName": "Schema Text", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Schema Reference Writer": { "name": "Schema Reference Writer", "displayName": "Schema Reference Writer", "identifiesControllerService": true, "sensitive": false, "dynamic": false } }, "controllerServiceApis": [ { "type": "org.apache.nifi.serialization.RecordSetWriterFactory", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-services-api-nar", "version": "2.6.0" } } ], "scheduledState": "DISABLED", "bulletinLevel": "WARN", "componentType": "CONTROLLER_SERVICE", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "e75c34eb-8e60-3b6b-8a29-3dd7b79776c4", "instanceIdentifier": "2d152882-2f62-3e45-8c8e-5f3127f8b931", "name": "JsonTreeReader", "type": "org.apache.nifi.json.JsonTreeReader", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-record-serialization-services-nar", "version": "2.6.0" }, "properties": { "schema-reference-reader": null, "schema-branch": null, "Max String Length": "20 MB", "schema-application-strategy": "SELECTED_PART", "Timestamp Format": null, "schema-inference-cache": null, "Date Format": null, "schema-name": "${schema.name}", "starting-field-strategy": "ROOT_NODE", "schema-registry": null, "starting-field-name": null, "Time Format": null, "schema-access-strategy": "infer-schema", "schema-version": null, "schema-text": "${avro.schema}", "Allow Comments": "false" }, "propertyDescriptors": { "schema-reference-reader": { "name": "schema-reference-reader", "displayName": "Schema Reference Reader", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "schema-branch": { "name": "schema-branch", "displayName": "Schema Branch", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Max String Length": { "name": "Max String Length", "displayName": "Max String Length", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "schema-application-strategy": { "name": "schema-application-strategy", "displayName": "Schema Application Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Timestamp Format": { "name": "Timestamp Format", "displayName": "Timestamp Format", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "schema-inference-cache": { "name": "schema-inference-cache", "displayName": "Schema Inference Cache", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "Date Format": { "name": "Date Format", "displayName": "Date Format", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "schema-name": { "name": "schema-name", "displayName": "Schema Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "starting-field-strategy": { "name": "starting-field-strategy", "displayName": "Starting Field Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "schema-registry": { "name": "schema-registry", "displayName": "Schema Registry", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "starting-field-name": { "name": "starting-field-name", "displayName": "Starting Field Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Time Format": { "name": "Time Format", "displayName": "Time Format", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "schema-access-strategy": { "name": "schema-access-strategy", "displayName": "Schema Access Strategy", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "schema-version": { "name": "schema-version", "displayName": "Schema Version", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "schema-text": { "name": "schema-text", "displayName": "Schema Text", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "Allow Comments": { "name": "Allow Comments", "displayName": "Allow Comments", "identifiesControllerService": false, "sensitive": false, "dynamic": false } }, "controllerServiceApis": [ { "type": "org.apache.nifi.serialization.RecordReaderFactory", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-services-api-nar", "version": "2.6.0" } } ], "scheduledState": "DISABLED", "bulletinLevel": "WARN", "componentType": "CONTROLLER_SERVICE", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" }, { "identifier": "29032623-5723-3b5d-8983-07534da27fd5", "instanceIdentifier": "815ba7c0-0195-1000-0000-00002ff4760b", "name": "Kafka3ConnectionService", "comments": "", "type": "org.apache.nifi.kafka.service.Kafka3ConnectionService", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-kafka-3-service-nar", "version": "2.6.0" }, "properties": { "security.protocol": "SSL", "SSL Context Service": "a43e5844-29fd-3ad4-8f84-5cfb771da897", "ack.wait.time": "5 sec", "sasl.username": null, "max.poll.records": "10000", "sasl.mechanism": "GSSAPI", "isolation.level": "read_committed", "max.block.ms": "5 sec", "bootstrap.servers": "kafka-broker-default-headless.default.svc.cluster.local:9093", "kerberos-user-service": null, "sasl.kerberos.service.name": null, "default.api.timeout.ms": "60 sec" }, "propertyDescriptors": { "ack.wait.time": { "name": "ack.wait.time", "displayName": "Acknowledgment Wait Time", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "sasl.username": { "name": "sasl.username", "displayName": "SASL Username", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "max.poll.records": { "name": "max.poll.records", "displayName": "Max Poll Records", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "bootstrap.servers": { "name": "bootstrap.servers", "displayName": "Bootstrap Servers", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "sasl.kerberos.service.name": { "name": "sasl.kerberos.service.name", "displayName": "Kerberos Service Name", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "security.protocol": { "name": "security.protocol", "displayName": "Security Protocol", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "SSL Context Service": { "name": "SSL Context Service", "displayName": "SSL Context Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "sasl.mechanism": { "name": "sasl.mechanism", "displayName": "SASL Mechanism", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "isolation.level": { "name": "isolation.level", "displayName": "Transaction Isolation Level", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "max.block.ms": { "name": "max.block.ms", "displayName": "Max Metadata Wait Time", "identifiesControllerService": false, "sensitive": false, "dynamic": false }, "kerberos-user-service": { "name": "kerberos-user-service", "displayName": "Kerberos User Service", "identifiesControllerService": true, "sensitive": false, "dynamic": false }, "sasl.password": { "name": "sasl.password", "displayName": "SASL Password", "identifiesControllerService": false, "sensitive": true, "dynamic": false }, "default.api.timeout.ms": { "name": "default.api.timeout.ms", "displayName": "Client Timeout", "identifiesControllerService": false, "sensitive": false, "dynamic": false } }, "controllerServiceApis": [ { "type": "org.apache.nifi.kafka.service.api.KafkaConnectionService", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-kafka-service-api-nar", "version": "2.6.0" } } ], "scheduledState": "DISABLED", "bulletinLevel": "WARN", "componentType": "CONTROLLER_SERVICE", "groupIdentifier": "5bb5c008-b432-3d6f-b99e-fedc455bd418" } ], "defaultFlowFileExpiration": "0 sec", "defaultBackPressureObjectThreshold": 10000, "defaultBackPressureDataSizeThreshold": "1 GB", "scheduledState": "ENABLED", "executionEngine": "INHERITED", "maxConcurrentTasks": 1, "statelessFlowTimeout": "1 min", "flowFileConcurrency": "UNBOUNDED", "flowFileOutboundPolicy": "STREAM_WHEN_AVAILABLE", "componentType": "PROCESS_GROUP" }, "externalControllerServices": {}, "parameterContexts": {}, "flowEncodingVersion": "1.0", "parameterProviders": {}, "latest": false } diff --git a/docs/modules/demos/images/nifi-kafka-druid-water-level-data/topics.png b/docs/modules/demos/images/nifi-kafka-druid-water-level-data/topics.png new file mode 100644 index 00000000..ee9107d3 Binary files /dev/null and b/docs/modules/demos/images/nifi-kafka-druid-water-level-data/topics.png differ diff --git a/docs/modules/demos/pages/nifi-kafka-druid-water-level-data.adoc b/docs/modules/demos/pages/nifi-kafka-druid-water-level-data.adoc index 14e1b0bb..9b2053d9 100644 --- a/docs/modules/demos/pages/nifi-kafka-druid-water-level-data.adoc +++ b/docs/modules/demos/pages/nifi-kafka-druid-water-level-data.adoc @@ -92,6 +92,215 @@ $ stackablectl stacklet list include::partial$instance-hint.adoc[] +== Inspect the data in Kafka + +Kafka is an event streaming platform to stream the data in near real-time. All the messages put in and read from Kafka +are structured in dedicated queues called topics. The test data will be put into topics called stations and measurements. The records +are produced (put in) by the test data generator and consumed (read) by Druid afterwards in the same order they were +created. + +To interact with Kafka you will use the client scripts shipped with the Kafka image. Kafka uses mutual TLS, so clients +wanting to connect to Kafka must present a valid TLS certificate. The easiest way to obtain this is to shell into the +`kafka-broker-default-0` Pod, as we will do in the following section for demonstration purposes. For a production setup, +you should spin up a dedicated Pod provisioned with a certificate acting as a Kafka client instead of shell-ing into the +Kafka Pod. + +=== List the available Topics + +You can execute a command on the Kafka broker to list the available topics as follows: + +[source,console] +---- +$ kubectl k exec kafka-broker-default-0 -c kafka -- \ +/stackable/kafka/bin/kafka-topics.sh \ +--describe \ +--bootstrap-server kafka-broker-default-headless.default.svc.cluster.local:9093 \ +--command-config /stackable/config/client.properties +... +Topic: measurements TopicId: w9qYb3GaTvCMZj4G8pkPPQ PartitionCount: 8 ReplicationFactor: 1 Configs: min.insync.replicas=1,segment.bytes=100000000,retention.bytes=900000000 + Topic: measurements Partition: 0 Leader: 1243966388 Replicas: 1243966388 Isr: 1243966388 Elr: LastKnownElr: + Topic: measurements Partition: 1 Leader: 1243966388 Replicas: 1243966388 Isr: 1243966388 Elr: LastKnownElr: + Topic: measurements Partition: 2 Leader: 1243966388 Replicas: 1243966388 Isr: 1243966388 Elr: LastKnownElr: + Topic: measurements Partition: 3 Leader: 1243966388 Replicas: 1243966388 Isr: 1243966388 Elr: LastKnownElr: + Topic: measurements Partition: 4 Leader: 1243966388 Replicas: 1243966388 Isr: 1243966388 Elr: LastKnownElr: + Topic: measurements Partition: 5 Leader: 1243966388 Replicas: 1243966388 Isr: 1243966388 Elr: LastKnownElr: + Topic: measurements Partition: 6 Leader: 1243966388 Replicas: 1243966388 Isr: 1243966388 Elr: LastKnownElr: + Topic: measurements Partition: 7 Leader: 1243966388 Replicas: 1243966388 Isr: 1243966388 Elr: LastKnownElr: +Topic: stations TopicId: QkKmvOagQkG4QbeS0IZ_Tg PartitionCount: 8 ReplicationFactor: 1 Configs: min.insync.replicas=1,segment.bytes=100000000,retention.bytes=900000000 + Topic: stations Partition: 0 Leader: 1243966388 Replicas: 1243966388 Isr: 1243966388 Elr: LastKnownElr: + Topic: stations Partition: 1 Leader: 1243966388 Replicas: 1243966388 Isr: 1243966388 Elr: LastKnownElr: + Topic: stations Partition: 2 Leader: 1243966388 Replicas: 1243966388 Isr: 1243966388 Elr: LastKnownElr: + Topic: stations Partition: 3 Leader: 1243966388 Replicas: 1243966388 Isr: 1243966388 Elr: LastKnownElr: + Topic: stations Partition: 4 Leader: 1243966388 Replicas: 1243966388 Isr: 1243966388 Elr: LastKnownElr: + Topic: stations Partition: 5 Leader: 1243966388 Replicas: 1243966388 Isr: 1243966388 Elr: LastKnownElr: + Topic: stations Partition: 6 Leader: 1243966388 Replicas: 1243966388 Isr: 1243966388 Elr: LastKnownElr: + Topic: stations Partition: 7 Leader: 1243966388 Replicas: 1243966388 Isr: 1243966388 Elr: LastKnownElr: +---- + +You can see that Kafka consists of one broker, and the topics `stations` and `measurements` have been created with eight +partitions each. + +=== Show Sample Records + +To see some records sent to Kafka, run the following commands. You can change the number of records to +print via the `--max-messages` parameter. + +[source,console] +---- +$ kubectl exec kafka-broker-default-0 -c kafka -- \ +/stackable/kafka/bin/kafka-console-consumer.sh \ +--bootstrap-server kafka-broker-default-headless.default.svc.cluster.local:9093 \ +--consumer.config /stackable/config/client.properties \ +--topic stations \ +--offset earliest \ +--partition 0 \ +--max-messages 2 +---- + +Below is an example of the output of two records: + +[source,json] +---- +{ + "uuid": "47174d8f-1b8e-4599-8a59-b580dd55bc87", + "number": 48900237, + "shortname": "EITZE", + "longname": "EITZE", + "km": 9.56, + "agency": "VERDEN", + "longitude": 9.2767694354, + "latitude": 52.9040654474, + "water": { + "shortname": "ALLER", + "longname": "ALLER" + } +} +{ + "uuid": "5aaed954-de4e-4528-8f65-f3f530bc8325", + "number": 48900204, + "shortname": "RETHEM", + "longname": "RETHEM", + "km": 34.22, + "agency": "VERDEN", + "longitude": 9.3828408101, + "latitude": 52.7890975921, + "water": { + "shortname": "ALLER", + "longname": "ALLER" + } +} +---- + +[source,console] +---- +$ kubectl exec kafka-broker-default-0 -c kafka -- \ +/stackable/kafka/bin/kafka-console-consumer.sh \ +--bootstrap-server kafka-broker-default-headless.default.svc.cluster.local:9093 \ +--consumer.config /stackable/config/client.properties \ +--topic measurements \ +--offset earliest \ +--partition 0 \ +--max-messages 3 +---- + +Below is an example of the output of three records: + +[source,json] +---- +{ + "timestamp": 1658151900000, + "value": 221, + "station_uuid": "47174d8f-1b8e-4599-8a59-b580dd55bc87" +} +{ + "timestamp": 1658152800000, + "value": 220, + "station_uuid": "47174d8f-1b8e-4599-8a59-b580dd55bc87" +} +{ + "timestamp": 1658153700000, + "value": 220, + "station_uuid": "47174d8f-1b8e-4599-8a59-b580dd55bc87" +} +---- + +The records of the two topics only contain the needed data. The measurement records contain a `station_uuid` for the +measuring station. The relationship is illustrated below. + +image::nifi-kafka-druid-water-level-data/topics.png[] + +The reason for splitting the data up into two different topics is the improved performance. One more straightforward +solution would be to use a single topic and produce records like the following: + +[source,json] +---- +{ + "uuid": "47174d8f-1b8e-4599-8a59-b580dd55bc87", + "number": 48900237, + "shortname": "EITZE", + "longname": "EITZE", + "km": 9.56, + "agency": "VERDEN", + "longitude": 9.2767694354, + "latitude": 52.9040654474, + "water": { + "shortname": "ALLER", + "longname": "ALLER" + }, + "timestamp": 1658151900000, + "value": 221 +} +---- + +Notice the two last attributes that differ from the previously shown `stations` records. The obvious downside is that +every measurement (multiple millions of it) has to contain all the data known about the station it was measured at. This +often leads to transmitting and storing duplicated information, e.g., the longitude of a station, resulting in increased +network traffic and storage usage. The solution is only to send a station's known/needed data or measurement data. This +process is called data normalization. The downside is that when analyzing the data, you need to combine the records from +multiple tables in Druid (`stations` and `measurements`). + +If you are interested in how many records have been produced to the Kafka topic so far, use the following command. It +will print the last record produced to the topic partition, formatted with the pattern specified in the `-f` parameter. +The given pattern will print some metadata of the record. + +[source,console] +---- +$ kubectl exec kafka-broker-default-0 -c kafka -- \ +/stackable/kafka/bin/kafka-get-offsets.sh \ +--bootstrap-server kafka-broker-default-headless.default.svc.cluster.local:9093 \ +--command-config /stackable/config/client.properties \ +--topic measurements +... +measurements:0:1366665 +measurements:1:1364930 +measurements:2:1395607 +measurements:3:1390762 +measurements:4:1368829 +measurements:5:1362539 +measurements:6:1344362 +measurements:7:1369651 +---- + +Multiplying `1,324,098` records by `8` partitions, we end up with ~ 10,592,784 records. + +To inspect the last produced records, use the following command. Here, we consume the last three records from partition +`0` of the `measurements` topic. + +[source,console] +---- +$ kubectl exec kafka-broker-default-0 -c kafka -- \ +/stackable/kafka/bin/kafka-console-consumer.sh \ +--bootstrap-server kafka-broker-default-headless.default.svc.cluster.local:9093 \ +--consumer.config /stackable/config/client.properties \ +--topic measurements \ +--offset latest \ +--partition 0 \ +--max-messages 3 +-... +{"timestamp":"2025-10-21T11:00:00+02:00","value":369.54,"station_uuid":"5cdc6555-87d7-4fcd-834d-cbbe24c9d08b"} +{"timestamp":"2025-10-21T11:15:00+02:00","value":369.54,"station_uuid":"5cdc6555-87d7-4fcd-834d-cbbe24c9d08b"} +{"timestamp":"2025-10-21T11:00:00+02:00","value":8.0,"station_uuid":"7deedc21-2878-40cc-ab47-f6da0d9002f1"} +---- == NiFi NiFi fetches water-level data from the internet and ingests it into Kafka in real time. This demo includes a workflow