@SeeAlso({ ListAzureBlobStorage.class, PutAzureBlobStorage.class, DeleteAzureBlobStorage.class }) @InputRequirement(Requirement.INPUT_REQUIRED) @WritesAttributes({ @WritesAttribute(attribute = "azure.length", description = "The length of the blob fetched") })
"or from the Query parameter.") @Tags({ "elastic", "elasticsearch", "delete", "query"}) @WritesAttributes({ @WritesAttribute(attribute = "elasticsearch.delete.took", description = "The amount of time that it took to complete the delete operation in ms."), @WritesAttribute(attribute = "elasticsearch.delete.error", description = "The error message provided by ElasticSearch if there is an error running the delete.")
+ "generated copies are sent to the 'success' relationship. In addition, each FlowFile gets an attribute 'copy.index' set to the copy number, where the original FlowFile gets " + "a value of zero, and all copies receive incremented integer values.") @WritesAttributes({ @WritesAttribute(attribute = "copy.index", description = "A zero-based incrementing integer value based on which copy the FlowFile is.") })
@SideEffectFree @Tags({"convert", "record", "generic", "schema", "json", "csv", "avro", "log", "logs", "freeform", "text"}) @WritesAttributes({ @WritesAttribute(attribute = "mime.type", description = "Sets the mime.type attribute to the MIME Type specified by the Record Writer"), @WritesAttribute(attribute = "record.count", description = "The number of records in the FlowFile")
"set as large as the largest messages expected to be received, meaning if every 100kb there is a line separator, then " + "the Receive Buffer Size must be greater than 100kb.") @WritesAttributes({ @WritesAttribute(attribute="tcp.sender", description="The sending host of the messages."), @WritesAttribute(attribute="tcp.port", description="The sending port the messages were received.")
@SupportsBatching @InputRequirement(InputRequirement.Requirement.INPUT_REQUIRED) @Tags({"parquet", "hadoop", "HDFS", "get", "ingest", "fetch", "source", "record"}) @CapabilityDescription("Reads from a given Parquet file and writes records to the content of the flow file using " + "the selected record writer. The original Parquet file will remain unchanged, and the content of the flow file " + "will be replaced with records of the selected type. This processor can be used with ListHDFS or ListFile to obtain " + "a listing of files to fetch.") @WritesAttributes({ @WritesAttribute(attribute="fetch.failure.reason", description="When a FlowFile is routed to 'failure', this attribute is added " + "indicating why the file could not be fetched from the given filesystem."), @WritesAttribute(attribute = "record.count", description = "The number of records in the resulting flow file") }) @SeeAlso({PutParquet.class}) @Restricted(restrictions = { @Restriction( requiredPermission = RequiredPermission.READ_FILESYSTEM, explanation = "Provides operator the ability to retrieve any file that NiFi has access to in HDFS or the local filesystem.") }) public class FetchParquet extends AbstractFetchHDFSRecord { @Override public HDFSRecordReader createHDFSRecordReader(final ProcessContext context, final FlowFile flowFile, final Configuration conf, final Path path) throws IOException { final ParquetReader.Builder<GenericRecord> readerBuilder = AvroParquetReader.<GenericRecord>builder(path).withConf(conf); return new AvroParquetHDFSRecordReader(readerBuilder.build()); } }
"Note - The Ignite Kernel periodically outputs node performance statistics to the logs. This message " + " can be turned off by setting the log level for logger 'org.apache.ignite' to WARN in the logback.xml configuration file.") @WritesAttributes({ @WritesAttribute(attribute = GetIgniteCache.IGNITE_GET_FAILED_REASON_ATTRIBUTE_KEY, description = "The reason for getting entry from cache"), })
@CapabilityDescription("Fetches the content of a file from a remote SFTP server and overwrites the contents of an incoming FlowFile with the content of the remote file.") @SeeAlso({GetSFTP.class, PutSFTP.class, GetFTP.class, PutFTP.class}) @WritesAttributes({ @WritesAttribute(attribute = "ftp.remote.host", description = "The hostname or IP address from which the file was pulled"), @WritesAttribute(attribute = "ftp.remote.port", description = "The port that was used to communicate with the remote FTP server"),
@CapabilityDescription("Fetches the content of a file from a remote SFTP server and overwrites the contents of an incoming FlowFile with the content of the remote file.") @SeeAlso({GetSFTP.class, PutSFTP.class, GetFTP.class, PutFTP.class}) @WritesAttributes({ @WritesAttribute(attribute = "sftp.remote.host", description = "The hostname or IP address from which the file was pulled"), @WritesAttribute(attribute = "sftp.remote.port", description = "The port that was used to communicate with the remote SFTP server"),
"the entire dot file will be removed and the flow file will be routed to failure or retry, depending on the error.") @ReadsAttribute(attribute = "filename", description = "The name of the file to write comes from the value of this attribute.") @WritesAttributes({ @WritesAttribute(attribute = "filename", description = "The name of the file is stored in this attribute."), @WritesAttribute(attribute = "absolute.hdfs.path", description = "The absolute path to the file is stored in this attribute."),
" FlowFiles are transferred to downstream relationships according to received message types" + " as WebSocket client configured with this processor receives messages from remote WebSocket server.") @WritesAttributes({ @WritesAttribute(attribute = ATTR_WS_CS_ID, description = "WebSocket Controller Service id."), @WritesAttribute(attribute = ATTR_WS_SESSION_ID, description = "Established WebSocket session id."),
@CapabilityDescription("Puts content into an Azure Storage Blob") @InputRequirement(Requirement.INPUT_REQUIRED) @WritesAttributes({ @WritesAttribute(attribute = "azure.container", description = "The name of the Azure container"), @WritesAttribute(attribute = "azure.blobname", description = "The name of the Azure blob"), @WritesAttribute(attribute = "azure.primaryUri", description = "Primary location for blob content"),
" FlowFiles are transferred to downstream relationships according to received message types" + " as the WebSocket server configured with this processor receives client requests") @WritesAttributes({ @WritesAttribute(attribute = ATTR_WS_CS_ID, description = "WebSocket Controller Service id."), @WritesAttribute(attribute = ATTR_WS_SESSION_ID, description = "Established WebSocket session id."),
@InputRequirement(Requirement.INPUT_FORBIDDEN) @Tags({"sftp", "get", "retrieve", "files", "fetch", "remote", "ingest", "source", "input"}) @CapabilityDescription("Fetches files from an SFTP Server and creates FlowFiles from them") @WritesAttributes({ @WritesAttribute(attribute = "filename", description = "The filename is set to the name of the file on the remote server"), @WritesAttribute(attribute = "path", description = "The path is set to the path of the file's directory on the remote server. "
"'IP Address Attribute' property. If the name of the attribute provided is 'X', then the the attributes added by" + " enrichment will take the form X.isp.<fieldName>") @WritesAttributes({ @WritesAttribute(attribute = "X.isp.lookup.micros", description = "The number of microseconds that the geo lookup took"), @WritesAttribute(attribute = "X.isp.asn", description = "The Autonomous System Number (ASN) identified for the IP address"),
@InputRequirement(Requirement.INPUT_FORBIDDEN) @Tags({"FTP", "get", "retrieve", "files", "fetch", "remote", "ingest", "source", "input"}) @CapabilityDescription("Fetches files from an FTP Server and creates FlowFiles from them") @WritesAttributes({ @WritesAttribute(attribute = "filename", description = "The filename is set to the name of the file on the remote server"), @WritesAttribute(attribute = "path", description = "The path is set to the path of the file's directory on the remote server. "
+ "incremental fetching, fetching of newly added rows, etc. To clear the maximum values, clear the state of the processor " + "per the State Management documentation") @WritesAttributes({ @WritesAttribute(attribute = "tablename", description="Name of the table being queried"), @WritesAttribute(attribute = "querydbtable.row.count", description="The number of rows selected by the query"),
+ "'IP Address Attribute' property. If the name of the attribute provided is 'X', then the the attributes added by enrichment " + "will take the form X.geo.<fieldName>") @WritesAttributes({ @WritesAttribute(attribute = "X.geo.lookup.micros", description = "The number of microseconds that the geo lookup took"), @WritesAttribute(attribute = "X.geo.city", description = "The city identified for the IP address"),
+ "set to the name of the file on the remote server. This can then be used in conjunction with FetchSFTP in order to fetch those files.") @SeeAlso({FetchSFTP.class, GetSFTP.class, PutSFTP.class}) @WritesAttributes({ @WritesAttribute(attribute = "sftp.remote.host", description = "The hostname of the SFTP Server"), @WritesAttribute(attribute = "sftp.remote.port", description = "The port that was connected to on the SFTP Server"),
+ "set to the name of the file on the remote server. This can then be used in conjunction with FetchFTP in order to fetch those files.") @SeeAlso({FetchFTP.class, GetFTP.class, PutFTP.class}) @WritesAttributes({ @WritesAttribute(attribute = "ftp.remote.host", description = "The hostname of the FTP Server"), @WritesAttribute(attribute = "ftp.remote.port", description = "The port that was connected to on the FTP Server"),