You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2017/10/06 20:47:01 UTC
[jira] [Commented] (NIFI-1706) Extend QueryDatabaseTable to support
arbitrary queries
[ https://issues.apache.org/jira/browse/NIFI-1706?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16195218#comment-16195218 ]
ASF GitHub Bot commented on NIFI-1706:
--------------------------------------
Github user mattyb149 commented on a diff in the pull request:
https://github.com/apache/nifi/pull/2162#discussion_r143290546
--- Diff: nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/QueryDatabaseTable.java ---
@@ -175,6 +181,32 @@ public QueryDatabaseTable() {
return propDescriptors;
}
+ @Override
+ protected Collection<ValidationResult> customValidate(ValidationContext validationContext) {
+ final List<ValidationResult> results = new ArrayList<>(super.customValidate(validationContext));
+
+ final String tableName = validationContext.getProperty(TABLE_NAME).getValue();
+ final String sqlQuery = validationContext.getProperty(SQL_QUERY).getValue();
+
+ if(!StringUtils.isEmpty(sqlQuery) && !StringUtils.isEmpty(tableName)){
+ results.add(new ValidationResult.Builder()
+ .valid(false)
+ .subject("SQL Query")
+ .explanation("SQL Query and Table Name can't both be specified at the same time.")
+ .build());
+ }
+
+ if(!StringUtils.isEmpty(sqlQuery) && isDynamicMaxValues){
--- End diff --
Is this a hard requirement? Expression Language support (since incoming connections are not allowed for QueryDatabaseTable) is meant to support Variable Registry and environment variables, which could be used in a custom query if it also included such an EL statement?
> Extend QueryDatabaseTable to support arbitrary queries
> ------------------------------------------------------
>
> Key: NIFI-1706
> URL: https://issues.apache.org/jira/browse/NIFI-1706
> Project: Apache NiFi
> Issue Type: Improvement
> Components: Core Framework
> Affects Versions: 1.4.0
> Reporter: Paul Bormans
> Assignee: Peter Wicks
> Labels: features
>
> The QueryDatabaseTable is able to observe a configured database table for new rows and yield these into the flowfile. The model of an rdbms however is often (if not always) normalized so you would need to join various tables in order to "flatten" the data into useful events for a processing pipeline as can be build with nifi or various tools within the hadoop ecosystem.
> The request is to extend the processor to specify an arbitrary sql query instead of specifying the table name + columns.
> In addition (this may be another issue?) it is desired to limit the number of rows returned per run. Not just because of bandwidth issue's from the nifi pipeline onwards but mainly because huge databases may not be able to return so many records within a reasonable time.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)