<extensionManifest><groupId>org.apache.nifi</groupId><artifactId>nifi-eep-hive3-nar</artifactId><version>1.28.0.250-eep-1001</version><parentNar><groupId>org.apache.nifi</groupId><artifactId>nifi-hive-services-api-nar</artifactId><version>1.28.0.250-eep-1001</version></parentNar><systemApiVersion>1.28.0.250-eep-1001</systemApiVersion><buildInfo><tag>nifi-1.28.0-RC1</tag><branch>UNKNOWN</branch><revision>bdae0d7</revision></buildInfo><extensions><extension><name>org.apache.nifi.processors.hive.PutHive3_EEP_QL</name><type>PROCESSOR</type><deprecationNotice><reason>Support for Apache Hive 3 is deprecated for removal in Apache NiFi 2.0</reason><alternatives></alternatives></deprecationNotice><description>Executes a HiveQL DDL/DML command (UPDATE, INSERT, e.g.). The content of an incoming FlowFile is expected to be the HiveQL command to execute. The HiveQL command may use the ? to escape parameters. In this case, the parameters to use must exist as FlowFile attributes with the naming convention hiveql.args.N.type and hiveql.args.N.value, where N is a positive integer. The hiveql.args.N.type is expected to be a number indicating the JDBC Type. The content of the FlowFile is expected to be in UTF-8 format.</description><tags><tag>sql</tag><tag>hive</tag><tag>eep</tag><tag>mapr</tag><tag>put</tag><tag>database</tag><tag>update</tag><tag>insert</tag></tags><properties><property><name>hive3-dbcp-service</name><displayName>Hive Database Connection Pooling Service</displayName><description>The Hive Controller Service that is used to obtain connection(s) to the Hive database</description><controllerServiceDefinition><className>org.apache.nifi.dbcp.hive.Hive3DBCPService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-hive-services-api-nar</artifactId><version>1.28.0.250-eep-1001</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive-batch-size</name><displayName>Batch Size</displayName><description>The preferred number of FlowFiles to put to the database in a single transaction</description><defaultValue>100</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive3-query-timeout</name><displayName>Query timeout</displayName><description>Sets the number of seconds the driver will wait for a query to execute. A value of 0 means no timeout. NOTE: Non-zero values may not be supported by the driver.</description><defaultValue>0</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive3-charset</name><displayName>Character Set</displayName><description>Specifies the character set of the record data.</description><defaultValue>UTF-8</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>statement-delimiter</name><displayName>Statement Delimiter</displayName><description>Statement Delimiter used to separate SQL statements in a multiple statement script</description><defaultValue>;</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>rollback-on-failure</name><displayName>Rollback On Failure</displayName><description>Specify how to handle error. By default (false), if an error occurs while processing a FlowFile, the FlowFile will be routed to 'failure' or 'retry' relationship based on error type, and processor can continue with next FlowFile. Instead, you may want to rollback currently processed FlowFiles and stop further processing immediately. In that case, you can do so by enabling this 'Rollback On Failure' property.  If enabled, failed FlowFiles will stay in the input relationship without penalizing it and being processed repeatedly until it gets processed successfully or removed by other means. It is important to set adequate 'Yield Duration' to avoid retrying too frequently.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>retry</name><description>A FlowFile is routed to this relationship if the database cannot be updated but attempting the operation again may succeed</description><autoTerminated>false</autoTerminated></relationship><relationship><name>success</name><description>A FlowFile is routed to this relationship after the database is successfully updated</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>A FlowFile is routed to this relationship if the database cannot be updated and retrying the operation will also fail, such as an invalid query or an integrity constraint violation</description><autoTerminated>false</autoTerminated></relationship></relationships><readsAttributes><readsAttribute><name>hiveql.args.N.type</name><description>Incoming FlowFiles are expected to be parametrized HiveQL statements. The type of each Parameter is specified as an integer that represents the JDBC Type of the parameter.</description></readsAttribute><readsAttribute><name>hiveql.args.N.value</name><description>Incoming FlowFiles are expected to be parametrized HiveQL statements. The value of the Parameters are specified as hiveql.args.1.value, hiveql.args.2.value, hiveql.args.3.value, and so on. The type of the hiveql.args.1.value Parameter is specified by the hiveql.args.1.type attribute.</description></readsAttribute></readsAttributes><writesAttributes><writesAttribute><name>query.input.tables</name><description>This attribute is written on the flow files routed to the 'success' relationships, and contains input table names (if any) in comma delimited 'databaseName.tableName' format.</description></writesAttribute><writesAttribute><name>query.output.tables</name><description>This attribute is written on the flow files routed to the 'success' relationships, and contains the target table names in 'databaseName.tableName' format.</description></writesAttribute></writesAttributes><inputRequirement>INPUT_REQUIRED</inputRequirement><seeAlso><see>org.apache.nifi.processors.hive.SelectHive3_EEP_QL</see></seeAlso></extension><extension><name>org.apache.nifi.processors.hive.PutHive3_EEP_Streaming</name><type>PROCESSOR</type><deprecationNotice><reason>Support for Apache Hive 3 is deprecated for removal in Apache NiFi 2.0</reason><alternatives></alternatives></deprecationNotice><description>This processor uses Hive Streaming to send flow file records to an EEP Hive 3.0+ table. If 'Static Partition Values' is not set, then the partition values are expected to be the 'last' fields of each record, so if the table is partitioned on column A for example, then the last field in each record should be field A. If 'Static Partition Values' is set, those values will be used as the partition values, and any record fields corresponding to partition columns will be ignored.</description><tags><tag>hive</tag><tag>eep</tag><tag>mapr</tag><tag>streaming</tag><tag>put</tag><tag>database</tag><tag>store</tag></tags><properties><property><name>record-reader</name><displayName>Record Reader</displayName><description>The service for reading records from incoming flow files.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.28.0.250-eep-1001</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive3-stream-metastore-uri</name><displayName>Hive Metastore URI</displayName><description>The URI location(s) for the Hive metastore. This is a comma-separated list of Hive metastore URIs; note that this is not the location of the Hive Server. The default port for the Hive metastore is 9043. If this field is not set, then the 'hive.metastore.uris' property from any provided configuration resources will be used, and if none are provided, then the default value from a default hive-site.xml will be used (usually thrift://localhost:9083).</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive3-config-resources</name><displayName>Hive Configuration Resources</displayName><description>A file or comma separated list of files which contains the Hive configuration (hive-site.xml, e.g.). Without this, Hadoop will search the classpath for a 'hive-site.xml' file or will revert to a default configuration. Note that to enable authentication with Kerberos e.g., the appropriate properties must be set in the configuration files. Also note that if Max Concurrent Tasks is set to a number greater than one, the 'hcatalog.hive.client.cache.disabled' property will be forced to 'true' to avoid concurrency issues. Please see the Hive documentation for more details.</description><defaultValue></defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>MULTIPLE</cardinality><resourceTypes><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>hive3-stream-database-name</name><displayName>Database Name</displayName><description>The name of the database in which to put the data.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive3-stream-table-name</name><displayName>Table Name</displayName><description>The name of the database table in which to put the data.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive3-stream-part-vals</name><displayName>Static Partition Values</displayName><description>Specifies a comma-separated list of the values for the partition columns of the target table. If the incoming records all have the same values for the partition columns, those values can be entered here, resulting in a performance gain. If specified, this property will often contain Expression Language, for example if PartitionRecord is upstream and two partitions 'name' and 'age' are used, then this property can be set to ${name},${age}. If this property is set, the values will be used as the partition values, and any record fields corresponding to partition columns will be ignored. If this property is not set, then the partition values are expected to be the last fields of each record.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive3-stream-records-per-transaction</name><displayName>Records per Transaction</displayName><description>Number of records to process before committing the transaction. If set to zero (0), all records will be written in a single transaction.</description><defaultValue>0</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive3-stream-transactions-per-batch</name><displayName>Transactions per Batch</displayName><description>A hint to Hive Streaming indicating how many transactions the processor task will need. The product of Records per Transaction (if not zero) and Transactions per Batch should be larger than the largest expected number of records in the flow file(s), this will ensure any failed transaction batches cause a full rollback.</description><defaultValue>1</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive3-stream-call-timeout</name><displayName>Call Timeout</displayName><description>The number of seconds allowed for a Hive Streaming operation to complete. A value of 0 indicates the processor should wait indefinitely on operations. Note that although this property supports Expression Language, it will not be evaluated against incoming FlowFile attributes.</description><defaultValue>0</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive3-stream-disable-optimizations</name><displayName>Disable Streaming Optimizations</displayName><description>Whether to disable streaming optimizations. Disabling streaming optimizations will have significant impact to performance and memory consumption.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>rollback-on-failure</name><displayName>Rollback On Failure</displayName><description>Specify how to handle error. By default (false), if an error occurs while processing a FlowFile, the FlowFile will be routed to 'failure' or 'retry' relationship based on error type, and processor can continue with next FlowFile. Instead, you may want to rollback currently processed FlowFiles and stop further processing immediately. In that case, you can do so by enabling this 'Rollback On Failure' property.  If enabled, failed FlowFiles will stay in the input relationship without penalizing it and being processed repeatedly until it gets processed successfully or removed by other means. It is important to set adequate 'Yield Duration' to avoid retrying too frequently.NOTE: When an error occurred after a Hive streaming transaction which is derived from the same input FlowFile is already committed, (i.e. a FlowFile contains more records than 'Records per Transaction' and a failure occurred at the 2nd transaction or later) then the succeeded records will be transferred to 'success' relationship while the original input FlowFile stays in incoming queue. Duplicated records can be created for the succeeded ones when the same FlowFile is processed again.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>kerberos-credentials-service</name><displayName>Kerberos Credentials Service</displayName><description>Specifies the Kerberos Credentials Controller Service that should be used for authenticating with Kerberos</description><controllerServiceDefinition><className>org.apache.nifi.kerberos.KerberosCredentialsService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.28.0.250-eep-1001</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>kerberos-principal</name><displayName>Kerberos Principal</displayName><description>The principal to use when specifying the principal and password directly in the processor for authenticating via Kerberos.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>kerberos-password</name><displayName>Kerberos Password</displayName><description>The password to use when specifying the principal and password directly in the processor for authenticating via Kerberos.</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>retry</name><description>The incoming FlowFile is routed to this relationship if its records cannot be transmitted to Hive. Note that some records may have been processed successfully, they will be routed (as Avro flow files) to the success relationship. The combination of the retry, success, and failure relationships indicate how many records succeeded and/or failed. This can be used to provide a retry capability since full rollback is not possible.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>success</name><description>A FlowFile containing Avro records routed to this relationship after the record has been successfully transmitted to Hive.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>A FlowFile containing Avro records routed to this relationship if the record could not be transmitted to Hive.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>hivestreaming.record.count</name><description>This attribute is written on the flow files routed to the 'success' and 'failure' relationships, and contains the number of records from the incoming flow file. All records in a flow file are committed as a single transaction.</description></writesAttribute><writesAttribute><name>query.output.tables</name><description>This attribute is written on the flow files routed to the 'success' and 'failure' relationships, and contains the target table name in 'databaseName.tableName' format.</description></writesAttribute></writesAttributes></extension><extension><name>org.apache.nifi.processors.hive.SelectHive3_EEP_QL</name><type>PROCESSOR</type><deprecationNotice><reason>Support for Apache Hive 3 is deprecated for removal in Apache NiFi 2.0</reason><alternatives></alternatives></deprecationNotice><description>Execute provided HiveQL SELECT query against a Hive database connection. Query result will be converted to Avro or CSV format. Streaming is used so arbitrarily large result sets are supported. This processor can be scheduled to run on a timer, or cron expression, using the standard scheduling methods, or it can be triggered by an incoming FlowFile. If it is triggered by an incoming FlowFile, then attributes of that FlowFile will be available when evaluating the select query. FlowFile attribute 'selecthiveql.row.count' indicates how many rows were selected.</description><tags><tag>hive</tag><tag>eep</tag><tag>mapr</tag><tag>sql</tag><tag>select</tag><tag>jdbc</tag><tag>query</tag><tag>database</tag></tags><properties><property><name>hive3-dbcp-service</name><displayName>Hive Database Connection Pooling Service</displayName><description>The Hive Controller Service that is used to obtain connection(s) to the Hive database</description><controllerServiceDefinition><className>org.apache.nifi.dbcp.hive.Hive3DBCPService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-hive-services-api-nar</artifactId><version>1.28.0.250-eep-1001</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive-pre-query</name><displayName>HiveQL Pre-Query</displayName><description>HiveQL pre-query to execute. Semicolon-delimited list of queries. Example: 'set tez.queue.name=queue1; set hive.exec.orc.split.strategy=ETL; set hive.exec.reducers.bytes.per.reducer=1073741824'. Note, the results/outputs of these queries will be suppressed if successfully executed.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive-query</name><displayName>HiveQL Select Query</displayName><description>HiveQL SELECT query to execute. If this is not set, the query is assumed to be in the content of an incoming FlowFile.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive-post-query</name><displayName>HiveQL Post-Query</displayName><description>HiveQL post-query to execute. Semicolon-delimited list of queries. Note, the results/outputs of these queries will be suppressed if successfully executed.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive-fetch-size</name><displayName>Fetch Size</displayName><description>The number of result rows to be fetched from the result set at a time. This is a hint to the driver and may not be honored and/or exact. If the value specified is zero, then the hint is ignored.</description><defaultValue>0</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive3-query-timeout</name><displayName>Query timeout</displayName><description>Sets the number of seconds the driver will wait for a query to execute. A value of 0 means no timeout. NOTE: Non-zero values may not be supported by the driver.</description><defaultValue>0</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive-max-rows</name><displayName>Max Rows Per Flow File</displayName><description>The maximum number of result rows that will be included in a single FlowFile. This will allow you to break up very large result sets into multiple FlowFiles. If the value specified is zero, then all rows are returned in a single FlowFile.</description><defaultValue>0</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive-max-frags</name><displayName>Maximum Number of Fragments</displayName><description>The maximum number of fragments. If the value specified is zero, then all fragments are returned. This prevents OutOfMemoryError when this processor ingests huge table.</description><defaultValue>0</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive-output-format</name><displayName>Output Format</displayName><description>How to represent the records coming from Hive (Avro, CSV, e.g.)</description><defaultValue>Avro</defaultValue><allowableValues><allowableValue><displayName>Avro</displayName><value>Avro</value><description></description></allowableValue><allowableValue><displayName>CSV</displayName><value>CSV</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive-normalize-avro</name><displayName>Normalize Table/Column Names</displayName><description>Whether to change non-Avro-compatible characters in column names to Avro-compatible characters. For example, colons and periods will be changed to underscores in order to build a valid Avro record.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>use-logical-types</name><displayName>Use Avro Logical Types</displayName><description>Whether to use Avro Logical Types for DECIMAL, DATE and TIMESTAMP columns. If disabled, written as string. If enabled, Logical types are used and written as its underlying type, specifically, DECIMAL as logical 'decimal': written as bytes with additional precision and scale meta data, DATE as logical 'date': written as int denoting days since Unix epoch (1970-01-01), and TIMESTAMP as logical 'timestamp-millis': written as long denoting milliseconds since Unix epoch. If a reader of written Avro records also knows these logical types, then these values can be deserialized with more context depending on reader implementation.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>csv-header</name><displayName>CSV Header</displayName><description>Include Header in Output</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>csv-alt-header</name><displayName>Alternate CSV Header</displayName><description>Comma separated list of header fields</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>csv-delimiter</name><displayName>CSV Delimiter</displayName><description>CSV Delimiter used to separate fields</description><defaultValue>,</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>csv-quote</name><displayName>CSV Quote</displayName><description>Whether to force quoting of CSV fields. Note that this might conflict with the setting for CSV Escape.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>csv-escape</name><displayName>CSV Escape</displayName><description>Whether to escape CSV strings in output. Note that this might conflict with the setting for CSV Quote.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive3-charset</name><displayName>Character Set</displayName><description>Specifies the character set of the record data.</description><defaultValue>UTF-8</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>Successfully created FlowFile from HiveQL query result set.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>HiveQL query execution failed. Incoming FlowFile will be penalized and routed to this relationship.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>mime.type</name><description>Sets the MIME type for the outgoing flowfile to application/avro-binary for Avro or text/csv for CSV.</description></writesAttribute><writesAttribute><name>filename</name><description>Adds .avro or .csv to the filename attribute depending on which output format is selected.</description></writesAttribute><writesAttribute><name>selecthiveql.row.count</name><description>Indicates how many rows were selected/returned by the query.</description></writesAttribute><writesAttribute><name>selecthiveql.query.duration</name><description>Combined duration of the query execution time and fetch time in milliseconds. If 'Max Rows Per Flow File' is set, then this number will reflect only the fetch time for the rows in the Flow File instead of the entire result set.</description></writesAttribute><writesAttribute><name>selecthiveql.query.executiontime</name><description>Duration of the query execution time in milliseconds. This number will reflect the query execution time regardless of the 'Max Rows Per Flow File' setting.</description></writesAttribute><writesAttribute><name>selecthiveql.query.fetchtime</name><description>Duration of the result set fetch time in milliseconds. If 'Max Rows Per Flow File' is set, then this number will reflect only the fetch time for the rows in the Flow File instead of the entire result set.</description></writesAttribute><writesAttribute><name>fragment.identifier</name><description>If 'Max Rows Per Flow File' is set then all FlowFiles from the same query result set will have the same value for the fragment.identifier attribute. This can then be used to correlate the results.</description></writesAttribute><writesAttribute><name>fragment.count</name><description>If 'Max Rows Per Flow File' is set then this is the total number of  FlowFiles produced by a single ResultSet. This can be used in conjunction with the fragment.identifier attribute in order to know how many FlowFiles belonged to the same incoming ResultSet.</description></writesAttribute><writesAttribute><name>fragment.index</name><description>If 'Max Rows Per Flow File' is set then the position of this FlowFile in the list of outgoing FlowFiles that were all derived from the same result set FlowFile. This can be used in conjunction with the fragment.identifier attribute to know which FlowFiles originated from the same query result set and in what order  FlowFiles were produced</description></writesAttribute><writesAttribute><name>query.input.tables</name><description>Contains input table names in comma delimited 'databaseName.tableName' format.</description></writesAttribute></writesAttributes><eventDriven>true</eventDriven><inputRequirement>INPUT_ALLOWED</inputRequirement></extension><extension><name>org.apache.nifi.processors.hive.UpdateHive3_EEP_Table</name><type>PROCESSOR</type><deprecationNotice><reason>Support for Apache Hive 3 is deprecated for removal in Apache NiFi 2.0</reason><alternatives></alternatives></deprecationNotice><description>This processor uses a Hive JDBC connection and incoming records to generate any Hive 3.0+ table changes needed to support the incoming records.</description><tags><tag>hive</tag><tag>eep</tag><tag>mapr</tag><tag>metadata</tag><tag>jdbc</tag><tag>database</tag><tag>table</tag></tags><properties><property><name>record-reader</name><displayName>Record Reader</displayName><description>The service for reading incoming flow files. The reader is only used to determine the schema of the records, the actual records will not be processed.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.28.0.250-eep-1001</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive3-dbcp-service</name><displayName>Hive Database Connection Pooling Service</displayName><description>The Hive Controller Service that is used to obtain connection(s) to the Hive database</description><controllerServiceDefinition><className>org.apache.nifi.dbcp.hive.Hive3DBCPService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-hive-services-api-nar</artifactId><version>1.28.0.250-eep-1001</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive3-table-name</name><displayName>Table Name</displayName><description>The name of the database table to update. If the table does not exist, then it will either be created or an error thrown, depending on the value of the Create Table property.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive3-partition-clause</name><displayName>Partition Clause</displayName><description>Specifies a comma-separated list of attribute names and optional data types corresponding to the partition columns of the target table. Simply put, if the table is partitioned or is to be created with partitions, each partition name should be an attribute on the FlowFile and listed in this property. This assumes all incoming records belong to the same partition and the partition columns are not fields in the record. An example of specifying this field is if PartitionRecord is upstream and two partition columns 'name' (of type string) and 'age' (of type integer) are used, then this property can be set to 'name string, age int'. The data types are optional and if partition(s) are to be created they will default to string type if not specified. For non-string primitive types, specifying the data type for existing partition columns is helpful for interpreting the partition value(s). If the table exists, the data types need not be specified (and are ignored in that case). This property must be set if the table is partitioned, and there must be an attribute for each partition column in the table. The values of the attributes will be used as the partition values, and the resulting output.path attribute value will reflect the location of the partition in the filesystem (for use downstream in processors such as PutHDFS).</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive3-create-table</name><displayName>Create Table Strategy</displayName><description>Specifies how to process the target table when it does not exist (create it, fail, e.g.).</description><defaultValue>Fail If Not Exists</defaultValue><allowableValues><allowableValue><displayName>Create If Not Exists</displayName><value>Create If Not Exists</value><description>Create a table with the given schema if it does not already exist</description></allowableValue><allowableValue><displayName>Fail If Not Exists</displayName><value>Fail If Not Exists</value><description>If the target does not already exist, log an error and route the flowfile to failure</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive3-create-table-management</name><displayName>Create Table Management Strategy</displayName><description>Specifies (when a table is to be created) whether the table is a managed table or an external table. Note that when External is specified, the 'External Table Location' property must be specified. If the 'hive.table.management.strategy' value is selected, 'External Table Location' must still be specified, but can contain Expression Language or be set to the empty string, and is ignored when the attribute evaluates to 'Managed'.</description><defaultValue>Managed</defaultValue><allowableValues><allowableValue><displayName>Managed</displayName><value>Managed</value><description>Any tables created by this processor will be managed tables (see Hive documentation for details).</description></allowableValue><allowableValue><displayName>External</displayName><value>External</value><description>Any tables created by this processor will be external tables located at the `External Table Location` property value.</description></allowableValue><allowableValue><displayName>Use 'hive.table.management.strategy' Attribute</displayName><value>Use 'hive.table.management.strategy' Attribute</value><description>Inspects the 'hive.table.management.strategy' FlowFile attribute to determine the table management strategy. The value of this attribute must be a case-insensitive match to one of the other allowable values (Managed, External, e.g.).</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>hive3-create-table</propertyName><propertyDisplayName>Create Table Strategy</propertyDisplayName><dependentValues><dependentValue>Create If Not Exists</dependentValue></dependentValues></dependency></dependencies></property><property><name>hive3-external-table-location</name><displayName>External Table Location</displayName><description>Specifies (when an external table is to be created) the file path (in HDFS, e.g.) to store table data.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>hive3-create-table-management</propertyName><propertyDisplayName>Create Table Management Strategy</propertyDisplayName><dependentValues><dependentValue>Use 'hive.table.management.strategy' Attribute</dependentValue><dependentValue>External</dependentValue></dependentValues></dependency></dependencies></property><property><name>hive3-storage-format</name><displayName>Create Table Storage Format</displayName><description>If a table is to be created, the specified storage format will be used.</description><defaultValue>TEXTFILE</defaultValue><allowableValues><allowableValue><displayName>TEXTFILE</displayName><value>TEXTFILE</value><description>Stored as plain text files. TEXTFILE is the default file format, unless the configuration parameter hive.default.fileformat has a different setting.</description></allowableValue><allowableValue><displayName>SEQUENCEFILE</displayName><value>SEQUENCEFILE</value><description>Stored as compressed Sequence Files.</description></allowableValue><allowableValue><displayName>ORC</displayName><value>ORC</value><description>Stored as ORC file format. Supports ACID Transactions &amp; Cost-based Optimizer (CBO). Stores column-level metadata.</description></allowableValue><allowableValue><displayName>PARQUET</displayName><value>PARQUET</value><description>Stored as Parquet format for the Parquet columnar storage format.</description></allowableValue><allowableValue><displayName>AVRO</displayName><value>AVRO</value><description>Stored as Avro format.</description></allowableValue><allowableValue><displayName>RCFILE</displayName><value>RCFILE</value><description>Stored as Record Columnar File format.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>hive3-create-table</propertyName><propertyDisplayName>Create Table Strategy</propertyDisplayName><dependentValues><dependentValue>Create If Not Exists</dependentValue></dependentValues></dependency></dependencies></property><property><name>hive3-update-field-names</name><displayName>Update Field Names</displayName><description>This property indicates whether to update the output schema such that the field names are set to the exact column names from the specified table. This should be used if the incoming record field names may not match the table's column names in terms of upper- and lower-case. For example, this property should be set to true if the output FlowFile (and target table storage) is Avro format, as Hive/Impala expects the field names to match the column names exactly.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive3-record-writer</name><displayName>Record Writer</displayName><description>Specifies the Controller Service to use for writing results to a FlowFile. The Record Writer should use Inherit Schema to emulate the inferred schema behavior, i.e. an explicit schema need not be defined in the writer, and will be supplied by the same logic used to infer the schema from the column types. If Create Table Strategy is set 'Create If Not Exists', the Record Writer's output format must match the Record Reader's format in order for the data to be placed in the created table location. Note that this property is only used if 'Update Field Names' is set to true and the field names do not all match the column names exactly. If no update is needed for any field names (or 'Update Field Names' is false), the Record Writer is not used and instead the input FlowFile is routed to success or failure without modification.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.28.0.250-eep-1001</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>hive3-update-field-names</propertyName><propertyDisplayName>Update Field Names</propertyDisplayName><dependentValues><dependentValue>true</dependentValue></dependentValues></dependency></dependencies></property><property><name>hive3-query-timeout</name><displayName>Query Timeout</displayName><description>Sets the number of seconds the driver will wait for a query to execute. A value of 0 means no timeout. NOTE: Non-zero values may not be supported by the driver.</description><defaultValue>0</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>A FlowFile containing records routed to this relationship after the record has been successfully transmitted to Hive.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>A FlowFile containing records routed to this relationship if the record could not be transmitted to Hive.</description><autoTerminated>false</autoTerminated></relationship></relationships><readsAttributes><readsAttribute><name>hive.table.management.strategy</name><description>This attribute is read if the 'Table Management Strategy' property is configured to use the value of this attribute. The value of this attribute should correspond (ignoring case) to a valid option of the 'Table Management Strategy' property.</description></readsAttribute></readsAttributes><writesAttributes><writesAttribute><name>output.table</name><description>This attribute is written on the flow files routed to the 'success' and 'failure' relationships, and contains the target table name.</description></writesAttribute><writesAttribute><name>output.path</name><description>This attribute is written on the flow files routed to the 'success' and 'failure' relationships, and contains the path on the file system to the table (or partition location if the table is partitioned).</description></writesAttribute><writesAttribute><name>mime.type</name><description>Sets the mime.type attribute to the MIME Type specified by the Record Writer, only if a Record Writer is specified and Update Field Names is 'true'.</description></writesAttribute><writesAttribute><name>record.count</name><description>Sets the number of records in the FlowFile, only if a Record Writer is specified and Update Field Names is 'true'.</description></writesAttribute></writesAttributes><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.orc.PutORC_EEP</name><type>PROCESSOR</type><deprecationNotice><reason>Support for Apache Hive 3 is deprecated for removal in Apache NiFi 2.0</reason><alternatives></alternatives></deprecationNotice><description>Reads records from an incoming FlowFile using the provided Record Reader, and writes those records to a ORC file in the location/filesystem specified in the configuration.</description><tags><tag>put</tag><tag>eep</tag><tag>mapr</tag><tag>ORC</tag><tag>hadoop</tag><tag>HDFS</tag><tag>filesystem</tag><tag>restricted</tag><tag>record</tag></tags><properties><property><name>Hadoop Configuration Resources</name><displayName>Hadoop Configuration Resources</displayName><description>A file or comma separated list of files which contains the Hadoop file system configuration. Without this, Hadoop will search the classpath for a 'core-site.xml' and 'hdfs-site.xml' file or will revert to a default configuration. To use swebhdfs, see 'Additional Details' section of PutHDFS's documentation.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>MULTIPLE</cardinality><resourceTypes><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>kerberos-credentials-service</name><displayName>Kerberos Credentials Service</displayName><description>Specifies the Kerberos Credentials Controller Service that should be used for authenticating with Kerberos</description><controllerServiceDefinition><className>org.apache.nifi.kerberos.KerberosCredentialsService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.28.0.250-eep-1001</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>kerberos-user-service</name><displayName>Kerberos User Service</displayName><description>Specifies the Kerberos User Controller Service that should be used for authenticating with Kerberos</description><controllerServiceDefinition><className>org.apache.nifi.kerberos.KerberosUserService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.28.0.250-eep-1001</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Kerberos Principal</name><displayName>Kerberos Principal</displayName><description>Kerberos principal to authenticate as. Requires nifi.kerberos.krb5.file to be set in your nifi.properties</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Kerberos Keytab</name><displayName>Kerberos Keytab</displayName><description>Kerberos keytab associated with the principal. Requires nifi.kerberos.krb5.file to be set in your nifi.properties</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>Kerberos Password</name><displayName>Kerberos Password</displayName><description>Kerberos password associated with the principal.</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Kerberos Relogin Period</name><displayName>Kerberos Relogin Period</displayName><description>Period of time which should pass before attempting a kerberos relogin.

This property has been deprecated, and has no effect on processing. Relogins now occur automatically.</description><defaultValue>4 hours</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Additional Classpath Resources</name><displayName>Additional Classpath Resources</displayName><description>A comma-separated list of paths to files and/or directories that will be added to the classpath and used for loading native libraries. When specifying a directory, all files with in the directory will be added to the classpath, but further sub-directories will not be included.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>true</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>MULTIPLE</cardinality><resourceTypes><resourceType>DIRECTORY</resourceType><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>record-reader</name><displayName>Record Reader</displayName><description>The service for reading records from incoming flow files.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.28.0.250-eep-1001</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Directory</name><displayName>Directory</displayName><description>The parent directory to which files should be written. Will be created if it doesn't exist.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>compression-type</name><displayName>Compression Type</displayName><description>The type of compression for the file being written.</description><defaultValue>NONE</defaultValue><allowableValues><allowableValue><displayName>NONE</displayName><value>NONE</value><description>No compression</description></allowableValue><allowableValue><displayName>ZLIB</displayName><value>ZLIB</value><description>ZLIB compression</description></allowableValue><allowableValue><displayName>SNAPPY</displayName><value>SNAPPY</value><description>Snappy compression</description></allowableValue><allowableValue><displayName>LZO</displayName><value>LZO</value><description>LZO compression</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>overwrite</name><displayName>Overwrite Files</displayName><description>Whether or not to overwrite existing files in the same directory with the same name. When set to false, flow files will be routed to failure when a file exists in the same directory with the same name.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>permissions-umask</name><displayName>Permissions umask</displayName><description>A umask represented as an octal number which determines the permissions of files written to HDFS. This overrides the Hadoop Configuration dfs.umaskmode</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>remote-group</name><displayName>Remote Group</displayName><description>Changes the group of the HDFS file to this value after it is written. This only works if NiFi is running as a user that has HDFS super user privilege to change group</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>remote-owner</name><displayName>Remote Owner</displayName><description>Changes the owner of the HDFS file to this value after it is written. This only works if NiFi is running as a user that has HDFS super user privilege to change owner</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>putorc-config-resources</name><displayName>ORC Configuration Resources</displayName><description>A file or comma separated list of files which contains the ORC configuration (hive-site.xml, e.g.). Without this, Hadoop will search the classpath for a 'hive-site.xml' file or will revert to a default configuration. Please see the ORC documentation for more details.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>MULTIPLE</cardinality><resourceTypes><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>putorc-stripe-size</name><displayName>Stripe Size</displayName><description>The size of the memory buffer (in bytes) for writing stripes to an ORC file</description><defaultValue>64 MB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>putorc-buffer-size</name><displayName>Buffer Size</displayName><description>The maximum size of the memory buffers (in bytes) used for compressing and storing a stripe in memory. This is a hint to the ORC writer, which may choose to use a smaller buffer size based on stripe size and number of columns for efficient stripe writing and memory utilization.</description><defaultValue>10 KB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>putorc-hive-table-name</name><displayName>Hive Table Name</displayName><description>An optional table name to insert into the hive.ddl attribute. The generated DDL can be used by a PutHive3QL processor (presumably after a PutHDFS processor) to create a table backed by the converted ORC file. If this property is not provided, the full name (including namespace) of the incoming Avro record will be normalized and used as the table name.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>putorc-hive-field-names</name><displayName>Normalize Field Names for Hive</displayName><description>Whether to normalize field names for Hive (force lowercase, e.g.). If the ORC file is going to be part of a Hive table, this property should be set to true. To preserve the original field names from the schema, this property should be set to false.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>retry</name><description>Flow Files that could not be processed due to issues that can be retried are transferred to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>success</name><description>Flow Files that have been successfully processed are transferred to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>Flow Files that could not be processed due to issue that cannot be retried are transferred to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><readsAttributes><readsAttribute><name>filename</name><description>The name of the file to write comes from the value of this attribute.</description></readsAttribute></readsAttributes><writesAttributes><writesAttribute><name>filename</name><description>The name of the file is stored in this attribute.</description></writesAttribute><writesAttribute><name>absolute.hdfs.path</name><description>The absolute path to the file is stored in this attribute.</description></writesAttribute><writesAttribute><name>hadoop.file.url</name><description>The hadoop url for the file is stored in this attribute.</description></writesAttribute><writesAttribute><name>record.count</name><description>The number of records written to the ORC file</description></writesAttribute><writesAttribute><name>hive.ddl</name><description>Creates a partial Hive DDL statement for creating an external table in Hive from the destination folder. This can be used in ReplaceText for setting the content to the DDL. To make it valid DDL, add "LOCATION '&lt;path_to_orc_file_in_hdfs&gt;'", where the path is the directory that contains this ORC file on HDFS. For example, this processor can send flow files downstream to ReplaceText to set the content to this DDL (plus the LOCATION clause as described), then to PutHiveQL processor to create the table if it doesn't exist.</description></writesAttribute></writesAttributes><triggerWhenEmpty>true</triggerWhenEmpty><defaultSettings><yieldDuration>100 ms</yieldDuration><penaltyDuration>30 sec</penaltyDuration><bulletinLevel>WARN</bulletinLevel></defaultSettings><restricted><restrictions><restriction><requiredPermission>write distributed filesystem</requiredPermission><explanation>Provides operator the ability to write to any file that NiFi has access to in HDFS or the local filesystem.</explanation></restriction></restrictions></restricted><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.dbcp.hive.Hive3_EEP_ConnectionPool</name><type>CONTROLLER_SERVICE</type><deprecationNotice><reason>Support for Apache Hive 3 is deprecated for removal in Apache NiFi 2.0</reason><alternatives></alternatives></deprecationNotice><description>Provides Database Connection Pooling Service for EEP Hive 3.x. Connections can be asked from pool and returned after usage.</description><tags><tag>hive</tag><tag>eep</tag><tag>mapr</tag><tag>dbcp</tag><tag>jdbc</tag><tag>database</tag><tag>connection</tag><tag>pooling</tag><tag>store</tag></tags><properties><property><name>hive-db-connect-url</name><displayName>Database Connection URL</displayName><description>A database connection URL used to connect to a database. May contain database system name, host, port, database name and some parameters. The exact syntax of a database connection URL is specified by the Hive documentation. For example, the server principal is often included as a connection parameter when connecting to a secure Hive server.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive-config-resources</name><displayName>Hive Configuration Resources</displayName><description>A file or comma separated list of files which contains the Hive configuration (hive-site.xml, e.g.). Without this, Hadoop will search the classpath for a 'hive-site.xml' file or will revert to a default configuration. Note that to enable authentication with Kerberos e.g., the appropriate properties must be set in the configuration files. Please see the Hive documentation for more details.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>MULTIPLE</cardinality><resourceTypes><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>hive-db-user</name><displayName>Database User</displayName><description>Database user name</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive-db-password</name><displayName>Password</displayName><description>The password for the database user</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive-max-wait-time</name><displayName>Max Wait Time</displayName><description>The maximum amount of time that the pool will wait (when there are no available connections)  for a connection to be returned before failing, or -1 to wait indefinitely. </description><defaultValue>500 millis</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>hive-max-total-connections</name><displayName>Max Total Connections</displayName><description>The maximum number of active connections that can be allocated from this pool at the same time, or negative for no limit.</description><defaultValue>8</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Validation-query</name><displayName>Validation query</displayName><description>Validation query used to validate connections before returning them. When a borrowed connection is invalid, it gets dropped and a new valid connection will be returned. NOTE: Using validation may have a performance penalty.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>dbcp-min-idle-conns</name><displayName>Minimum Idle Connections</displayName><description>The minimum number of connections that can remain idle in the pool, without extra ones being created, or zero to create none.</description><defaultValue>0</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>dbcp-max-idle-conns</name><displayName>Max Idle Connections</displayName><description>The maximum number of connections that can remain idle in the pool, without extra ones being released, or negative for no limit.</description><defaultValue>8</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>dbcp-max-conn-lifetime</name><displayName>Max Connection Lifetime</displayName><description>The maximum lifetime of a connection. After this time is exceeded the connection will fail the next activation, passivation or validation test. A value of zero or less means the connection has an infinite lifetime.</description><defaultValue>-1</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>dbcp-time-between-eviction-runs</name><displayName>Time Between Eviction Runs</displayName><description>The time period to sleep between runs of the idle connection evictor thread. When non-positive, no idle connection evictor thread will be run.</description><defaultValue>-1</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>dbcp-min-evictable-idle-time</name><displayName>Minimum Evictable Idle Time</displayName><description>The minimum amount of time a connection may sit idle in the pool before it is eligible for eviction.</description><defaultValue>30 mins</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>dbcp-soft-min-evictable-idle-time</name><displayName>Soft Minimum Evictable Idle Time</displayName><description>The minimum amount of time a connection may sit idle in the pool before it is eligible for eviction by the idle connection evictor, with the extra condition that at least a minimum number of idle connections remain in the pool. When the not-soft version of this option is set to a positive value, it is examined first by the idle connection evictor: when idle connections are visited by the evictor, idle time is first compared against it (without considering the number of idle connections in the pool) and then against this soft option, including the minimum idle connections constraint.</description><defaultValue>-1</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>kerberos-credentials-service</name><displayName>Kerberos Credentials Service</displayName><description>Specifies the Kerberos Credentials Controller Service that should be used for authenticating with Kerberos</description><controllerServiceDefinition><className>org.apache.nifi.kerberos.KerberosCredentialsService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.28.0.250-eep-1001</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Kerberos Principal</name><displayName>Kerberos Principal</displayName><description>Kerberos principal to authenticate as. Requires nifi.kerberos.krb5.file to be set in your nifi.properties</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Kerberos Keytab</name><displayName>Kerberos Keytab</displayName><description>Kerberos keytab associated with the principal. Requires nifi.kerberos.krb5.file to be set in your nifi.properties</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>Kerberos Password</name><displayName>Kerberos Password</displayName><description>Kerberos password associated with the principal.</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><providedServiceAPIs><providedServiceAPI><className>org.apache.nifi.dbcp.hive.Hive3DBCPService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-hive-services-api-nar</artifactId><version>1.28.0.250-eep-1001</version></providedServiceAPI><providedServiceAPI><className>org.apache.nifi.dbcp.DBCPService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.28.0.250-eep-1001</version></providedServiceAPI><providedServiceAPI><className>org.apache.nifi.dbcp.hive.HiveDBCPService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-hive-services-api-nar</artifactId><version>1.28.0.250-eep-1001</version></providedServiceAPI></providedServiceAPIs></extension></extensions></extensionManifest>