The following examples show simple flow configurations for several common use cases. Use the path of these yaml files as the flow configuration set in the nifi.flow.configuration.file
property of conf/minifi.properties
file or replace the default conf/config.yml
file to try them out.
- Filesystem Operations
- Windows Specific Processors
- Linux Specific Processors
- HTTP Operations
- Site to Site Operations
- Kafka Operations
- Public Cloud Operations
- SQL Operations
- ExecuteScript
Using the getfile_putfile_config.yml flow configuration MiNiFi gets all files of minimum 1MB size from the /tmp/getfile_dir
directory and puts them in the /tmp/out_dir
output directory.
The flow: GetFile ➔ success ➔ PutFile
Using the tailfile_config.yml flow configuration MiNiFi tails a single file /tmp/test_file.log
and creates flowfiles from every single line, then logs the flowfile attributes.
The flow: TailFile ➔ success ➔ LogAttribute
Using the cwel_config.yml flow configuration MiNiFi queries all Windows system events and puts them to the C:\temp\
directory in flattened JSON format.
The flow: ConsumeWindowsEventLog ➔ PutFile
Using the pdh_config.yml flow configuration MiNiFi reads CPU and Disk performance data through Windows' Performance Data Helper (PDH) component and puts the data to the C:\temp\
directory in a compact JSON format.
The flow: PerformanceDataMonitor ➔ PutFile
Using the consumejournald_config.yml flow configuration MiNiFi reads systemd-journald journal messages and logs them on info
level.
The flow: ConsumeJournald ➔ LogAttribute
Using the http_post_config.yml flow configuration MiNiFi transfers flowfile data received from the GetFile processor by invoking an HTTP endpoint with POST method.
The flow: GetFile ➔ success ➔ InvokeHTTP
Using the site_to_site_config.yml flow configuration MiNiFi transfers data received from the GetFile processor to a remote NiFi instance located at http://nifi:8080/nifi
.
Using the publishkafka_config.yml flow configuration MiNiFi publishes data received from the GetFile processor to a configured Kafka broker's test
topic.
The flow: GetFile ➔ success ➔ PublishKafka
Using the publishkafka_ssl_config.yml flow configuration MiNiFi publishes data received from the GetFile processor to a configured Kafka broker's test
topic through SSL connection.
The flow: GetFile ➔ success ➔ PublishKafka
Using the consumekafka_config.yml flow configuration MiNiFi consumes messages from the configured Kafka broker's ConsumeKafkaTest
topic from the earliest available message. The messages are forwarded to the PutFile
processor and put in the /tmp/output
directory.
The flow: ConsumeKafka ➔ success ➔ PutFile
Using the azure_storage_config.yml flow configuration MiNiFi uploads data received from the GetFile processor to Azure's blob storage container test-container
.
The flow: GetFile ➔ success ➔ PutAzureBlobStorage
Using the puts3_config.yml flow configuration MiNiFi uploads data received from the GetFile processor to AWS S3 bucket test_bucket
.
The flow: GetFile ➔ success ➔ PutS3Object
Using the lists3_fetchs3_config.yml flow configuration MiNiFi lists S3 bucket test_bucket
and fetches its contents in flowfiles then logs the attributes. The flow uses AWSCredentialsService
controller service to provide credentials for all S3 processors. It has Use Default Credentials
property set which retrieves credentials from AWS default credentials provider chain (environment variables, configuration file, instance profile).
The flow: ListS3 ➔ FetchS3Object ➔ LogAttribute
Using the querydbtable_config.yml flow configuration MiNiFi queries the id
and name
columns of the users
table with a where
clause and the results are put in the /tmp/output
directory. The database connection data is set in the ODBCService
controller service.
The flow: QueryDatabaseTable ➔ PutFile
ExecuteScript supports Lua and Python
Using the process_data_with_scripts.yml flow configuration MiNiFi generates a flowfile then reverses its content with reverse_flow_file_content.py or reverse_flow_file_content.lua then writes the result to ./reversed_flow_files/
The flow: GenerateFlowFile ➔ ExecuteScript ➔ PutFile
Additional script examples can be found here.