Created
January 12, 2019 18:10
-
-
Save lostinsoftware/01929f57091c5bda055313866d84e045 to your computer and use it in GitHub Desktop.
Saving data in InfluxDB using Apache NiFi
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> | |
<template encoding-version="1.2"> | |
<description>Saving data in InfluxDB using Apache NiFi</description> | |
<groupId>2493adde-0168-1000-b6d3-8df5b44b7ea7</groupId> | |
<name>SavingDataInInfluxDB</name> | |
<snippet> | |
<connections> | |
<id>5b3de893-02ab-31c2-0000-000000000000</id> | |
<parentGroupId>5c0ab693-fb2e-3f91-0000-000000000000</parentGroupId> | |
<backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold> | |
<backPressureObjectThreshold>10000</backPressureObjectThreshold> | |
<destination> | |
<groupId>5c0ab693-fb2e-3f91-0000-000000000000</groupId> | |
<id>b3017383-a694-3be6-0000-000000000000</id> | |
<type>PROCESSOR</type> | |
</destination> | |
<flowFileExpiration>0 sec</flowFileExpiration> | |
<labelIndex>1</labelIndex> | |
<loadBalanceCompression>DO_NOT_COMPRESS</loadBalanceCompression> | |
<loadBalancePartitionAttribute></loadBalancePartitionAttribute> | |
<loadBalanceStatus>LOAD_BALANCE_NOT_CONFIGURED</loadBalanceStatus> | |
<loadBalanceStrategy>DO_NOT_LOAD_BALANCE</loadBalanceStrategy> | |
<name></name> | |
<selectedRelationships>success</selectedRelationships> | |
<source> | |
<groupId>5c0ab693-fb2e-3f91-0000-000000000000</groupId> | |
<id>e9f70399-93e1-3303-0000-000000000000</id> | |
<type>PROCESSOR</type> | |
</source> | |
<zIndex>0</zIndex> | |
</connections> | |
<connections> | |
<id>5dbb7aae-9676-3abf-0000-000000000000</id> | |
<parentGroupId>5c0ab693-fb2e-3f91-0000-000000000000</parentGroupId> | |
<backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold> | |
<backPressureObjectThreshold>10000</backPressureObjectThreshold> | |
<destination> | |
<groupId>5c0ab693-fb2e-3f91-0000-000000000000</groupId> | |
<id>e9f70399-93e1-3303-0000-000000000000</id> | |
<type>PROCESSOR</type> | |
</destination> | |
<flowFileExpiration>0 sec</flowFileExpiration> | |
<labelIndex>1</labelIndex> | |
<loadBalanceCompression>DO_NOT_COMPRESS</loadBalanceCompression> | |
<loadBalancePartitionAttribute></loadBalancePartitionAttribute> | |
<loadBalanceStatus>LOAD_BALANCE_NOT_CONFIGURED</loadBalanceStatus> | |
<loadBalanceStrategy>DO_NOT_LOAD_BALANCE</loadBalanceStrategy> | |
<name></name> | |
<selectedRelationships>success</selectedRelationships> | |
<source> | |
<groupId>5c0ab693-fb2e-3f91-0000-000000000000</groupId> | |
<id>8c7f19e6-2252-3dbe-0000-000000000000</id> | |
<type>PROCESSOR</type> | |
</source> | |
<zIndex>0</zIndex> | |
</connections> | |
<connections> | |
<id>873b718d-0d27-3ad5-0000-000000000000</id> | |
<parentGroupId>5c0ab693-fb2e-3f91-0000-000000000000</parentGroupId> | |
<backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold> | |
<backPressureObjectThreshold>10000</backPressureObjectThreshold> | |
<destination> | |
<groupId>5c0ab693-fb2e-3f91-0000-000000000000</groupId> | |
<id>8c7f19e6-2252-3dbe-0000-000000000000</id> | |
<type>PROCESSOR</type> | |
</destination> | |
<flowFileExpiration>0 sec</flowFileExpiration> | |
<labelIndex>1</labelIndex> | |
<loadBalanceCompression>DO_NOT_COMPRESS</loadBalanceCompression> | |
<loadBalancePartitionAttribute></loadBalancePartitionAttribute> | |
<loadBalanceStatus>LOAD_BALANCE_NOT_CONFIGURED</loadBalanceStatus> | |
<loadBalanceStrategy>DO_NOT_LOAD_BALANCE</loadBalanceStrategy> | |
<name></name> | |
<selectedRelationships>Success</selectedRelationships> | |
<source> | |
<groupId>5c0ab693-fb2e-3f91-0000-000000000000</groupId> | |
<id>cedcb6d0-6731-38ef-0000-000000000000</id> | |
<type>PROCESSOR</type> | |
</source> | |
<zIndex>0</zIndex> | |
</connections> | |
<processors> | |
<id>8c7f19e6-2252-3dbe-0000-000000000000</id> | |
<parentGroupId>5c0ab693-fb2e-3f91-0000-000000000000</parentGroupId> | |
<position> | |
<x>0.0</x> | |
<y>290.32201729775727</y> | |
</position> | |
<bundle> | |
<artifact>nifi-scripting-nar</artifact> | |
<group>org.apache.nifi</group> | |
<version>1.8.0</version> | |
</bundle> | |
<config> | |
<bulletinLevel>WARN</bulletinLevel> | |
<comments></comments> | |
<concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount> | |
<descriptors> | |
<entry> | |
<key>Script Engine</key> | |
<value> | |
<name>Script Engine</name> | |
</value> | |
</entry> | |
<entry> | |
<key>Script File</key> | |
<value> | |
<name>Script File</name> | |
</value> | |
</entry> | |
<entry> | |
<key>Script Body</key> | |
<value> | |
<name>Script Body</name> | |
</value> | |
</entry> | |
<entry> | |
<key>Module Directory</key> | |
<value> | |
<name>Module Directory</name> | |
</value> | |
</entry> | |
</descriptors> | |
<executionNode>ALL</executionNode> | |
<lossTolerant>false</lossTolerant> | |
<penaltyDuration>30 sec</penaltyDuration> | |
<properties> | |
<entry> | |
<key>Script Engine</key> | |
<value>Groovy</value> | |
</entry> | |
<entry> | |
<key>Script File</key> | |
</entry> | |
<entry> | |
<key>Script Body</key> | |
<value>import java.nio.charset.StandardCharsets | |
def flowFile = session.get() | |
if(!flowFile) return | |
flowFile = session.write(flowFile, {inputStream, outputStream -> | |
String result = '' | |
String ts = '' | |
inputStream.eachLine { line -> | |
a = line.tokenize(',') | |
ts = a[1] | |
result += a[0] + "=" + a[2] + "," | |
} | |
result = result.substring(0, result.length()-1) + ' ' + ts + '000000' | |
outputStream.write(result.getBytes(StandardCharsets.UTF_8)) | |
} as StreamCallback) | |
session.transfer(flowFile, REL_SUCCESS)</value> | |
</entry> | |
<entry> | |
<key>Module Directory</key> | |
</entry> | |
</properties> | |
<runDurationMillis>0</runDurationMillis> | |
<schedulingPeriod>0 sec</schedulingPeriod> | |
<schedulingStrategy>TIMER_DRIVEN</schedulingStrategy> | |
<yieldDuration>1 sec</yieldDuration> | |
</config> | |
<executionNodeRestricted>false</executionNodeRestricted> | |
<name>Conver to InfluxDB line protocol</name> | |
<relationships> | |
<autoTerminate>true</autoTerminate> | |
<name>failure</name> | |
</relationships> | |
<relationships> | |
<autoTerminate>false</autoTerminate> | |
<name>success</name> | |
</relationships> | |
<state>STOPPED</state> | |
<style/> | |
<type>org.apache.nifi.processors.script.ExecuteScript</type> | |
</processors> | |
<processors> | |
<id>b3017383-a694-3be6-0000-000000000000</id> | |
<parentGroupId>5c0ab693-fb2e-3f91-0000-000000000000</parentGroupId> | |
<position> | |
<x>569.8002392023395</x> | |
<y>294.2278177881103</y> | |
</position> | |
<bundle> | |
<artifact>nifi-influxdb-nar</artifact> | |
<group>org.apache.nifi</group> | |
<version>1.8.0</version> | |
</bundle> | |
<config> | |
<bulletinLevel>WARN</bulletinLevel> | |
<comments></comments> | |
<concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount> | |
<descriptors> | |
<entry> | |
<key>influxdb-dbname</key> | |
<value> | |
<name>influxdb-dbname</name> | |
</value> | |
</entry> | |
<entry> | |
<key>influxdb-url</key> | |
<value> | |
<name>influxdb-url</name> | |
</value> | |
</entry> | |
<entry> | |
<key>InfluxDB Max Connection Time Out (seconds)</key> | |
<value> | |
<name>InfluxDB Max Connection Time Out (seconds)</name> | |
</value> | |
</entry> | |
<entry> | |
<key>influxdb-username</key> | |
<value> | |
<name>influxdb-username</name> | |
</value> | |
</entry> | |
<entry> | |
<key>influxdb-password</key> | |
<value> | |
<name>influxdb-password</name> | |
</value> | |
</entry> | |
<entry> | |
<key>influxdb-charset</key> | |
<value> | |
<name>influxdb-charset</name> | |
</value> | |
</entry> | |
<entry> | |
<key>influxdb-consistency-level</key> | |
<value> | |
<name>influxdb-consistency-level</name> | |
</value> | |
</entry> | |
<entry> | |
<key>influxdb-retention-policy</key> | |
<value> | |
<name>influxdb-retention-policy</name> | |
</value> | |
</entry> | |
<entry> | |
<key>influxdb-max-records-size</key> | |
<value> | |
<name>influxdb-max-records-size</name> | |
</value> | |
</entry> | |
</descriptors> | |
<executionNode>ALL</executionNode> | |
<lossTolerant>false</lossTolerant> | |
<penaltyDuration>30 sec</penaltyDuration> | |
<properties> | |
<entry> | |
<key>influxdb-dbname</key> | |
<value>test1</value> | |
</entry> | |
<entry> | |
<key>influxdb-url</key> | |
<value>http://localhost:8086</value> | |
</entry> | |
<entry> | |
<key>InfluxDB Max Connection Time Out (seconds)</key> | |
<value>0 seconds</value> | |
</entry> | |
<entry> | |
<key>influxdb-username</key> | |
</entry> | |
<entry> | |
<key>influxdb-password</key> | |
</entry> | |
<entry> | |
<key>influxdb-charset</key> | |
<value>UTF-8</value> | |
</entry> | |
<entry> | |
<key>influxdb-consistency-level</key> | |
<value>ONE</value> | |
</entry> | |
<entry> | |
<key>influxdb-retention-policy</key> | |
<value>autogen</value> | |
</entry> | |
<entry> | |
<key>influxdb-max-records-size</key> | |
<value>1 MB</value> | |
</entry> | |
</properties> | |
<runDurationMillis>0</runDurationMillis> | |
<schedulingPeriod>0 sec</schedulingPeriod> | |
<schedulingStrategy>TIMER_DRIVEN</schedulingStrategy> | |
<yieldDuration>1 sec</yieldDuration> | |
</config> | |
<executionNodeRestricted>false</executionNodeRestricted> | |
<name>PutInfluxDB</name> | |
<relationships> | |
<autoTerminate>true</autoTerminate> | |
<name>failure</name> | |
</relationships> | |
<relationships> | |
<autoTerminate>true</autoTerminate> | |
<name>failure-max-size</name> | |
</relationships> | |
<relationships> | |
<autoTerminate>true</autoTerminate> | |
<name>retry</name> | |
</relationships> | |
<relationships> | |
<autoTerminate>true</autoTerminate> | |
<name>success</name> | |
</relationships> | |
<state>STOPPED</state> | |
<style/> | |
<type>org.apache.nifi.processors.influxdb.PutInfluxDB</type> | |
</processors> | |
<processors> | |
<id>cedcb6d0-6731-38ef-0000-000000000000</id> | |
<parentGroupId>5c0ab693-fb2e-3f91-0000-000000000000</parentGroupId> | |
<position> | |
<x>0.8402386043251227</x> | |
<y>0.0</y> | |
</position> | |
<bundle> | |
<artifact>nifi-simulator-bundle-nar</artifact> | |
<group>com.hashmap</group> | |
<version>1.0-SNAPSHOT</version> | |
</bundle> | |
<config> | |
<bulletinLevel>WARN</bulletinLevel> | |
<comments></comments> | |
<concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount> | |
<descriptors> | |
<entry> | |
<key>SIMULATOR_CONFIG</key> | |
<value> | |
<name>SIMULATOR_CONFIG</name> | |
</value> | |
</entry> | |
<entry> | |
<key>PRINT_HEADER</key> | |
<value> | |
<name>PRINT_HEADER</name> | |
</value> | |
</entry> | |
<entry> | |
<key>LONG_TIMESTAMP</key> | |
<value> | |
<name>LONG_TIMESTAMP</name> | |
</value> | |
</entry> | |
<entry> | |
<key>TIMEZONE</key> | |
<value> | |
<name>TIMEZONE</name> | |
</value> | |
</entry> | |
<entry> | |
<key>DATA_FORMAT</key> | |
<value> | |
<name>DATA_FORMAT</name> | |
</value> | |
</entry> | |
<entry> | |
<key>DEVICE_NAME</key> | |
<value> | |
<name>DEVICE_NAME</name> | |
</value> | |
</entry> | |
<entry> | |
<key>JSON_DEVICE_TYPE</key> | |
<value> | |
<name>JSON_DEVICE_TYPE</name> | |
</value> | |
</entry> | |
</descriptors> | |
<executionNode>ALL</executionNode> | |
<lossTolerant>false</lossTolerant> | |
<penaltyDuration>30 sec</penaltyDuration> | |
<properties> | |
<entry> | |
<key>SIMULATOR_CONFIG</key> | |
<value>D:\nifi-1.8.0\config\temperature.json</value> | |
</entry> | |
<entry> | |
<key>PRINT_HEADER</key> | |
<value>false</value> | |
</entry> | |
<entry> | |
<key>LONG_TIMESTAMP</key> | |
<value>true</value> | |
</entry> | |
<entry> | |
<key>TIMEZONE</key> | |
<value>Europe/Madrid</value> | |
</entry> | |
<entry> | |
<key>DATA_FORMAT</key> | |
<value>CSV</value> | |
</entry> | |
<entry> | |
<key>DEVICE_NAME</key> | |
</entry> | |
<entry> | |
<key>JSON_DEVICE_TYPE</key> | |
<value>Device</value> | |
</entry> | |
</properties> | |
<runDurationMillis>0</runDurationMillis> | |
<schedulingPeriod>2 sec</schedulingPeriod> | |
<schedulingStrategy>TIMER_DRIVEN</schedulingStrategy> | |
<yieldDuration>1 sec</yieldDuration> | |
</config> | |
<executionNodeRestricted>false</executionNodeRestricted> | |
<name>GenerateTimeSeriesFlowFile</name> | |
<relationships> | |
<autoTerminate>false</autoTerminate> | |
<name>Success</name> | |
</relationships> | |
<state>STOPPED</state> | |
<style/> | |
<type>com.hashmap.tempus.processors.GenerateTimeSeriesFlowFile</type> | |
</processors> | |
<processors> | |
<id>e9f70399-93e1-3303-0000-000000000000</id> | |
<parentGroupId>5c0ab693-fb2e-3f91-0000-000000000000</parentGroupId> | |
<position> | |
<x>567.9008802342521</x> | |
<y>18.602558411545488</y> | |
</position> | |
<bundle> | |
<artifact>nifi-standard-nar</artifact> | |
<group>org.apache.nifi</group> | |
<version>1.8.0</version> | |
</bundle> | |
<config> | |
<bulletinLevel>WARN</bulletinLevel> | |
<comments></comments> | |
<concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount> | |
<descriptors> | |
<entry> | |
<key>Regular Expression</key> | |
<value> | |
<name>Regular Expression</name> | |
</value> | |
</entry> | |
<entry> | |
<key>Replacement Value</key> | |
<value> | |
<name>Replacement Value</name> | |
</value> | |
</entry> | |
<entry> | |
<key>Character Set</key> | |
<value> | |
<name>Character Set</name> | |
</value> | |
</entry> | |
<entry> | |
<key>Maximum Buffer Size</key> | |
<value> | |
<name>Maximum Buffer Size</name> | |
</value> | |
</entry> | |
<entry> | |
<key>Replacement Strategy</key> | |
<value> | |
<name>Replacement Strategy</name> | |
</value> | |
</entry> | |
<entry> | |
<key>Evaluation Mode</key> | |
<value> | |
<name>Evaluation Mode</name> | |
</value> | |
</entry> | |
</descriptors> | |
<executionNode>ALL</executionNode> | |
<lossTolerant>false</lossTolerant> | |
<penaltyDuration>30 sec</penaltyDuration> | |
<properties> | |
<entry> | |
<key>Regular Expression</key> | |
<value>(?s)(^.*$)</value> | |
</entry> | |
<entry> | |
<key>Replacement Value</key> | |
<value>${measurement},machine=${machine} $1</value> | |
</entry> | |
<entry> | |
<key>Character Set</key> | |
<value>UTF-8</value> | |
</entry> | |
<entry> | |
<key>Maximum Buffer Size</key> | |
<value>1 MB</value> | |
</entry> | |
<entry> | |
<key>Replacement Strategy</key> | |
<value>Regex Replace</value> | |
</entry> | |
<entry> | |
<key>Evaluation Mode</key> | |
<value>Entire text</value> | |
</entry> | |
</properties> | |
<runDurationMillis>0</runDurationMillis> | |
<schedulingPeriod>0 sec</schedulingPeriod> | |
<schedulingStrategy>TIMER_DRIVEN</schedulingStrategy> | |
<yieldDuration>1 sec</yieldDuration> | |
</config> | |
<executionNodeRestricted>false</executionNodeRestricted> | |
<name>ReplaceText</name> | |
<relationships> | |
<autoTerminate>true</autoTerminate> | |
<name>failure</name> | |
</relationships> | |
<relationships> | |
<autoTerminate>false</autoTerminate> | |
<name>success</name> | |
</relationships> | |
<state>STOPPED</state> | |
<style/> | |
<type>org.apache.nifi.processors.standard.ReplaceText</type> | |
</processors> | |
</snippet> | |
<timestamp>10/27/2018 19:00:06 CET</timestamp> | |
</template> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment